Java Hotspot G1 GC的一些关键技术

前言 G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。在官网中,是这样描述G1的: > The…

hello hello 发布于 2023-08-03

Java内存访问重排序的研究

什么是重排序 请先看这样一段代码 1 : public class PossibleReordering { static int x = 0, y = 0; static int a = 0, b = 0; public static void main(String[] args) throws InterruptedException {…

hello hello 发布于 2023-08-02

不可不说的Java“锁”事

前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。…

hello hello 发布于 2023-08-02

Thread.sleep(0)的意义& 多线程详解

我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题: 假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?…

hello hello 发布于 2023-08-01

Java动态追踪技术探究

引子 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: “Debug一下吧。” “线上机器,没开Debug端口。” “看日志,看看请求值和返回值分别是什么?” “那段代码没打印日志。” “改代码,加日志,重新发布一次。” “怀疑是线程池的问题,重启会破坏现场。”…

hello hello 发布于 2023-08-01
hello hello 发布于 2023-08-01

JAVA 学习笔记——变量

1.成员变量,局部变量 局部变量定义在: 1.方法内 2.代码块内 3.方法的参数(形参) 局部变量如果定义在代码块内那么就只在代码块内起作用,方法内也是同理。超出代码块会报错 if (5 > 3) { int s = 3; // 声明一个 int 类型的局部变量 System.out.println("s=" + s);…

hello hello 发布于 2023-07-31

JAVA_封装类

java的封装类也叫包装类,可以将基本数据类型转化为对象进行处理,并连接相关的方法。 为什么要包装类? Java的基本类型是不具备对象的性质,为了让基本类型也有对象的特征。其实就相当于把基本数据类型包装了起来,丰富了基本类型操作。 区别: 声明方式不同,包装类需要new关键字在堆内存中分配空间…

hello hello 发布于 2023-07-31

ThreadLocal夺命11连问

前言 1. 为什么要用ThreadLocal? 并发编程是一项非常重要的技术,它让我们的程序变得更加高效。 但在并发的场景中,如果有多个线程同时修改公共变量,可能会出现线程安全问题,即该变量最终结果可能出现异常。 为了解决线程安全问题, JDK 出现了很多技术手段,比如:使用 synchronized 或 Lock ,给访问公共资源的代码上锁,保证了代码的…

hello hello 发布于 2023-07-28

精Java新版本特性专辑

相信大部分Java开发者最为熟悉的都是Java 8。但是时代的洪流无法阻挡,我们必须跟上技术发展的脚步。所以,本页汇集了Youtube上关于Java各版本的新特性解读,以方便大家快速跟上最新的Java技术。 如果您观看英文视频较为吃力,推荐使用Chrome插件Youtube中文配音把视频变为中文发音, 点击这里可以直接安装 (opens new…

hello hello 发布于 2023-07-23
上一页 下一页