java中序列化得到的二进制流文件 反序列化失败

在eclipse中clean 编译在classes大小不一致 没办法反序列化了

1个回答

本来 是600k,编译之后居然变成了 900k了 编译对二进制流文件有什么影响吗

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
有关Java序列化问题两点疑问

serialVersionUID改变,需要重新序列化? serialVersionUID是private static final ,如何重新分配值? 谢谢

C#中序列化的dataSet对象,在java中如何解析

C#中的dataSet序列化后,在java中如何反序列化?在线告急,求大神指教

C#求WINCE实现对象二进制格式化BinaryFormatter方法

C# 求WINCE实现对象序列化BinaryFormatter的方法,有没办法在CE下把类写成一个文件? 下面代码中在WIN7下通过 但是转到智能平台开发 CE的下面 就没有BinaryFormatter的方法 Student objStu = new Student() { Name = this.txtName.Text.Trim(), Age = Convert.ToInt16(this.txtAge.Text.Trim()), Gender = this.txtGender.Text.Trim(), Birthday = Convert.ToDateTime(this.txtBirthday.Text.Trim()) }; //【1】创建文件流 FileStream fs = new FileStream("C:\\objStu.obj", FileMode.Create); //【2】创建二进制格式化器 BinaryFormatter formatter = new BinaryFormatter(); //【3】调用序列化方法 formatter.Serialize(fs, objStu); //【4】关闭文件流 fs.Close();

序列化可以正常存入多个对象,反序列化只能读入一个对象,求助求助

public class StuOpration { static File file = new File("student.txt"); public void writeStreamheader(){} //添加一个学生 public static void get() throws FileNotFoundException{ FileOutputStream os = new FileOutputStream(file,true); } public static void add(Student stu) throws Exception{ if(file.length() ==0){ get(); } FileOutputStream os = new FileOutputStream(file,true); ObjectOutputStream oos = new ObjectOutputStream(os ); oos.writeObject(stu); oos.writeChars("\n"); oos.close(); System.out.println("添加成功"); } //修改学生信心 public void update(int num,int age) throws Exception{ FileInputStream is = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream( is); Student stu = (Student)ois.readObject(); while(is.available()>0){ if(stu.getNum() == num){ stu.setAge(age); System.out.println("修改成功"); return; } stu = (Student)ois.readObject(); } ois.close(); } //删除一个学生 public void delete(int num) throws Exception{ FileInputStream is = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream( is); Student stu = (Student)ois.readObject(); while(is.available()>0){ System.out.println(stu); stu = (Student)ois.readObject(); } ois.close(); } public void show() throws Exception{ FileInputStream is = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream( is); Student obj=(Student)ois.readObject(); while(true){ try { System.out.println(obj); obj=(Student)ois.readObject(); } catch (Exception e) { System.out.println("数据已经读取完毕"); break; } } ois.close(); } } 请输入对应的编号: 1: 添加学生 2: 修改学生信息 3:删除学生4:显示学生信息 4 Student [name=张三, password=123, score=45.0, num=1, age=23] 数据已经读取完毕 ``` ``` ``` ``` ```

web项目中实体类序列化的原因?

在网上找了一下序列化的概念 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。那么当两个Java进程进行通信时,能否实现进程间的对象传送呢?答案是可以的。如何做到呢?这就需要Java序列化与反序列化了。换句话说,一方面,发送方需要把这个Java对象转换为字节序列,然后在网络上传送;另一方面,接收方需要从字节序列中恢复出Java对象。 当我们明晰了为什么需要Java序列化和反序列化后,我们很自然地会想Java序列化的好处。其好处一是实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里),二是,利用序列化实现远程通信,即在网络上传送对象的字节序列。 http://blog.csdn.net/wangloveall/article/details/7992448 最近看一个项目的时候,用的是spring +mybatis整合的框架,里面的实体类实现了Serializable接口,那么我想确认一下: 这里序列化的原因是为了将对象存到数据库吗? 如果在sql中没有存储与取出对象的操作,那么不序列化也是可以的??

Android 序列化Intent对象到本地异常问题

