当前位置:网站首页 > Java基础 > 正文

java基础知识点整理大全



1.八种基本数据类型的大小以及他们的封装类(顺带了解自动拆箱与装箱)。

原始类型 大小 包装类型 char 2字节 Character boolean 1字节 Boolean byte 1字节 Byte short 2字节 Short int 4字节 Integer long 8字节 Long float 4字节 Float double 8字节 Double

从Java 5开始,引入了自动装箱/拆箱机制,使得二者可以互换,细节值得注意:

 

2.equal与==区别(问的很多)
基本类型之间的比较一般是用==,但是注意float和double类型的精度问题以及NaN、正无穷大、负无穷大、-0.0、0.0的比较问题。
引用类型的比较一般是用equal,尤其是字符串,因为==是指对象地址之间的比较,而对象地址之间的比较一般是无意义的。

3.object有哪些公共方法

1.clone方法
保护方法,实现对象的浅复制。
主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这是就需要在类中复写clone方法。
2.getClass方法
finaljava基础知识点整理大全方法,获得运行时类型名。
3.toString方法
该方法用得比较多,一般子类都有覆盖。
4.finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
5.equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。
6.hashCode方法
该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。
如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。
7.wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
8.notify方法
该方法唤醒在该对象上等待的某个线程。
9.notifyAll方法
该方法唤醒在该对象上等待的所有线程。

4.i++是否是原子操作,与++i有什么区别
原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)

1.i++分为三个阶段:
内存到寄存器
寄存器自增
写回内存
这三个阶段中间都可以被中断分离开.
2.++i首先要看编译器是怎么编译的
如果在单核机器上,不加锁不会有问题,但到了多核机器上,需要加锁。

i++ 与 ++i 的主要区别有两个:
(1.)i++ 返回原来的值,++i 返回加1后的值。
(2.) i++ 不能作为左值,而++i 可以。
左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。

版权声明


相关文章:

  • java基础知识讲解二2024-11-02 16:50:03
  • Java必背基础2024-11-02 16:50:03
  • java基础最重要的2024-11-02 16:50:03
  • Java基础编程规范注意事项2024-11-02 16:50:03
  • JAVA基础双重for循环去重2024-11-02 16:50:03
  • java基础数据类型和类的区别2024-11-02 16:50:03
  • 零基础学软件测试和java2024-11-02 16:50:03
  • java基础实训大纲2024-11-02 16:50:03
  • 会点java基础找什么工作2024-11-02 16:50:03
  • 零基础学java 明日科技2024-11-02 16:50:03