自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Java线程池

一 ThreadPoolExecutorThreadPoolExecutor构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,

2022-04-29 16:40:12 763

原创 cas锁(Compare And Swap)

一 CAS介绍CAS是Compare And Swap(比较并交换),是一条cpu并发原语,判断内存中某个值是否为预期值,如果是则更改为最新值。1.volatile可以保证可见性2.CAS是原语,不会被打断,且用volatile保证可见性3.AtomicInterger的方法是调用unsafe的方法,unsage底层运用CAS,所以AtomicInterger既保证可见性,也保证原子性。推荐文章:cas完全替代锁(cas锁底层原理)...

2022-04-29 16:09:31 648

原创 序列化Serializable和Parcelable的区别

一 序列化的目的永久的保存对象数据(如文件、磁盘、数据库等)将对象数据进行网络传输进程之间进行传递二 Parcelable在内存的使用方面,Parcelable性能强于SerializableParcelable以Ibinder作为信息载体,在内存方面开销小读写数据,Parcelable直接从内存中读写三 Serializable使用反射机制,会产生大量临时变量,从而导致GC的频繁调用读写通过IO流的形式将数据写入在硬盘上提示:Parcelable无法很好的将数据持久化

2022-04-29 16:08:43 279

原创 ThreadLocal

一 ThreadLocal介绍ThreadLocal是一个线程的内部存储类,可以在每个线程的内部存储数据。同一个ThreadLocal对象,在不同的线程中可以保存不同的对象。二 实现原理:ThreadLocal的set()方法源码:public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map != null)

2022-04-29 15:20:29 131

原创 synchronized

一 synchronized优化:在Jdk1.6之前synchronized为重量级锁,jdk1.6中对synchronized进行了性能优化,采用偏向锁,轻量级锁,重量级锁自动转化(单项转化)的形式来实现。1.偏向锁偏向锁是指一段同步代码一直被同一个线程所访问,那么该线程会自动获取锁,降低获取锁的代价。2.轻量级锁当锁是偏向锁时,被其他线程锁访问,偏向锁就会升级为轻量级锁,其他线程会通过自旋的形式尝试获取锁,不会阻塞,从而提高性能。3.重量级锁学习内容:提示:这里可以添加要学的内容例如

2022-04-29 11:44:49 161

原创 Java中锁的类型和死锁

一 主流锁的分类:1.线程要不要锁住同步资源 1.锁住->悲观锁,如synchronized,ReentrantLock等 2.不锁住->乐观锁 如CAS2.锁住同步资源失败,线程要不要阻塞1.阻塞2.不阻塞:自旋锁(自旋次数默认10次)和适应性自选锁(自旋的时间次数不固定)3.多线程竞争同步资源的流程细节1.不锁住资源,多个线程中只有一个能修改资源成功,其他线程会重试 ——无锁2.同一个线程执行同步资源时,自动获取资源——偏向锁3.多个线程竞争同步资源时,没有获取资源的

2022-04-28 21:49:55 547

原创 Java中wait和sleep的区别

1 wait1.wait是Object类的方法2.释放锁3.wait,notify,notifAll只能在同步方法中火同步控制快中使用2 sleep1.sleep是Thead的方法,在那个线程调用,那个线程就会进入sleep状态2.没有释放锁3.sleep可以在任何地方使用...

2022-04-28 21:11:40 628

原创 Java基础-接口和抽象类的区别

1 接口:1.一个类可以实现多个接口2.所有的方法都是抽象的(jdk8开始新增default方法)3.不能声明和使用字段,可以创建静态的final常量4.不能定义构造函数5.接口省略public,包外的类不能访问接口2 抽象类1.一个类只能继承一个抽象类2.可以包含具体方法3.可以声明和使用字段4.可以定义构造函数...

2022-04-28 21:00:15 481

原创 Java基础- HashMap

Java HashMap

2022-04-28 20:50:04 716

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除