Java--关于编译时、运行时以及构建时
来源:互联网 发布:mysql免安装版下载 编辑:程序博客网 时间:2024/06/10 06:36
1.final关键字
static final int number1 = 5;static final int number2 = 6; static int number3 = 5;static int number4= 6;public static void main(String[ ] args) { int product1 = number1 * number2; //line A int product2 = number3 * number4; //line B }
其中line A为编译时计算,line B为运行时计算。
2.方法重载与方法覆盖
方法重载:这个是发生在编译时的,方法重载也被称为编译时多态,因为编译器可以根据参数的类型来选择使用哪个方法。
方法覆盖:这个是在运行时发生的,方法重载被称为运行时多态,若子类A覆盖了父类B的方法,在编译期编译器不知道并且没法知道该去调用哪个方法,JVM会在代码运行的时候做出决定。
3.泛型
这个是发生在编译期的。编译器负责检查程序中类型的正确性,然后把使用了泛型的代码翻译或者重写成可以执行在当前JVM上的非泛型代码。这个技术被称为“类型擦除“。换句话来说,编译器会擦除所有在尖括号里的类型信息,来保证和版本1.4.0或者更早版本的JRE的兼容性。
4.异常
运行时异常:也称作未检测的异常(unchecked exception),这表示这种异常不需要编译器来检测。RuntimeException是所有可以在运行时抛出的异常的父类。一个方法除要捕获异常外,如果它执行的时候可能会抛出RuntimeException的子类,那么它就不需要用throw语句来声明抛出的异常。
例如:NullPointerException,ArrayIndexOutOfBoundsException,等等
受检查异常:都是编译器在编译时进行校验的,通过throws语句或者try{}cathch{} 语句块来处理检测异常。编译器会分析哪些异常会在执行一个方法或者构造函数的时候抛出。
5.其他
继承 – 发生在编译时,因为它是静态的
代理或者组合 – 发生在运行时,因为它更加具有动态性和灵活性。
0 0
- Java--关于编译时、运行时以及构建时
- 关于Java编译时和运行时的差异
- 构建运行时映像
- 关于“编译时”和“运行时”
- Java编译时类型与运行时类型以及重载和覆盖方法选择
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- java中的编译、运行和构建
- 关于java编译通过,运行时出错或找不到主类问题解决
- Java:编译时与运行时
- java编译时和运行时
- Java 编译时与运行时
- JAVA编译时与运行时
- Java之编译时与运行时
- java面试:编译时与运行时
- Java编译时与运行时
- 关于ffmpeg编译以及运行的问题
- 随笔——Shadow
- 网易视频云技术分享:移动端播放器框架搭建
- Android中新建文件并将EditText中的内容保存其中
- token-防止表单重复提交
- 出现fonts/fontawesome-webfont.woff2 404 (Not Found)
- Java--关于编译时、运行时以及构建时
- break,returned,和continue
- java中一个类从生到死
- 构件组装-引言
- VirtualBox 不能为虚拟电脑打开一个新任务
- Android不能乱用的View.getHeight()(尤其是UI线程里)
- How to Install OpenERP Odoo 8 on Ubuntu Server 14.04 LTS
- halcon例程 -- 逐字细究(四)
- Epoll详解及源码分析