一、8种基本数据类型
声明 | 字节 | 位数 | 包装类 |
---|---|---|---|
byte | 1 | 8 | Byte |
short | 2 | 16 | Short |
int | 4 | 32 | Integer |
long | 8 | 64 | Long |
float | 4 | 32 | Float |
double | 8 | 64 | Double |
char | 2 | 16 | Char |
boolean | Boolean |
二、引用数据类型
类
接口
数组
三、浮点运算
float和double均不能进行精确运算,需要借助BigDecimal类进行辅助运算。
四、面试题
1. true和false是Java关键字吗?
答案:不是,只是字符常量
2. List、Map、Set三个接口,存取元素时各有什么特点?
接口 | 存储 | 访问 |
---|---|---|
list | 有序的,可重复的 | 可以for循环,foreach循环,iterator迭代器 |
set | 无序的,不重复的 | 可以foreach循环,iterator迭代器 |
map | 一对一对的键值对映射 ”key=value“,key值 是无序,不重复的。value值可重复 | 可以map中key值转为为set存储,然后迭代这个set,用map.get(key)获取value,也可以 转换为entry对象 用迭代器迭代;可以将整个map转换为Set<Entry<K,V>> 进行迭代 |
3. Java里的传引用和传值的区别是什么?
答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。
4. ==与equals的区别
答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .
==比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。String, BitSet, Date, 和File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。
5. 如果要重写一个对象的equals方法,还要考虑什么?
hashCode();