java底层
文章平均质量分 82
吃不饱饭的建哥哥
这个作者很懒,什么都没留下…
展开
-
4_2垃圾收集算法
垃圾收集算法GC算法网上已经有一大堆了,相信很多人已经看了至少2~3遍,在这里简单的过一遍。1.GC算法有哪些?各有什么优缺点?1.1 标记-清除 算法算法分为两个阶段,先标记,后清除。先将不可回收对象进行标记,剩下的那些需要回收的统一清除。算法简单,缺点是会产生内存碎片。1.2 复制算法将内存分为两块,每次使用其中的一块,当内存不足时,将存活的对象复制到另一块内存中去,剩下的直接清除。回收后内存时连续的,缺点是会浪费一些内存,因为每次只使用其中的一块。1.3 标记-整理 算法类似标原创 2022-04-27 14:32:16 · 382 阅读 · 0 评论 -
4_1 JVM内存结构
借用JavaGuide哥的两张图JDK 1.8 之前:JDK 1.81. JVM 内存结构描述1.1程序计数器程序计数器中只存储当前线程执行程序的行号,一个类指针的数据结构。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。我们熟悉的分支操作、循环操作、跳转、异常处理和线程恢复等基础模型都需要依赖这个计数器来完成。JVM的多线程是通过CPU时间片轮转来实现的,某个线程在执行的过程中可能会因为时间片耗尽而挂起。当它再次获取时间片时,需要从挂起的地方继续执行。在J原创 2022-04-27 13:22:50 · 125 阅读 · 0 评论 -
3_深入分析Synchronized原理
记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。不过,随着Javs SE 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了。下面转载 2022-04-26 15:56:10 · 157 阅读 · 0 评论 -
2_java 8 新特性
当面试官让说几个java8新特性的时候了解的可能还能说两句,不了解的只会一脸懵逼,主要原因在于不常使用所以很难接触到近而了解它。1.接口默认方法通过default 关键字可以为接口中的方法提供默认实现(通常情况接口方法中只能有接口,不能实现):public interface Java8NewFeature { default int getNewNum(int num) { return 2 * num; }}public static void main(St原创 2022-04-25 16:58:53 · 125 阅读 · 0 评论 -
1_JAVA类加载过程
1.类加载过程大致过程如图所示类的加载过程主要分为:加载、连接、初始化,其中连接又分为:验证、准备、解析1.1 加载通过全类名获取定义此类的二进制字节流将字节流所代表的静态存储结构转换为方法区的运行时数据结构在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口加载.class文件的方式:从本地系统中直接加载、通过网络下载.class文件、从zip,jar等归档文件中加载.class文件、从专有数据库中提取.class文件、将Java源文件动态编译为.class文件等。原创 2022-04-25 16:00:37 · 446 阅读 · 0 评论