在部分商用虚拟机中,Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块运行地特别频繁,就会把这些代码块认定为“热点代码”,为了提高热点代码的执行效率,在运行时,虚拟机会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(JIT编译器 ...
分类:
其他好文 时间:
2017-07-18 10:11:50
阅读次数:
232
关于Java中多态机制 http://www.cnblogs.com/chenssy/p/3372798.html 这篇博文讲的很透彻 大体意思是 多态定义: 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会 ...
分类:
编程语言 时间:
2017-07-18 09:59:21
阅读次数:
171
1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 全局变量,static变量。 (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。 栈内存分配 ...
分类:
编程语言 时间:
2017-07-17 22:12:38
阅读次数:
215
异常和错误的概念及区别 1.异常是不正常的事件,并非错误 2.错误是导致程序终断的情况 异常的种类:编译期异常和运行期异常 运行期异常 1.数学异常(10/0,不能相除) 2.空指针异常(目标不存在) 3.数组下标越界异常 编译期异常 try/catch/finally try:检测不安全代码,发现 ...
分类:
编程语言 时间:
2017-07-17 20:22:26
阅读次数:
178
static静态变量的理解 static静态变量的理解 静态变量 类型说明符是static。 静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 ...
分类:
其他好文 时间:
2017-07-17 18:34:56
阅读次数:
127
一 概述 1.垃圾 JVM垃圾收集针对的是主要是堆中的垃圾,因为线程启动时在栈中分配空间,线程结束,自动释放空间,不需要实时监控;方法区主要存储类信息以及静态变量与常量,通常在整个程序运行期间都有效,不存在需要回收的对象。 垃圾指的是无法被线程访问的对象,一个对象只有对线程可见,可被线程访问,才可用 ...
分类:
编程语言 时间:
2017-07-14 13:13:59
阅读次数:
188
static关键字会在声明变量的时候分配内存,在程序运行期间只分配一次内存。之后再访问时,实际都是在访问原先分配的内存 如果使用static来修饰局部变量,那么局部变量在代码块结束后将不会回收,下次使用保持上次使用后的值。 如果使用static来修饰全局变量,那么表示该全局变量只在本文件中有效,外界 ...
分类:
其他好文 时间:
2017-07-13 22:47:55
阅读次数:
118
一、内存的分配方式 程序占用的内存分为五个区域: 1.静态区/全局区(static)存放静态变量、全局变量,内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间始终不变。2.栈区(stack)存放函数的参数值、局部变量的值等,由编译器自动分配释放。管理简单,空间使用效率高,但是生命周期很短 ...
分类:
其他好文 时间:
2017-07-13 00:55:18
阅读次数:
212
一、运行期类型与编译期类型 1.第一种情况:编译期类型和运行期类型相同: 声明A的时候,使用到的类型A表示对象的类型,被称为编译期类型,在编译期,虚拟机认为a的类型是A,对于a所使用的属性和方法的有效性将到类A中去验证。 构造方法A()中的A是运行期类型,在运行期,将执行运行期类型中的方法 2.第二 ...
分类:
其他好文 时间:
2017-07-12 21:34:41
阅读次数:
168
一: Throwable类有两个直接子类:Exception类、Error类。Error表示错误,可能是编译期错误或者系统错误,往往程序中并不处理。 二: 异常分为运行期异常和编译期异常两种 运行期异常:程序运行时抛除的异常,所有RuntimeException的子类都是运行期异常 数学异常 空指针 ...
分类:
其他好文 时间:
2017-07-12 21:26:24
阅读次数:
143