
Java
ChayWong
。。。
展开
-
JVM内存模型及垃圾回收算法
JVM内存模型:程序计数器,虚拟机栈,本地方法栈,Java堆,方法区程序计数器:程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。虚拟机栈:与程序计数器一样,Java 虚拟机栈(Java Virtual原创 2015-10-21 08:18:41 · 886 阅读 · 0 评论 -
Java抽象类和接口的区别
1.抽象类只能被继承,而且只能单继承。接口需要被实现,而且可以多实现。2.抽象类中可以定义非抽象方法,子类可以直接继承使用。接口中都是抽象方法,需要实现类去实现。3.抽象类使用的是is-a关系。接口使用的has-a系。4.抽象类的成员修饰符可以自定义,接口中的成员修饰符是固定的,全都是public的。原创 2015-10-25 14:06:41 · 336 阅读 · 0 评论 -
Java的四中引用类型
强引用:JVM宁愿抛出OOM也不会将它回收,可能导致内存泄露软引用:当内存空间不足的时候才会去回收软引用的对象弱引用:在系统GC时,弱引用的对象一定会被回收,软弱引用适合保存那些可有可无的缓存数据虚引用:虚引用跟没有引用差不多,即使虚引用对象还存在,get方法总是返回null,它最大的作用是跟踪对象回收,清理被销毁对象的相关资源WeakHashMap适用场景:如果系统需要一张很大的原创 2015-10-25 14:08:49 · 1413 阅读 · 0 评论 -
Java内部类为什么可以访问外部类的成员
内部类都持有一个外部类的引用,这个是引用是 外部类名.this。内部类可以定义在外部类中的成员位置上,也可以定义在外部类中的局部位置上。当内部类被定义在局部位置上,只能访问局部中被final修饰的局部变量。如果内部类被静态修饰,相当于外部类,会出现访问局限性,只能访问外部类中的静态成员。注意:如果内部类中定义了静态成员,那么该内部类必须是静态的。内部类编译后的文件名为:“外部类名$内部类名原创 2015-10-25 14:11:23 · 642 阅读 · 0 评论 -
Java位运算符
&按位与相同位的两个数字都为1,则为1;若有一个不为1,则为0。(5&3=1)|按位或相同位只要一个为1即为1。(5|3=7)^按位异或相同位不同则为1,相同则为0。(5^3=6)~按位取反把内存中的0和1全部取反。(~5=-6)<<左移(5>>有符号右移(5>>1=2)>>>无符号右移(5>>>1=2)原创 2015-10-25 15:33:40 · 387 阅读 · 0 评论