7月21日
-
Java 创建对象的方式有哪几种?并说明哪些调用构造器?哪些不调用构造器?
- 使用 new 关键字 构造函数会被调用
- 使用 Class 类的 newInstance() 构造函数会被调用
- 使用 Constructor 类的 newInstance() 构造函数会被调用
- 使用 clone() 方法 无构造函数调用
- 使用 deserialization 序列化 无构造函数调用
-
BIO、NIO、AIO 有什么区别?
- BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
- NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
- AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
-
HashMap 和 Hashtable 有什么区别?
- hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
- hashTable同步的,而HashMap是非同步的,效率上比hashTable要高。
- hashMap允许空键值,而hashTable不允许。
- 其他 继承类不同,底层数据结构不同等
-
如何实现数组和 List 之间的转换?
- List转换成为数组:调用ArrayList的toArray方法。
- 数组转换成为List:调用Arrays的asList方法。
-
什么是守护线程?
- t.setDaemon(true);
- java守护线程,顾名思义,守护的是主进程,当主线程结束了,守护线程也就结束了
守护线程的典型应用有 java的垃圾回收
-
十进制转为十六进制
private static String hexString = "0123456789abcdef"; public static String toHexString(int num){ int jinzhi = hexString.length(); String str = ""; do { int mod = num % jinzhi; str = hexString.charAt(mod) +str; num /= jinzhi; }while (num!=0); return str; }