JAVA知识深度回顾总结-第一天
八种基本数据类型的大小,以及他们的封装类
- 分类 - 类型—————范围——————封装类
- 整型
- byte ———- [-128~127] ———— Byte
- short ——– [-2^15~2^15 - 1] —— Short
- int ———– [-2^31~2^31 - 1] —— Integer
- long ——— [-2^63~2^63 - 1] —— Long
- 浮点型
- float ——— [-2^31~2^31 - 1] —— Float
- double —— [-2^63~2^63 - 1] —— Double
- 字符型
- char —— [0 ~ Unicode 2^16-1] —–Character
- 布尔型
- boolean ——– [true、false] ———- Boolean
switch能否用String类型或long类型做参数
- switch能填入int和enum(枚举类型)
- byte、short能隐式转换成int所以这两个可以
- long只能强转后填入
- java1.7新增了String类型,所以java1.7以下的版本无法用String类型作为参数
equals与==的区别
- 先要了解值类型是存储在内存中的栈,而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身数据存储在堆中
- ==比较的是两个变量的值是否相同,栈中的内容是否相同
- equals比较两个变量是否是对同一个对象的引用,既是否指向同一个堆
- 因此总结:==比较的是两个对象的地址,而equals比较的是两个对象的内容
Object有哪些公用方法?
- clone() 方法:保护方法,实现对象的浅复制(浅复制和深复制理解),只有实现了Cloneable接口才可以调用该方法
- getClass()方法:返回一个对象的运行实例
- toString()方法:返回改对象的字符串表示
- finalize()方法:当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法
- notify()方法:唤醒在此对象监视器上等待的单个线程
- notifyAll()方法:唤醒在此对象监视器上等待的所有线程
- wait()方法:使当前线程等待其他线程调用此对象的notify()或notifyAll(),当前线程必须是该对象的拥有者,也就是具有该对象的notify()或notifyAll()。wait()方法一直等待,直到被调用notify()或notifyAll()或者被中断
- wait(long timeout):设定一个超时间隔,如果在规定时间内没有获得锁就返回
- wait(long timeout, int nanos):其他线程调用了interrupt(interrupt方法的使用)中断该线程当前线程
- equals(Object obj)方法:重写该方法作为对象之间是否相等的比较
- int hashCode()方法:该方法返回改对象的哈希码值,重写equals一般都要重写hashCode()方法,该方法在一些具有哈希功能的Collection中用到
我的感受
- 重点还是要搞清除一下object的方法,听说面试常常问<( ̄︶ ̄)>
- object中的wait方法三个两个参数那个不大懂
- 在switch中直接把long强转成int就ok了,在case中不能居然不能int和String类型都有,也是,在怎么说传进来的只有一个类型嘛。(~ ̄▽ ̄)~