java中byte,short,int,char,float,double,long 分别是多少字节?
byte:1字节
short:2字节
char:2字节
int:4字节
float:4字节
double:8字节
long:8字节
java中boolean类型大小是多少?
boolean类型无空间大小
java中boolean,byte,short,int,char,float,double,long 初始值是什么?
boolean:false
byte,short,int,char,long:0
float:0.0f
double:0.0d
java中8种基本数据类型优先级排序为?
(byte/short/char)< int < long < float < double
该顺序从左到右,即可以进行隐式转换
什么时候不能进行隐式转换?
如果丢失精度就不可以,比如long转int,或者double转为long,需要进行强制类型转换
java数据类型的大小会和平台是32位还是64位有关吗?
不相关,因为虚拟机原因平台不兼容
线程安全集合、非线程安全集合?
线程安全:vector、HashTable、StringBuffer、ConcurrentHashMap(同时支持异步并发)、stack
非线程安全:ArraryList、LinkedList、HashMap、HashSet、TreeMap、TreeSet、StringBuilder、LinkedHashSet、LinkHashMap
ArrayList、HashMap、HashSet、StringBuffer默认长度?
ArrayList 10,扩容1.5倍,10扩容成15
LinkedList 没有初始大小,没有扩容机制,是双向列表,可以一直增加
Vector 10,扩容2倍,10扩容成20
HashMap 16,扩容0.75
HashTable 11
HashSet 16
StringBuffer 16
HashMap和HashTable区别?
HashMap:键和值都可以为null,异步并发,不安全
HashTable:键和值都不能为null,线程同步,安全
Switch支持的类型?
byte、char、short、int、枚举、String
不支持long、boolean
哪些类型是immutable的(不可变类型)?
- Integer、String、Double、Long
immutable Objects就是一旦被创建,它们的状态就不会被改变,每次对它们的改变都是>产生了新的immutable对象- 开发中创建的大部分的类是可变类型
浮点数比较相等方法?
Math.abs(a-b) < 1E-6F
try{}、catch{}、finally{} 中 return 的执行顺序
- try{}、catch{}、finally{} 和方法最后,都有 return 时:
- 在通过编译器的检查后,如果 finally{} 中有 return,则以 finally{} 中的 return
为准,其他的都将失效,return 之前的代码都有效。- 方法最后的 return 会于 catch{}、finally{} 中的任何一个 return 互斥。也就是说,在
catch{}、finally{} 中其中一个地方存在 return,编译器就能检查,已符合方法的返回要求。- catch{} 和 finally{} 中,可同时存在 return,编译能通过。但程序以 finally{} 中的 return
为准,不会理睬 catch{} 中的 return,catch{} 中 return 之前的代码仍然生效。
- catch{}、finally{} 中,都没有 return,try{}中和方法最后有return时:
- try{}中程序正常执行时,try{}中return生效,方法最后return失效,return前执行finally{}中语句。
- try{}中语句执行异常,catch{}中语句执行,finall{}中语句执行,try{}中return失效,方法最后的return生效。
- 只有 try{}和finally{} 而没有 catch{} 时
- try{}中发生异常时,try{}和方法中异常之后的代码不会再继续执行。
- finally{} 中内容,无论是否发生异常,都会执行 。
isInfinite()、isNaN()方法
在Double和Float类中都有这两个方法,用于判断是否是无穷大及是否为非数字,用法Double.isInfinite(val) 、Double.isNaN(val))
- public boolean isInfinite()
如果此对象表示的值是正无穷大或负无穷大,则返回 true;否则返回
false。- public boolean isNaN()
如果此值是一个非数字 (NaN) 值,则返回 true,否则返回
false。
Integer.parsenInt()和Integer.valueOf()区别
都是用来将String转为int
Integer.parsenInt()返回原子类型int
Integer.valueOf()返回封装的Integer对象
for earch过程中删除元素
- ArrayList ,删除倒数第二个元素不会异常,其余会抛出异常
- LinkedList,删除最后一个和倒数第二个元素不会异常,其余会抛出异常
char的范围,分析如下代码
char a = 'A';
int b = 65;
boolean flg = true;
System.out.println(flg ? a : 100000); // 65
System.out.println(flg ? a : b); // 65
char的范围是 0-65535 ,所以当 (flg ? a : 65535) 时,会返回A