首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java
奔波儿灞取经
创建于2021-06-30
订阅专栏
深入理解Java
等 12 人订阅
共13篇文章
创建于2021-06-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
深入理解编译期常量
我们知道,我们从写java代码开始,到代码执行的时候,中间一共经历四个阶段: * 1 新建.java文件 并写代码,这称为**编辑期**。 * 2 将.java文件编译为.class文件,这称为**编
switch-case对String的特殊处理
我们在swtich-case的实现原理与优化中说到,switch-case对String的处理是通过String的hashcode来实现的。
swtich-case的实现原理与优化
语言的底层就是算法,所以switch-case的底层也是算法: 数组和二分查找。 switch-case是一个条件语句,也就是说:
字节码指令速记表
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 字节码指令速记 字节码指令表 字节码 助记符 指令含义 0x00 nop 没卵用 0x01 aconst_null 将null推送至栈顶 0
泛型使用到原理
为什么要有泛型 所谓泛型,就是类型参数化,也就是说,数据的类型不是固定的String,Integer,而是作为参数传入的。比如: 我们来看个
同步中的工具类
读写锁 先来看个demo: demo很简单,使用读写锁,其中读锁用来对读操作进行保护,写锁用来对写操作进行保护。 信号量 看下面demo: 代码很简单,就是模拟一个只允许10个游客进入的场景,每次进入
并发-线程池和异步任务
线程池 简单使用 构造函数 核心参数 corePoolSize: 核心线程数 maximumPoolSize: 最大线程数 keepAliveTime: 空闲线程存活时间,0表示永久 TimeUnit
并发容器
写时复制的List和Set 1 CopyOnWriteArrayList 支持两个原子方法: CopyOnWriteArrayList的实现原理很简单,内部使用ReentrantLock维护一个数组,
线程的基础知识
1 线程的基本概念 创建线程的两个方法 线程的基本属性和方法: sleep()方法 yield()方法 join()方法 其他的过时方法(不建议使用): public final void suspe
反射的原理到使用
众所周知,java有三大特性: 封装继承和多态,封装是为了细化权限,继承是为了多态,多态是为了灵活复用。我们又知道,继承破坏了封装,但是,它破坏的不彻底,有没有破坏的更彻底的呢?有,反射! 反射
Java类加载基础
1 java类加载时机 引起类加载的场景 1 使用new创建对象时 2 读取或设置类的静态变量时(编译期常量除外) 3 使用java.lang.reflect包中方法对类进行反射调用时 4 初始化一个
JVM垃圾回收机制
回收时机 垃圾回收时机,站在开发者的角度,有两个点: 1 主动回收,比如手动调用了System.gc(); 2 被动回收,比如LargeObj large = new LargeObj();此时发现剩
DCL单例要不要加volatile
volatile保证可见性的原理: 凡是被volatile修饰的变量,等价于告诉JVM这个变量是不稳定的,每次使用的时候,都会从主内存读取到工作内存;每次修改的时候,都会刷新到主内存,换句话说,被volatile修饰的变量的修改,是实时反馈到主内存的。 volatile保证有序…