- 博客(5)
- 收藏
- 关注
原创 (三)jvm对象的回收
怎么判断对象是否可以回收?一:引用计数算法在对象中添加一个引用计数器,每当有一个地方引用他时,计数器加1,当引用失效时,计数器减1,当计数器为0时,就表明该对象已经不能被使用了缺点是不能解决对象之间相互循环引用的问题二:可达性分析法通过一系列称为“GC roots”的对象作为起始点向下搜索,搜索所走过的路径称为引用链,当一个对象到GCroots没有任何引用链时,表明该对象是不可
2018-01-17 15:31:33
112
原创 (二)jvm对象的创建和访问
一 对象的创建虚拟机首先会检查是否能在常量池中定位一个类的符号引用,检查这个符号引用是否已经被加载解析和初始化。类加载检查通过后,会为新生对象分配内存,对象所需内存的大小在类加载完成后就已经确定。在虚拟机中为对象分配内存的方式有两种:指针碰撞和空闲列表指针碰撞 java堆中的内存是规整的,即已经使用的内存在一边,空闲的内存在另外一边,中间放着一个指针作为分界点的指示器,每
2018-01-17 13:01:58
114
原创 从尾到头打印链表
题目:输入一个链表,从尾到头打印链表每个节点的值Public classListNode(){ Int var; ListNode next=null; Public ListNode(int var){ This.var=var;}}*/ Importjava.util.Stack;Importjav
2018-01-14 21:16:10
108
原创 替换空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。Public class replace(StringBuffer str){ String s=str.toString(); Char[] charStr=s.toCharArray();
2018-01-14 19:00:22
97
原创 (一)jvm虚拟机运行时数据区域
java虚拟机在执行java程序时会把他所管理的内存划分为几个不同的数据区域一 程序计数器 程序计数器是一块较小的内存区域,是线程执行当前字节码的行号指示器,,通过改变计数器的值来选取下一个字节码的执行指令,分支,循环,跳转,异常处理,线程恢复,都需要以来计数器完成该。 java虚拟机的多线程是通过线程的轮流切换并分配处理器的执行时间来实现的,在每一个确定的时间
2018-01-14 17:18:31
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人