javase回顾一

来源:互联网 发布:php软件下载 编辑:程序博客网 时间:2024/06/06 03:01

眼瞅着javase学了一遍了,但是博主还是有很多都很懵逼,所以打算回顾一下之前的知识,碰到了一些问题,在这里做一记录:

  1. 强制类型转换问题:
short a = 128;byte b = (byte)a;请问a和b的值是多少?在java中byte1个字节    00000000        short2个字节    00000000 00000000        int4个字节        long8个字节所谓的强制类型转换,就是一个截取的问题,以本题为例:short转为byte,截去了前面的八位二进制,保留了后面的八位二进制short128=00000000 10000000截取后为10000000,由于电脑中存的是二进制的补码(补码=(-原码)+1),此时求得反码为01111111,原码为10000000,最高位为符号位(1为负数0为正数),则对应十进制为-0或-128,由于没有-0,故为-128.

2.子类继承父类后,父类的静态代码块,非静态代码块,构造方法,子类的静态代码块,非静态代码块,构造方法的运行顺序是?

答:父类的静态代码块->子类的静态代码块->父非静态代码块->父的构造->子的非静态代码块->子的构造

3.子类继承父类后,继承了父类的什么?

除了父类的构造和static方法外的所有方法和数据,包括父类的私有属性,只不过是无法访问罢了

4.volatile关键字

作用:保证不同线程对同一资源操作时的可见性,即volatile告诉jvm当前变量在寄存器(缓冲区)中的值是不可信的,要从内存中读取,从而保证在访问该变量时都是从内存读取的最新值。注:不提供该数据修改的原子性保证,并且不会阻塞其它线程(不像synchronized会锁定当前变量,阻塞其它线程)

5.异常类

基类:Throwable继承于Throwable的类:Exception(程序可处理异常)和error(程序无法处理的错误(非检查异常))继承于Exception的类:RunTimeException(运行时异常,非检查异常)非运行时异常(检查异常)针对检查异常java编译器要求要使用try-catch结构去捕获或者用throws抛出