美文网首页
我的Java基础

我的Java基础

作者: FengXQ | 来源:发表于2018-09-11 12:11 被阅读0次

    我的Java

    语言和Jvm以及Hotspot

    1、简述一下Class class(Class类),以及说明一下比较特殊的Class

    Class对象代表运行其的类或接口,Enum是类的一种,Annotation是接口的一种。所有的数组也都属于一个类,并且通过反射生成一个Class对象。类型相同且维度相同的数组,共享一个对象。Java的8个原生数据类型、以及关键字void都代表Class对象。

    这是合法代码:

    System.out.println(void.class.getName());

    System.out.println(int.class.getName());

    2、Object都有哪些方法?

    共有12个显示定义的方法,其中一个比较特殊的是私有静态方法。以及未显示定义,但是存在的默认构造函数。

    private static native registerNatives()

    public 类型的方法:equals()、toString()

    public final native类型的方法:getClass()、notify()、notifyAll()、三个wait()

    public native方法有:hashCode()

    protected native方法有:clone()

    protected finalize()

    3、关于Object.clone()和Cloneable接口的关系

    Object.clone()方法是可以在子类中重写(override),但是如果需要调用clone方法,则前提是这个类必须是实现了Cloneable接口。Cloneable接口没有声明任何方法。否则在调用时会抛出CloneNotSupportException。

    4、关于Throwable的简单描述

    来自《java doc》

    java.lang.Throwable是所有Error和Exception的父类,也只有Throwable和其子类可以用于java的throw语句和cache语句。为了能够在编译期检查异常,所有Throwable和其子类,但不是RuntimeException和Error的子类,的类都是检查异常(Checked Exception)。RuntimeException和Error以及两者的子类都是非检查异常(Unchecked Exception)。

    来自《java language》

    从定义上来说,Throwable和所有子类统称为异常类。Throwable有两个子类:Error和Exception。

    异常分为检查类异常和非检查类异常。(上面已经叙述了)

    RuntimeException通常称为运行时异常类

    Error通常称为Error(错误)类。

    我的理解:严格意义上来讲,Error不能说是运行时异常,而是非检查类异常。非检查类异常包括运行时异常和Error。

    5、关于Error的一些描述

    Error的java doc非常简陋。

    来自《java language》

    Error通常情况下程序都不希望恢复。

    我的理解:Error是可以被捕获并进行相应的操作,比如StackOverflowError| OutOfMemoryError都是可以捕获的,这是java规范中不建议捕获。

    6、[]数组的最大长度是多少?

    这跟vm heap的可用内存大小有关。

    7、关于API和SPI以及在dubbo中的应用

    【略】

    8、关于异步异常

    来自《java language》

    异步异常只会来自两种情况:

    调用Thread或ThreadGroup的stop方法,stop被调用时,线程内部可能运行在任何一个点上。

    JVM一个内部错误或资源限制用来阻止它实现编程语言语义,这种情况下,VirtualMachineError子类的异常实例作为异步异常抛出。例如StackOverflowError可能是在方法调用时异步抛出。

    异步异常很少见但是要编写高质量的代码,就必须很好的理解它们。

    9、引发异常的几个原因

    异常的产生有三个原因:

    1、 throw语句抛出异常。

    2、 不正常的执行:违反规则的计算表达式;类初始化异常(loading、linking、initializing);内部异常或资源限制。这些都是在可能引发问题的指定的点上的异常,而非任意点抛出。

    3、异步异常发生。

    10、编译期异常检查和处理

    来自《java language》

    11、运行期异常处理

    来自《java language》

    相关文章

      网友评论

          本文标题:我的Java基础

          本文链接:https://www.haomeiwen.com/subject/ydoygftx.html