``` // 序列化PendingIntent对象,以时间作为文件名 String fileName = String.valueOf(ent.date); PendingIntent intent = noti.contentIntent; L.e("recordNotification", "保存文件名:" + fileName); L.e("recordNotification", "PendingIntent:" + intent); ParcelableFileUtil.writeParcelable(mContext, fileName, intent); L.e("recordNotification", "保存通知并刷新界面"); Runnable runnable = new Runnable() { @Override public void run() { NotificationWrapper.getInstance().addNotificationList(ent); NotificationWrapper.getInstance().refreshNotification(); } }; handler.post(runnable); // cancelNotification(packageName, sbn.getTag(), sbn.getId()); ``` 我这是从通知栏里获取到一个通知的Intent,然后我想把它序列化保存到本地,在方法writeParcelable中出现报错。但搞不懂不知为什么出错。 writeParcelable方法如下,执行到byte[] data = parcel.marshall();返回二进制字节这里就出下面那个错了。 ``` /** * 存储单个Parcelable对象 * * @param context * @param fileName * @param object * @return boolean */ public static boolean writeParcelable(Context context, String fileName, Parcelable object) { if (fileName == null || object == null) { return false; } boolean success = false; FileOutputStream outPutStream = null; try { outPutStream = context.openFileOutput(fileName, Context.MODE_PRIVATE); Parcel parcel = Parcel.obtain(); parcel.writeParcelable(object, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); byte[] data = parcel.marshall(); outPutStream.write(data); success = true; } catch (FileNotFoundException e) { e.printStackTrace(); success = false; } catch (IOException e) { e.printStackTrace(); success = false; } finally { if (outPutStream != null) { try { outPutStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return success; } ``` 错误日志截图: ![图片说明](https://img-ask.csdn.net/upload/201608/26/1472181012_258470.jpg) 错误日志代码: ``` 08-26 03:07:38.023: E/onNotificationPosted(11563): packageName:com.example.notifications 08-26 03:07:38.043: E/recordNotification(11563): 系统通知View 08-26 03:07:38.113: E/Util(11563): saveBitmap:/storage/emulated/0/CleanMaster/notification_cache/IMG_20160826030738 08-26 03:07:38.113: E/recordNotification(11563): 保存文件名:1472180858021 08-26 03:07:38.113: E/recordNotification(11563): PendingIntent:PendingIntent{4238f680: android.os.BinderProxy@42355f30} 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): Error running onNotificationPosted 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): java.lang.RuntimeException: Tried to marshall a Parcel that contained Binder objects. 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at android.os.Parcel.nativeMarshall(Native Method) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at android.os.Parcel.marshall(Parcel.java:420) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at com.qiulong.notificationintercepttest.util.ParcelableFileUtil.writeParcelable(ParcelableFileUtil.java:36) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at com.qiulong.notificationintercepttest.service.NotificationListener.getNotificationInfo(NotificationListener.java:125) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at com.qiulong.notificationintercepttest.service.NotificationListener.onNotificationPosted(NotificationListener.java:58) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at android.service.notification.NotificationListenerService$INotificationListenerWrapper.onNotificationPosted(NotificationListenerService.java:168) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at android.service.notification.INotificationListener$Stub.onTransact(INotificationListener.java:56) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at android.os.Binder.execTransact(Binder.java:404) 08-26 03:07:38.113: W/NotificationListenerService[NotificationListener](11563): at dalvik.system.NativeStart.run(Native Method) ```

java I/O流的问题,请大神指点

源代码如下: package com.Sixping.Ncre07; import java.io.*; import java.util.*; public class RandomFileTest { public static void main(String[] args) { Employee[] staff = new Employee[3]; staff[0] = new Employee("王海", 75000, 1987, 12, 15); staff[1] = new Employee("王明", 50000, 1989, 10, 1); staff[2] = new Employee("周晓", 40000, 1990, 3, 15); try { DataOutputStream out = // 字节文件流。实现了DataOutput接口。以二进制文件输出流为参数 new DataOutputStream(new FileOutputStream("employee.dat")); for (Employee e : staff) e.writeData(out); out.close(); // 以二级制文件为参数,建立RandomAccessFile对象。“r”为“只读” RandomAccessFile in = new RandomAccessFile("employee.dat", "r"); int n = (int) (in.length() / Employee.RECODE_SIZE); Employee[] newStaff = new Employee[n]; for (int i = n - 1; i >= 0; i--) { newStaff[i] = new Employee(); in.seek(i * Employee.RECODE_SIZE); newStaff[i].readData(in); } in.close(); for (Employee e : newStaff) { System.out.println(e); } } catch (Exception e) { e.printStackTrace(); } } } class Employee { public Employee() { } public Employee(String n, double s, int year, int mouth, int day) { name = n; salary = s; GregorianCalendar calendar = new GregorianCalendar(year, mouth - 1, day); hireDay = calendar.getTime(); } public String getName() { return name; } public double getSalary() { return salary; } public Date getHireDay() { return hireDay; } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } public String toString() { return getClass().getName() + "[name+" + name + ",salary" + salary + ",hireDay=" + hireDay + "]"; } public void writeData(DataOutput out) throws IOException { DataIO.writeFixedString(name, NAME_SIZE, out); out.writeDouble(salary); GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(hireDay); out.writeInt(calendar.get(calendar.YEAR)); out.writeInt(calendar.get(calendar.MONTH + 1)); out.writeInt(calendar.get(calendar.DAY_OF_MONTH)); } public void readData(DataInput in) throws IOException { name = DataIO.readFixedString(NAME_SIZE, in); salary = in.readDouble(); int y = in.readInt(); int m = in.readInt(); int d = in.readInt(); GregorianCalendar calendar = new GregorianCalendar(y, m - 1, d); hireDay = calendar.getTime(); } public static final int NAME_SIZE = 40;// 姓名按照40個字符設計 public static final int RECODE_SIZE = 2 * NAME_SIZE + 8 + 4 + 4 + 4; private String name; private double salary; private Date hireDay; } class DataIO { public static String readFixedString(int size, DataInput in) throws IOException { StringBuffer b = new StringBuffer(size);// 较StringBuffer效率更高,但是不支持多线程 int i = 0; boolean more = true; while (more && i < size) { char ch = in.readChar();//将二进制数据转换成字符读出 i++; if (ch == 0) { more = false; } else { b.append(ch); } } in.skipBytes(2 * (size - 1));//跳过无效字符 return b.toString();//将StringBulider对象中的字符串显示出来 } public static void writeFixedString(String s, int size, DataOutput out)throws IOException { for (int i = 0; i < size; i++) { char ch = 0; if (i < s.length()) { ch = s.charAt(i); } out.writeChar(ch); } } } 控制台现实信息如下: java.io.EOFException at java.io.RandomAccessFile.readInt(RandomAccessFile.java:725) at com.Sixping.Ncre07.Employee.readData(RandomFileTest.java:85) at com.Sixping.Ncre07.RandomFileTest.main(RandomFileTest.java:25) 能不能请大神告诉我这是为什么? 请大神介绍介绍经验。

List<Object> 根据包名+类名 转换成相应的List<Bean>

List<Object> 通过序列化将List<Bean>写入到二进制文件中,另一个程序需要根据二进制文件和包名+类名将文件中的数据读取出来。objectInputStream = new ObjectInputStream(freader); List<Object> data_list = (List<Object>)objectInputStream.readObject(); 怎么将 List<Object> 转换成相应的List<Bean>啊?读取的时候就报类未找到。请大神给解决一下啊,困扰一天了

kafka producer端怎么将json数据解析成字符串后再发送

产生的json数据: { "table":"GG.TCUSTORD", "op_type":"I", "op_ts":"2017-04-18 08:27:47.088201", "current_ts":"2017-04-18T16:27:52.881000", "pos":"00000000540000002348", "tokens":{ "TK-SCN":"1245602", "TK-OSUSER":"oracle", "TK-HOST":"ray" }, "after":{ "CUST_CODE":"WILL", "ORDER_DATE":"1994-09-30:15:33:00", "PRODUCT_CODE":"CAR", "ORDER_ID":"333333333", "PRODUCT_PRICE":17520.00, "PRODUCT_AMOUNT":3, "TRANSACTION_ID":"100" } } 解析后的数据: GG.TCUSTORD;1245602;I;2017-04-18T16:27:52.881000;0::WILL,1::1994-09-30:15:33:00,2::CAR,3::333333333,4::17520.00,5::3,6::100

需要一个服务器实现的方向,迷茫?

我用java swing做了一个gui 的小应用,简单的登录gui, username, password这些。 然后我现在遇到了问题,拜请各位帮忙! 1 数据传输我需要注意啥?是不是先得把username和password变成username.getbytes()二进制,然后再序列化,然后再传输?一般实际中,大家是怎么做的?那比如password,需不需要再传输中加密还是! 2 服务器端,我怎么实现运行一个soap,或者rmi,或者restful的web service啊? 我现在有一台ubuntu server, 上面有tomcat 在8080 和 http apache 在80,我要怎么做啊? 我的想法有以下三个,也不知道对不对。 2.1 用php写一个服务器端api,然后用http把客户端数据传给apache,处理。那要是我想要用java写,跑在apache服务器端,怎么做? 2.2 用java写服务器端api,跑在tomcat,客户端直接和8080口通讯,那这个java文件在服务器端怎么运行? 2.3 请求给apache,apache再把请求forwarding给tomcat,tomcat处理后返还给apache,apache再给客户,这个可以吗?要查找些什么知识来实现? 3 是不是tomcat只能处理sevlet和jsp,不能处理java的restful,我是不是需要别的服务器?例如glassfish啥的?

怎么用c#编辑函数一元二次方程,abc从键盘输入,实现根据a,b,c的值,△的值判断根的情况,并计算根?

![图片说明](https://img-ask.csdn.net/upload/201905/05/1557048324_31584.png) 下面的代码一直报错,要怎么修改啊 class Program { static void Main(string[] args) { double a, b, c; Console.WriteLine("请输入a、b、c:"); a = Convert.ToDouble(Console.ReadLine()); b = Convert.ToDouble(Console.ReadLine()); c = Convert.ToDouble(Console.ReadLine()); double x1; double x2; Add(a, b, c, out x1, out x2); Console.WriteLine("x1={0},x2={1}", x1, x2); Console.ReadKey(); } static void Add(double a, double b, double c, out double x1, out double x2) { if (b * b - 4 * a * c >= 0) { x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a); } else if (b * b - 4 * a * c == 0) { x1 = (-b) / (2 * a); } else { Console.WriteLine("无解!"); } } }

一道关于数列的题目,Pascal,求大神帮忙

一道关于数列的题目,我用了Pascal语言,但运行结果总是一个定值,毫无变化,我怀疑主程序的循环有问题,但又找不出来,求大神帮忙找错,谢谢了。 **数列** (sequence.pas/c/cpp) 【问题描述】 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…) 请你求出这个序列的第N项的值(用10进制数表示)。 例如,对于k=3,N=100,正确答案应该是981。 【输入文件】 输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开: k N (k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。 【输出文件】 输出文件sequence.out 为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。 【输入样例】 3 100 【输出样例】 981 var i,i2,g,sum,n:longint; k:shortint; bit:array[1..100]of shortint;//记录数的二次方的每个数位 function fang(a,b:longint):longint; //求a的b次方 var a2:longint; begin a2:=a; for i:=1 to b do a:=a*a2; exit(a); end; procedure er(c:longint); //求c的二进制(倒序的) begin g:=0;//record times while c<>0 do begin inc(g); bit[g]:=c mod 2; c:=c div 2; end; end; begin read(k,n); er(n); sum:=1; i2:=0; for i:=g downto 1 do//倒序处理bit begin inc(i2); if bit[i]=1 then begin if i2=1 then continue;//已将sum赋值1,所以无需计算0次方了 sum:=fang(k,i2)+sum; end; end; write(sum); end. ``` ```

csp 2019年3月竞赛第三题 有什么高效的算法?

萌新算法水平很弱,这题只得了30分(超时),请大佬们帮优化一下代码 ,或者指点萌新一个高效的算法。谢谢 ``` import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner inputer = new Scanner(System.in); //读数据 int diskCount = inputer.nextInt();//有的硬盘总数 int stripSize = inputer.nextInt();//一条中有几块 int avaliableDiskCount = inputer.nextInt();//可用的硬盘数量 //读取因盘中的信息 String[] datas = new String[avaliableDiskCount]; inputer.nextLine();//提前做处理 for( int x = 0 ; x < avaliableDiskCount ; x++) datas[x] = inputer.nextLine();//读入硬盘的数据 int outputCount = inputer.nextInt(); //输出的数量 int[] outputNum = new int[outputCount]; for(int x = 0 ; x < outputCount ; x ++)outputNum[x] = inputer.nextInt();//输出的序号 /* 输入信息检测 ok for(int x = 0 ; x < avaliableDiskCount ; x++) System.out.println(datas[x]);//硬盘信息 for(int x = 0 ; x < outputCount ; x ++)System.out.println(outputNum[x]);//输出的个数 */ //创建硬盘阵列 int pieceCountInOneDisk = (datas[0].length() - (datas[0].indexOf(" ") + 1) ) / 8 ; //一个硬盘中的最大的分条数 String[][] diskDatas = new String[pieceCountInOneDisk][diskCount];//阵列数据 int cutIndex ;//截取硬盘号用的暂时数据计数 String diskNumInString = "";//用暂存硬盘编号 int nowDiskNum ; // 当前的硬盘编号 String everyPieceData = "";//每块中的8位数据 int nowPieceNum ; //填充硬盘数据是用 的计数器 boolean[] diskSign = new boolean[diskCount];//硬盘是否可用记号 for(String s : datas) { //截取硬盘号 cutIndex = 0 ; diskNumInString = ""; while(s.charAt(cutIndex) != ' ') { diskNumInString += s.charAt(cutIndex);//拼接数字 cutIndex ++ ;//结束后是空格所在位置 } nowDiskNum = Integer.parseInt(diskNumInString);//把硬盘编号转换成数值 diskSign[nowDiskNum] = true ;//该硬盘即可用 cutIndex ++ ; //移到数据的地方 nowPieceNum = 0 ; //向该盘中填充数据 while(true) {//结束条件内部控制 everyPieceData = ""; for(int x = 0 ; x < 8 ; x ++ , cutIndex++)everyPieceData += s.charAt(cutIndex);//截取8位 diskDatas[nowPieceNum][nowDiskNum] = everyPieceData ;//填入对应的盘和对应的块 if(cutIndex == s.length())break ; nowPieceNum ++ ;//结束时候是有效的最大块 } }//for(s) end /* *测试硬盘阵列的建立 for(int x = 0 ; x < pieceCountInOneDisk ; x ++) { for(int y = 0 ; y < diskCount ; y ++) { if(diskSign[y])System.out.print(diskDatas[x][y] + " "); else System.out.print("- "); } System.out.println(); } */ //修复与输出 int[] nowLocation ;//转换出来的标准位置0:硬盘中的第几块、1:哪个硬盘 String[] otherData ; for(int x = 0 ; x < outputCount ; x ++) {//遍历输出序列 nowLocation = location(outputNum[x] , stripSize , diskCount);//定位 if(diskSign[nowLocation[1]] == true) {//当前的硬盘存在, //判断是否超越界限 if(nowLocation[0] >= pieceCountInOneDisk)System.out.println("-");//输出错误 else System.out.println(diskDatas[nowLocation[0]][nowLocation[1]]);//输出 }else if(diskCount - avaliableDiskCount >= 2) { //不可修复 System.out.println("-"); }else {//可修复进行修复 otherData = new String[diskCount-1];//其他盘中的数据 for(int y = 0 , y2 = 0 ; y < diskCount ; y ++) { if(y != nowLocation[1]) {//取得其他恢复用数据 otherData[y2] = diskDatas[nowLocation[0]][y]; y2++; } }//for(y) end //进行恢复输出 System.out.println(fixUp(otherData)); } } } public static int[] location(int thePieceNum , int stripSize , int diskCount) { int stripLineNum = thePieceNum /( (diskCount - 1) * stripSize);//在第几排条 int numInThisStriopLine =( thePieceNum %( (diskCount - 1) * stripSize)) / stripSize ;//在当前排条的第几条 int thisStripLineCickNum = (diskCount - 1) - (stripLineNum % diskCount) ; //当前排条的校验位 int nowDiskNum = thisStripLineCickNum + 1 == diskCount ? 0 : thisStripLineCickNum + 1 ; //初始化该排第一个数据位 for(int x = 0 ; x < numInThisStriopLine ; x++)nowDiskNum = nowDiskNum + 1 == diskCount ? 0 : nowDiskNum + 1 ;//定位到硬盘号 int thisStripNumInDisk = (stripLineNum * stripSize) + (thePieceNum % stripSize) ;//定位到当前硬盘第几块 int[] solve = {thisStripNumInDisk , nowDiskNum}; return solve ; } public static String fixUp(String[] otherData) { String[][] stemp1 = new String[4][otherData.length];//转成分4位的二进制串 int index ; //截取起始位置 String nowTempH ;//截取的16进制串 String nowTempB ;//街截取的2进制串 for(int x = 0 ; x < 4 ; x++) { for(int y = 0 ; y < otherData.length ; y ++ ) { nowTempH = ""; nowTempB = ""; index = x * 2 ;//延这个位置截取2个 nowTempH += otherData[y].charAt(index);//第一个 index ++ ; nowTempH += otherData[y].charAt(index);//第二个 //转成二进制串 nowTempB = Integer.toBinaryString(Integer.parseInt(nowTempH , 16)); //补齐8位 for(int z = nowTempB.length() ; z < 8 ; z++)nowTempB = "0" + nowTempB ; stemp1[x][y] = nowTempB ;//记录 } }//for(x) end /* * 测试 * System.out.println("测试stemp1:"); for(int y = 0 ; y < otherData.length ; y ++ ) { for(int x = 0 ; x < 4 ; x ++) { System.out.print(stemp1[x][y] + " "); } System.out.print(" "); } System.out.println(); */ String[] solveInB = new String[4]; String solve ;//每8位的异或结果 int oneCount ; // 1 的个数 for(int x = 0 ; x < 4 ; x ++) { solve = "" ; for(int z = 0 ; z < 8 ; z ++) { oneCount = 0 ; for(int y = 0 ; y < otherData.length ; y ++){ if(stemp1[x][y].charAt(z)=='1')oneCount ++ ; } solve += oneCount % 2 == 1 ? "1" : "0"; } solveInB[x] = solve ; } /* * 测试 for(int x = 0 ; x < 4 ; x ++)System.out.print(solveInB[x] + " "); System.out.println(); */ //最后拼串 String end = ""; int endTemp ; //转成10进制 String endTempString ; for(int x = 0 ; x < 4 ; x ++) { endTemp = Integer.parseInt(solveInB[x] , 2); endTempString = Integer.toHexString(endTemp); for(int y = endTempString.length() ; y < 2 ; y++)endTempString = "0" + endTempString ; end += endTempString.toUpperCase(); } return end ; } } ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

阿里面试官让我用Zk(Zookeeper)实现分布式锁

他可能没想到,我当场手写出来了

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

​能让德国人放弃现金支付​,也没谁了

在新冠疫情中,德国人越来越多地选择在超市,加油站或其他商店付款时使用非接触式付款方式。德国信贷协会Deutschen Kreditwirtschaft (DK) 的一位发言人告诉德国新...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

2020春招面试了10多家大厂,我把问烂了的数据库事务知识点总结了一下

2020年截止目前,我面试了阿里巴巴、腾讯、美团、拼多多、京东、快手等互联网大厂。我发现数据库事务在面试中出现的次数非常多。

立即提问
相关内容推荐