LuckQI
在这里你可以得到不只是技术,关注即可习得新技能
做java有一段时间了。经常写业务代码,长时间里,自己只知道怎么使用其中的api,对于java的理解很多就忘记了。正好极客时间里面出来了一个课程关于JAVA核心技术的讲解,自己也开始学习,期望能提高自己对java的理解。
首先提出需要的问题。
我看到这个问题的时候也是一头懵逼。难道面试的时候会问这种问题吗。让我这个小白渣渣心中突突了一下。其实让我自己说也不知道怎么说。赶紧趁着机会学习下。
Java平台的理解 : 一个面向对象编程的语言
Java是解释性执行吗?
答案是否定的。为什么这么说?
我们都知道JAVA分为编译期和运行时两种类型。在编译期,Javac会把源码文件编译成.class文件,其实class文件里面就是字节码。而不是直接执行的机器码。那么在运行时,我们就需要依靠虚拟机JVM了。我们常用的Hotspot JVM 提供的是JIT动态编译器。也就是常用的动态编译器。在运行时刻将热点代码编译成机器码。这种情况下的代码就属于编译执行。不是解释执行了。随着Java的发展。Java8已经开始了解释和编译混合的模式。来快速的运行代码。
下面是画的简单的脑图,我们可以在下面的内容上继续添加。满足对Java的理解。
Java平台
Exception 与Error
我们正常在程序中经常会遇到一些异常问题,需要进行解决。那么这两者有什么区别呢。让我们看下继承关系。
Error与Exception 都是继承Throwable.其中Throwable 在Java中才可以被抛出throw或者catch。 它是异常处理机制的基本组成类型。
Error是在不长出现的内容,大部分的Error是程序出现了不可意料的错误,比如OutOfMemoryError这类的。
Exception 分为 可检查的和不检查的错误,可检查的错误一般是能在编译器里面自然的能看到。而不可检查的错误比如我们常常遇见的空指针异常。这种异常一般是我们可以捕捉到的异常。一般这方面的异常有连接池异常,访问异常,IO异常等等。
简单脑图异常
异常图类集成关系
错误异常
在程序中,我们在处理异常的时候基本上要进行分门别类进行处理,不建议统一按照Exception捕捉,有的异常时需要抛出来让业务层统一处理,有的需要单独处理。特别是在流式程序中执行,异常不是容易查找。
欢迎大家关注