今天,去一家公司面试android,问的全是java基础,自己回答的比较勉强,结果可想而知,打脸了******
1、java基本数据类型?
字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double
2、2个byte[]如何拼接成一个byte[]?
直接上代码:
public static byte[] byteMerger(byte[] byte_1,byte[] byte_2){
byte[] byte_3 = new byte[byte_1.length+byte_2.length];
System.arraycopy(byte_1,0, byte_3,0, byte_1.length);
System.arraycopy(byte_2,0, byte_3, byte_1.length, byte_2.length);
return byte_3;
}
3、int是多少位?int与Integer的区别?int如何获得最高位、次高位、次低位、低位的byte[]?
32位, Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。
public static byte[] intToBytes(intvalue ) {
byte[] src =newbyte[4];
src[3] = (byte) ((value>>24) &0xFF);
src[2] = (byte) ((value>>16) &0xFF);
src[1] = (byte) ((value>>8) &0xFF);
src[0] = (byte) (value &0xFF);
return src;
}
4、线程的join方法与wait的区别,线程有几种状态?
join()-->等待调用join方法的线程结束,再继续执行。如:t.join();//主要用于等待t线程运行结束,若无此句,main则会执行完毕,导致结果不可预测。
wait()-->在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。
5、介绍下socket,socket如何保证长链接,如果数据包有问题怎么办?
保持长链接:定时发心跳包,数据包发送超时判断,网络状态监听...
socket丢包问题是最容易问到的...
6、多线程之间的通信方式?
网上给出了3种方式 1、管道流Pipes 2、共享内存 3、Hander和Message
通信方式不局限于这几种,看实际情况吧
7、所有集合的父类,map与list?
java集合大致可以分为Set、List和Map三大体系,几个集合的父类都是Collection类
具体子类 在这里 不做赘述
8、蓝牙2.0与4.0区别?
9、adb的一些命令?
介绍几条基本的吧:
adb devices查询当前计算机上连接那些设备
adb shell am命令可以启动应用程序
adb install 安装app, adb uninstall卸载
adb push 拷贝文件到设备 adb pull 获取文件从设备
adb logcat抓日志
adb shell [command] 进shell