首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
编程语言
程序员小迷
创建于2024-04-16
订阅专栏
致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享。
暂无订阅
共43篇文章
创建于2024-04-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Java的可见性和有序性你真的懂吗
一、可见性(Visibility) 1.指的是:一个线程对变量的修改可被其他线程看见。 2.Java提供了volatile、synchronized、final、Lock等来保证可见性。 3.vola
CMS和G1谁是赢家
JVM存在有CMS(Concurrent Mark Sweep)垃圾收集器和G1(Garbage First)垃圾收集器,它们的优缺点对比如下: 一、CMS: 1.特点 1)以获取最短回收停顿时间为目
永久代你不知道的东西
一、在Java 7及之前的版本中,永久代(Permanent Generation)用于存储类的元数据信息、常量池等。 且当类不再被引用时,其对应的类加载器加载的类信息可以被卸载并回收。 二、永久代垃
Java对象头你不知道的地方
在Java中,每个对象都拥有一个对象头,这些对象头包含了关于对象的一些元数据信息。对象头(Header)包含2部分(若为数组,则包含3部分): 一、第一部分为Mark Word,用于存储对象自身的运行
内存屏障和同步屏障傻傻分不清楚
一、Java 中如何保证底层操作的有序性和可见性? 1.解决方案:内存屏障。 2.有序性:内存屏障是可以插入到两个CPU指令之间的一种指令,用来禁止处理器指令发生重排序,从而保障 有序性(确保指令的执
happens-before是何方神圣
一、概述 1.Java内存模型(Java Memory Model或JMM)里定义的happens-before 规则指的是:用于描述多线程中变量读写等不同操作之间的内存可见性,若操作 A happe
HashMap 和 Hashtable区别的底层原理
一、容器键值对: 1.HashMap 的 key 和 value 都允许为 null , HashMap 在 key 为 null 的时候,值必须为null。 2.Hashtable 的 key 和
堆内存分配策略傻傻不清楚
一、概述 1.JVM堆内存分为年轻代、老年代和持久代(JDK7及之前版本)或元空间(JDK8及之后版本)。 年轻代用于存放新创建的对象,老年代用于存放存活时间较长的对象。 持久代或元空间主要用于存放类
垃圾回收算法你不知道的奥秘
一、对象回收判定方法 1.引用计数法(PHP语言在用):快,方便,实现简单,缺点:对象相互引用时,很难判断对象是否该回收。 2.可达性分析(Java语言在用) 通过一系列的称为"GC Roots"的对
逃逸分析、栈上分配、标量替换大展神威
一、逃逸分析 1.逃逸分析的目的是判断对象的作用域是否会逃逸出方法体(方法逃逸)或者外部线程(线程逃逸)。 2.注意,任何可以在多个线程之间共享的对象,一定都属于逃逸对象。 3.若重写了一个类的fin
虚拟机中new指令的秘密
1.检查加载。 若该类之前还未被加载,则进行类加载过程。 类的加载、链接(验证类文件格式、准备类的静态变量、解析符号引用)和初始化(执行类的静态初始化代码和静态字段赋值)是在首次使用该类时(如:创建类
指针碰撞、空闲列表和内存分配的并发安全问题的底层秘密
一、指针碰撞 以虚拟机为新生代对象分配内存为例。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。 如果Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边
JVM内存参数调优大展神威
一、栈的大小缺省为1M,可用参数 –Xss调整大小,例如-Xss256k 二、虚拟机加载的类信息,方法信息,常量(例如"abc","123"等),静态变量(static变量)等数据的存储配置: 1.j
线程的禁忌你踩坑了吗
一、暂停、恢复和停止操作对应在线程Thread的API是suspend()、resume()和stop()。 但是这些API不建议使用,因为这些方法会带来副作用。比如:suspend()方法在调用后,
bash脚本大展神威
一、需求 有时有这样的需求:在Linux中,一个文件中要删除含有某字符串的一行及前后几行,这时可以使用bash脚本进行解决。 二、代码 微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心
你真的懂CPU多核多线程吗
一.多核心: 单芯片多处理器( Chip Multiprocessors,简称CMP)是由美国斯坦福大学提出的,其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行
动态代理有哪些神仙
动态代理是一种以动态方式创建代理对象的设计模式,它可以在运行时根据需要实现代理对象的创建、调用和销毁,在使用时再创建代理类和实例。 动态代理分为基于接口的动态代理(被代理的对象必须实现一个或多个接口)
Java泛型你所不知道的点
1.泛型方法可以在任何地方和任何场景中使用,包括普通类和泛型类。 泛型类型参数可以是任何引用类型,包括数组和其他泛型类型。 泛型的类型参数不支持基本类型(需要用包装类)。 当显式提供类型参数时,Jav
git撤销更改的门道
1.git checkout -- 文件 撤销对工作区某文件的修改。 git checkout . 撤销本地所有修改的、没有提交的文件的修改,都返回到原来的状态。 2.git reset --ha
synchronized和ReentrantLock傻傻分不清楚
synchronized和ReentrantLock都是用于线程间同步的机制,都是可重入锁(同一个线程可以多次获取同一个锁),它们的异同点如下: 一、应用场景 1.synchronized可应用于实例
下一页