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 时:
  1. 在通过编译器的检查后,如果 finally{} 中有 return,则以 finally{} 中的 return
    为准,其他的都将失效,return 之前的代码都有效。
  2. 方法最后的 return 会于 catch{}、finally{} 中的任何一个 return 互斥。也就是说,在
    catch{}、finally{} 中其中一个地方存在 return,编译器就能检查,已符合方法的返回要求。
  3. catch{} 和 finally{} 中,可同时存在 return,编译能通过。但程序以 finally{} 中的 return
    为准,不会理睬 catch{} 中的 return,catch{} 中 return 之前的代码仍然生效。
  • catch{}、finally{} 中,都没有 return,try{}中和方法最后有return时:
  1. try{}中程序正常执行时,try{}中return生效,方法最后return失效,return前执行finally{}中语句。
  2. try{}中语句执行异常,catch{}中语句执行,finall{}中语句执行,try{}中return失效,方法最后的return生效。
  • 只有 try{}和finally{} 而没有 catch{} 时
  1. try{}中发生异常时,try{}和方法中异常之后的代码不会再继续执行。
  2. 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