Java
一个仰望天空的Man
这个作者很懒,什么都没留下…
展开
-
Java类加载的过程
一、类加载过程:1.加载:将class文件导入内存加载时类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情:1、通过一个类的全限定名来获取其定义的二进制字节流。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3、在内存生成一个代表这个类的java.lang.Class对象(hotspot虚拟机Class对象存储在方法区),作为对方法区中这些数据的访问入口。加载阶段完成后,虚拟机外部的 二进制字节流就按照虚拟机所需的格式存储在方法区之中,而且在Java堆中也创建一.原创 2020-11-05 00:56:20 · 1725 阅读 · 0 评论 -
JVM是如何判断对象可回收?常见的GC算法有哪些?
一、在java中如何判断对象是否死亡?死亡意味着可以被回收1、引用计数法算法:给每一个对象添加一个引用计数器,当一个引用指向对象,计数器值加一,当一个引用失效,计数器减一,判断计数器是否为0,确定对象是否可用。问题:很难解决对象间的互相引用。2、引用不可达算法:通过可达性分析判断对象是否存活。通过 GC Roots对象作为起始点,开始向下搜索,当一个对象到GC Roots没有任何引用链相连时,则证明此对象时不可用。java语言在可作为GC Roots的对象包括以下几种:为什么?1、虚拟机栈原创 2020-11-05 00:23:29 · 898 阅读 · 0 评论 -
Android app 内存分配
在Android app的开发过程中,我们经常会遇到内存泄漏的异常,那么搞清楚每个应用程序在Android系统中最多可分配多少内存空间是十分重要的。原创 2017-04-11 11:54:43 · 2280 阅读 · 0 评论 -
Android 查看进程ID(PID)比较进程优先级
1.DOS下面cmd,然后打开adb shell,直接ps命令,显示当前手机所有进程,2.利用(ps|grep 条目名称)命令,过滤自己需要的进程各列参数意义:USER 进程当前用户;PID Process ID,进程ID;PPID Process Parent ID,进程的父进程ID;VSIZE Virtual Size,进程的虚拟内存大小;RSS Resident原创 2017-04-11 10:55:29 · 9913 阅读 · 0 评论 -
Java中String.format格式化字符串用法
java中String类中有两个常用的格式化字符串方法:static Stringformat(Locale l,String format,Object... args) 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。static Stringformat(String format,Object... a原创 2017-03-06 15:18:48 · 8813 阅读 · 0 评论 -
Java虚拟机(JVM)运行时内存区域划分详解
Java虚拟机(JVM)内存区域划分详解最近一直没有怎么更新自己的博客,主要是由于老哥公司最近的一个招标项目忙得焦头烂额,心力憔悴(ಥ_ಥ),趁着项目的空档期来重构一下以前的一篇关于jvm内存区域划分的博客,仔细阅读了一下之前的博客,大量的文字叙述可能对于读者来说,看到的第一眼就不想读下去了,吸收各方面的意见,为了让初学者更好的理解,趁着这段时间还比较自由,就来重构一下这篇博客。一、j...原创 2017-04-14 11:13:49 · 8561 阅读 · 1 评论