1. 现状 时至今日,JDK17已经正式发布,Java也没有在语言层面对协程提供原生支持。 一定要在Java中使用协程的话,可以使用诸如quasar, kilim, coroutines 第三方库感受一下,它们的原理基本都是字节码增强 +...

反射可以在程序运行过程中动态的构造类、获取类的全部信息、调用类型方法。但是,为什么我们要这么做呢?需要构造类,new就好了,需要访问类成员变量、调用方法,直接访问、调用就好了,为什么要通过一大堆反射代码去实现呢? 通常,class在编译期间...

前段时间在做一个实时人脸抓拍项目的时候,遇到了一个堆外内存OOM的问题,现在把思路好好整理一下。 项目中用opencv通过rtsp协议,实时的读取通用网络摄像头的视频帧。因为项目中多处用到了org.opencv.core.Mat这个对象,...

绑定核心之后不存在线程的上下文切换,就可以更好的利用CPU缓存。 不知道你是啥感觉,但是我第一次看到这个问题的时候,我是懵逼的。 而且它还是一个面试题。 我懵逼倒不是因为我不知道答案,而是恰好我之前在非常机缘巧合的情况下知道了答案。 我...

1. 下载JDK 进入Oracle 官方网站下载合适的 JDK 版本,准备安装。 2. 创建目录 执行如下命令,在 /usr/ 目录下创建 java 目录。 mkdir /usr/java cd /usr/java...

JIT (just-in-time compilation) 是指程序在运行过程中对热点代码进行编译的过程,编译后的机器码存入CodeCache,下次再遇到这段代码,就会从CodeCache中读取机器码,直接执行,以此来提升程序运行的性能。...

《深入理解Java虚拟机》中将OOM划分为: Java堆溢出、虚拟机栈和本地方法栈溢出、方法区和运行时常量池溢出、本机直接内存溢出 1. Java堆溢出 /** * JDK1.6/JDK1.8 * * Java堆内存溢出异常测试 * *...

ThreadLocal 是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的,这样就可以避免资源竞争带来的多线程的问题,这种解决多线程的安全问题和lock(这里的lock 指通过synchronized 或者Lock...