面试Java基础的时候,会涉及到异常处理的问题,连带着对JDK、JRE认知想要更清晰些,因此做些总结。
JDK名称解读
- 全称是 Java Development Kit, 即 Java 开发组件。属于开发环境。
- 类比说明:NDK,全称是 Native Development Kit,属于 Android 调用原生接口的应用开发组件,即允许使用 C/C++ 开发。
- 类比说明:SDK,全称是 Software Development Kit,可以说JDK是Java的SDK。
-
JDK 一共有3种版本:J2SE 标准版、J2EE 企业版、J2ME 移动设备版,JDK 从版本 jdk1.5 开始,就改名为 Java SE5.0,类似的:
jdk1.5 即 Jva SE 5.0
jdk1.6 即 Java SE 6.0
jdk1.7 即 Java SE 7.0
JDK作用:
- 利用基础类库开发Java程序
- 利用 javac ~ 编译器,将源程序编译成字节码文件
- 利用 jar ~ 打包工具,将相关的类文件打包成一个文件
- 利用 javadoc ~ 文档生成器,从源码注释中提取文档
- 利用 jdb ~ debugger 调试器,差错工具
JRE名称解读
- 全称是 Java Runtime Envirnment,即运行时环境。属于运行环境。
- 需要说明的是,JDK 和 JRE 分别属于开发环境和运行环境,但是 jdk1.5 之后,不需要单独安装 JRE,因为为了开发方便起见,jdk1.5之后,JRE集成到了JDK的安装包下。体现在:JDK 的安装目录下有一个名为 jre 的目录,里面有两个文件夹 bin 和 lib,在这里可以认为 bin 里的就是 jvm ,lib 中则是 jvm 工作所需要的类库
JRE作用:
- Java 得以跨平台无敌的存在 ~ JVM
- JAVA 类库(核心类库、扩展类库)
- Java application launcher,来启动 Java 运行时环境
- 字节码文件交给 jre,jre 调用 JVM 和运行的类库跑出结果
异常处理
目的在于: 解决程序无法掌控的部分,如读取文件、连接网络、使用数据库等。为了能运行,必须处理这些异常。Error: 继承自 Throwable 类,指的是 JVM 错误,程序并没有执行,需要调Bug!
Exception: 继承自 Throwable 类,指的是程序之中出现的错误信息,可以进行异常处理
异常处理的基础:
- System.out.println()是高代价的,调用该方法会降低系统吞吐量
- 在生产环境中,禁用异常的printStackTrace()方法。printStackTrace()默认会把调用的堆栈打印到控制台上,在生产环境中访问控制台是不现实的
try{
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String inputLine=input.readline();
int i=Integer.parseInt(inputLine).intValue();
}catch(Exception e){
e.printStackTrace() ;
}
常见异常:
- ArrayIndexOutOfBoundsException
- NumberFormatException
- ArithmeticException
- SQLException
- IOException
- RuntimeException
异常处理的方法:
- 方法声明里增加throws异常
- throw 往外抛异常
- 使用 try…catch
- 使用 try…catch..finally
异常处理的原则上是:
- 能自己处理的不往上抛
- 尽量把异常细化,避免异常用Exception来表示,即在一个try语句块中处理尽量少的异常。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。