03 2022 档案

摘要:一、常见垃圾回收器组合参数设定 1、-XX: UseConcMarkSweepGC = ParNew + CMS + Serial Old 2、-XX: Use[arallelGC = Parallel Scavenge + Parallel Old(1.8默认)【PS + SerialOld】 3 阅读全文
posted @ 2022-03-27 14:10 showMeTheCodes 阅读(72) 评论(0) 推荐(0) 编辑
摘要:一、Runtime Data Area 1、包括 Program Counter:PC,存放指令的位置。 取PC中的位置,找到对应位置的指令-->执行该指令-->指令++ Direct Memory:JVM可以直接访问的内核空间的内存。NIO,提高效率,直线零拷贝 method area:被所有线程 阅读全文
posted @ 2022-03-26 09:49 showMeTheCodes 阅读(21) 评论(0) 推荐(0) 编辑
摘要:一、硬件层数据一致性 L0、L1、L2三层在一个CPU中,其余为共享空间 若x、y在主存中,主存将x、y加载到L3中。每个cpu都会缓存L3中数据,若此时cpu1将x变为1,cpu2将x变为2。则会造成数据不一致情况 解决办法:加总线锁,当cpu1操作x时,cpu2不能操作L3。以此来保证数据一致性 阅读全文
posted @ 2022-03-23 19:40 showMeTheCodes 阅读(33) 评论(0) 推荐(0) 编辑
摘要:一、JVM基础 1、JVM是一种半解释半编译的语言 编译:java文件-->javac编译-->class文件 解释:JVM去解释为二进制文件,交给操作系统去执行 2、JVM、JRE、JDK之间的关系 JRE=JVM+一些java的类库(String.class、Object.class等) JDK 阅读全文
posted @ 2022-03-20 10:19 showMeTheCodes 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一、用户态和内核态 内核态:能访问所有指令 用户态:只能访问用户允许访问的指令,JVM工作在用户态 synchronized重量级锁:JVM要向某个资源加锁,要通过用户态向内核态申请资源 二、对象的内存布局 8字节的markword,记录了锁信息,gc信息,hashcode 4字节的类型指针,通过指 阅读全文
posted @ 2022-03-07 21:58 showMeTheCodes 阅读(112) 评论(0) 推荐(0) 编辑
摘要:并发编程三大特性:可见性、有序性、原子性 一、可见性 java内存模型规定:所有变量都存在主内存中,每个线程有自己的工作内存。线程对变量的修改必须在自己的工作内存中修改,不能在主内存中修改 1、volatile保证可见性 public class MyVolatile { private stati 阅读全文
posted @ 2022-03-07 17:54 showMeTheCodes 阅读(39) 评论(0) 推荐(0) 编辑
摘要:一、请解释一下对象的创建过程 public class T { int m = 8; } T t = new T(); 1、给m申请内存,将m进行半初始化,初始化0 2、调用构造方法,给m赋值8 3、将t对象的引用指向m 二、DCL与volatile问题 1、volatile:保证线程可见性,防止指 阅读全文
posted @ 2022-03-07 11:24 showMeTheCodes 阅读(294) 评论(0) 推荐(0) 编辑
摘要:一、Java的6种线程状态 new:线程创建,还未启动 runnable:可运行状态,由线程调度器安排执行 ready:就绪状态 running:执行 waiting:等待被唤醒,如自旋 timed waiting:隔一段时间后自动唤醒 blocked:被阻塞,只有synchronized才会到该状 阅读全文
posted @ 2022-03-06 16:15 showMeTheCodes 阅读(184) 评论(0) 推荐(0) 编辑
摘要:1、继承Thread,重写run方法,调用start启动 2、实现Runnable接口,重写run方法,调用start启动。 3、lambda表达式 public class MyThread { static class MyExtend extends Thread{ @Override pub 阅读全文
posted @ 2022-03-05 11:02 showMeTheCodes 阅读(268) 评论(0) 推荐(0) 编辑
摘要:1、程序:可执行文件,exe 2、进程:操作系统进行资源分配的基本单位,双击exe文件变成一个进程,操作系统将文件放到内存中,cpu来执行 3、线程:进程内部调度执行的基本单位,多个线程共享进程。cpu找到进程的main方法,这就是一个主线程 4、线程是进程内部不同任务的切换 5、线程切换:t1线程 阅读全文
posted @ 2022-03-04 21:59 showMeTheCodes 阅读(30) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示