zhenlanghuo's Blog

zhenlanghuo's Blog

类的访问权限(C++和JAVA)
C++访问权限 继承方式 C++中继承的方式还有多种,也分别都用public、protected、private表示。这与Java不一样,Java只有继承的概念,默认是public继承的。 三种继承方式不影响子类对父类的访问权限,子类对父类只看父类的访问控制权 继承方式是为了控制子类(也称派生类)的调用方(也叫用户)对父类(也称基类)的访问权限 public、protected、private三种继承方式,相当于把父类的public访问权限在子类中变成了对应的权限。 如protected继承,把父类中的public成员在本类中变成了protected的访问控制权限;private继承...
深入理解java虚拟机(第三章 垃圾收集器与内存分配策略)
《深入理解java虚拟机》的重点记录,方便复习 对象生命周期引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 实现简单,判断效率也很高,但是很难解决对象之间相互循环引用的问题。 可达性分析算法通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象不可用的。 4种GC Roots对象: 虚拟机栈(栈帧中的本地变量表)中引用的对象...
深入理解java虚拟机(第二章 Java内存区域)
《深入理解java虚拟机》的重点记录,方便复习 Java内存区域 程序计数器(Program Counter Register) 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器 线程私有,每一个JVM线程都有独立的程序计数器,各线程间的计数器互不影响,独立存储,确保线程切换后能够恢复到正确的执行位置 Java虚拟机栈(Java Virtual Machine Stack) 线程私有,与线程的生命周期相同 描述java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法...
JAVA集合框架总结
这里的内容只是从下边来源的系列文章摘抄的一些关键内容,方便复习来源:《深入理解Java集合框架》系列文章 ArrayList 顺序容器,底层通过数组实现 每个ArrayList都有一个容量(capacity,底层数组的实际大小),添加元素时容量不足,容器会自动增加底层数组的大小(原来的1.5倍) size(), isEmpty(), get(), set()方法均能在常数时间内完成(O(1)复杂度) add()方法的时间开销跟插入位置有关,addAll()方法的时间开销跟添加元素的个数成正比,其余方法大都是线性时间 没有实现同步(synchronized),如果需要多个线程并发访问...
avatar
zhenlanghuo
work hard, play hard