
java基础
文章平均质量分 60
lzrrrrr
死宅,dota2爱好者
展开
-
跨代引用问题和并发标记问题
跨代引用问题和并发标记问题跨代引用什么是跨代引用?跨代引用是指在发生YGC的时候,若存在老年代指向新生代的引用,则需要对老年代进行扫描,造成了时间花费过多的问题。JVM是怎么解决这个问题的呢?一个简单的思路就是发生跨代引用的时候将这个引用关系记录下来到一个集合里,JVM就是这么做的,这个集合叫卡表,且不同的回收器有不同的记录方式。对于CMS回收器,卡表会记录一段内存是否被老年代引用了,每个记录的大小为512个字节。而对于G1回收器,因为是分region划分的,所以还需要记录该指针存在于原创 2021-08-27 20:20:33 · 1080 阅读 · 1 评论 -
Java进阶(四)类加载机制
文章目录Java进阶(四)类加载机制类加载机制什么时候加载类加载过程类加载器Java进阶(四)类加载机制类加载机制什么是类加载?在java中,我们在写完代码后,为了做到跨平台,编译器不会直接将代码编译为机器码,而是将java文件转换为字节码文件(.class),然后将字节码文件交予不同平台下的java虚拟机。而这一阶段起作用的就是类加载机制。更为专业的说法:虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型,这就原创 2021-01-05 19:51:33 · 137 阅读 · 2 评论 -
Java 进阶(三)动态代理
文章目录Java 进阶(三)动态代理代理模式定义作用静态代理动态代理Java 进阶(三)动态代理要想学习动态代理,首先我们得了解一下代理模式。代理模式定义代理模式给某一个对象提供代理对象,并由代理对象控制对原对象的引用。举个例子,tx想用游戏赚钱,但是自己又设计不出好的游戏,于是跟拳头公司协商,拿下LoL中国区的代理。这样tx就不用再去关心新英雄新皮肤的设计、游戏更新等等问题,只需要关心英雄和皮肤怎么卖才赚钱就行了(狗头保命)。作用那么为什么要用代理模式呢?还是回到刚刚的栗子,tx拿到代原创 2021-01-05 10:10:11 · 139 阅读 · 0 评论 -
Java进阶(二)并发(上篇)
文章目录Java进阶(二)并发(上篇)并发设计原理基本概念并发中的问题并发设计模式Thread和Runnable管理大量线程:执行器Executor使用返回值控制任务调度共享受限资源synchronized关键字lock对象原子性与易变性Java进阶(二)并发(上篇)并发设计原理基本概念1.并发与并行并发:在单个处理器上采用单核执行多个任务。并行:同一时间在不同计算机、处理器或者处理器核心上同时运行多个任务。2.同步同步:一种协调两个或更多任务以获得预期结果的机制同步机制:信号量、监视器原创 2020-12-30 14:13:23 · 141 阅读 · 0 评论 -
Java进阶(一)注解
Java进阶(一)注解概念与语法注解的概念注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。简单来说,我们首先可以把注解理解为一种注释,即解释我们的方法,或者说为该方法提供一个标签。那为什么要用注解而非注释呢?我的理解是:注释是给开发者理解代码而存在的,但是注解则是为了让我们的代码自己能够理解代码而存在的。在java se5版本中,内置了三种注解:@Override,表示当前的方法定义将覆盖超类中的方法。如果不小心拼写错误或者方法名对原创 2020-12-26 18:13:01 · 145 阅读 · 0 评论 -
后端开发技能学习(五)java垃圾回收机制
文章目录后端开发技能学习(五)java垃圾回收机制垃圾的定义引用计数法可达性分析算法java内存区域垃圾怎么回收标记-清除算法复制算法标记整理算法内存模型与回收策略后端开发技能学习(五)java垃圾回收机制垃圾的定义本章介绍怎样判别一个对象是否是垃圾。引用计数法引用计数法通过在对象头中分配一个空间来保存该对象被引用的次数。若该对象被其它对象引用,则引用计数+1;若删除该对象的引用,则引用计数-1;当引用计数为0时,就会回收该对象。缺点:当有两个对象相互引用时将导致引用计数永不为0。可达性原创 2020-09-14 22:30:58 · 153 阅读 · 0 评论