java核心
文章平均质量分 96
a18792721831
这个作者很懒,什么都没留下…
展开
-
从0开始学java IO
从0开始学java IOIO 发展BIO设计思想核心类SocketIO 流BIO实例 -- 多人聊天室客户端服务端双阻塞客户端阻塞服务端并发客户端阻塞服务端复用线程并发客户端并发服务端复用线程并发NIOBIO VS NIO设计思想核心类BufferChannelSelectorNIO 实例 -- 本地文件拷贝 -- 编程步骤NIO 改写 BIO 项目 -- 多人聊天室改写前 VS 改写后AIOBIO VS NIO VS AIO设计思想核心类AIO 实例 -- 回音壁 -- 编程步骤AIO 改写 NIO 项目原创 2021-03-20 15:19:47 · 250 阅读 · 0 评论 -
java--序列化
java--序列化序列化介绍为什么需要序列化序列化的范围序列化扩展应用如何实现序列化创建需要序列化的bean序列化反序列化序列化相关的类自定义序列化策略序列化idtransient 阻止序列化序列化介绍为什么需要序列化Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM 的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Jav原创 2020-08-18 19:57:40 · 137 阅读 · 0 评论 -
java--最全注解解析
java--最全注解解析注解标准注解元注解Target 范围Retention 声明周期Documented 说明文档Inherited 传播注解元素注解元素的值注解元素的默认名称注解不支持继承注解解析器实例--定义注解注解类构造方法属性方法参数变量实例--解析注解注解类构造方法属性方法参数变量github地址:https://github.com/a18792721831/studyjdk.gitmodel:先来一张图总览:注解Annotation(注解)是 Java 提供的一种对元程序中原创 2020-08-16 17:38:26 · 223 阅读 · 0 评论 -
Java基础--ThreadPoolExecutor--线程池和锁
Java基础--ThreadPoolExecutor--线程池和锁原创 2020-07-11 17:17:23 · 941 阅读 · 0 评论 -
Java基础--多线程-ConcurrentHashMap(JDK1.8)--转载
Java基础--多线程-ConcurrentHashMap前言ConcurrentHashMap(JDK1.7)putgetsizeConcurrentHashMap(JDK1.8)前言HashMap非线程安全的,HashTable是线程安全的,所有涉及到多线程操作的都加上了synchronized关键字来锁住整个table,这就意味着所有的线程都在竞争一把锁,在多线程的环境下,它是安全的,但是无疑效率低下的。ConcurrentHashMap(JDK1.7)在JDK1.7中,ConcurrentH转载 2020-07-10 19:05:54 · 238 阅读 · 0 评论 -
Java基础--ConcurrentHashMap--线程安全的哈希Map--转载
Java基础--ConcurrentHashMap--线程安全的哈希Map转载 2020-07-09 20:10:12 · 165 阅读 · 0 评论 -
Java基础--StampedLock--强化读写锁
Java基础--StampedLock--强化读写锁原创 2020-07-08 19:59:39 · 644 阅读 · 1 评论 -
Java基础--Semaphore--计数信号量锁
Java基础--Semaphore--计数信号量锁原创 2020-07-04 13:29:16 · 445 阅读 · 0 评论 -
Java基础--CyclicBarrier--屏障锁(循环计数器锁)
@toc原创 2020-07-02 21:52:16 · 514 阅读 · 0 评论 -
Java基础--CountDownLatch--计数器锁(门闩锁)
@toc1. CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBarrier。1.1 CountDownLatch 的UML图1.2 C原创 2020-07-01 20:02:26 · 999 阅读 · 0 评论 -
Java基础--ReentrantReadWriterLock--重入读写锁
Java基础--ReentrantReadWriterLock--重入读写锁1. ReentrantReadWriterLock的整体结构1.1 ReentrantReadWriterLock的UML图1.2 ReentrantReadWriterLock的属性、方法2. ReentrantReadWriterLock 实现ReadWriterLock接口2.1 readLock2.2 writerLock3. ReentrantReadWriterLock 内部类Sync继承了AQS1. Reentra原创 2020-07-01 14:26:09 · 371 阅读 · 1 评论 -
Java基础--ReentrantLock--重入锁
Java基础--ReentrantLock--重入锁1. ReentrantLock的整体结构1.1 ReentrantLock的UML图1.2 ReentrantLock的属性、方法2. ReentrantLock 实现Lock接口2.1 tryLock2.2 tryLock(long,TimeUnit)2.3 lock2.4 lockInterruptibly2.5 unlock2.6 newCondition3. ReentrantLock 内部Sync实现了AQS3.1 lock3.2 nonfai原创 2020-06-29 19:01:22 · 320 阅读 · 0 评论 -
Java基础--AQS的Condition源码解析
5.2 ConditionObject首先通过2.4.2.2接口方法说明,可以知道condition有两个状态,分别是等待通知状态,等待锁状态。通过调用await类的方法,将线程转换为等待通知状态。通过调用signal类的方法,将线程从等待通知状态转换为等待锁状态。ConditionObject的属性有两类:1.双向链表的头,双向链表的尾2.状态属性:只有1,-1取值。既然ConditionObject实现了Condition接口,那么ConditionObject里面的方法实际上都是为了实原创 2020-06-27 18:26:00 · 517 阅读 · 4 评论 -
Java基础--AQS原理
Java基础--AQS原理1. Lock 谱系图2. Lock 接口4. AbstractOwnableSynchronizer5. AbstractQueuedSynchronizer5.1 AQS的API5.2 自定义非重入独占锁5.2 自定义非重入独占锁的缺陷5.3 自定义重入独占锁5.4 自定义计数器锁5.1 Node5.2 ConditionObject3. Condition 接口6. synchronized 和 Lock 区别1. Lock 谱系图jdk对锁的实现的类主要是2个:Ree原创 2020-06-21 19:37:44 · 393 阅读 · 1 评论 -
Java基础--synchronized原理详解
Java基础--锁1. 多线程特性1.1 原子性(Atomicity)1.2 可见性(Visibility)1.3 有序性(Ordering)1.4 Happen-Before原则2. 锁定义3. 锁类型3.1 乐观锁3.2 悲观锁3.3 自旋锁1. 多线程特性1.1 原子性(Atomicity)原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一单开始,就不会被其他线程干扰。1.2 可见性(Visibility)可见性是指当一个线程修改了某一个共享变量的值,其他线程是否能够原创 2020-06-13 13:19:39 · 393 阅读 · 0 评论 -
Java基础--多线程详解
1.线程的概念;2.线程如何使用;3.jdk支持的基本线程池;4.线程生命周期;5.线程启动与终止;6.后台线程;7.线程继承其他类;原创 2020-06-06 14:25:19 · 3934 阅读 · 0 评论 -
Java基础--HashMap源码
HashMap几乎是我们开发中用到的最多的数据结构之一了,但是,HashMap的源码实现你读过吗?原创 2020-05-23 23:40:57 · 448 阅读 · 0 评论 -
Java基础--HashTable源码
Java基础--HashTable源码1.Map接口2.Dictionary3.HashTable3.1 全局属性3.2 辅助类3.2.1 Entry3.2.2 EnumeratorHashTable的类图可以看到HashTable继承于Dictionary实现了Map、Cloneable、Serializable接口。其中Cloneable和Serializable是标记性接口。标记性接口,就是说接口里面没有定义任何的方法,一个类实现接口,也不需要实现任何的方法。这些接口存在意义只是标识,这些类可原创 2020-05-13 21:10:03 · 411 阅读 · 0 评论 -
Java基础--理解hashCode
用了多年的HashMap,时不时使用HashSet进行去重。那么什么是HashCode,重复的标准是什么?原创 2020-05-08 19:57:56 · 1304 阅读 · 0 评论 -
Java基础--为什么ArrayList,Vector等都不支持循环中remove?
为什么ArrayList,Vector等都不支持循环中remove1 Vector 直接删除2 Vector 遍历元素2.1 for循环遍历2.2 迭代器循环2.3 任意方向遍历2.4 Vector的foreach3. Vector迭代器删除4. Vector不使用迭代器删除元素5. Vector流删除元素JDK中有很多的数据结构,可以让我们操作数据。操作数据一般都是增删改查,排序等操作。其...原创 2020-04-19 20:52:17 · 2240 阅读 · 0 评论 -
Java基础--Vector、ArrayList、LinkedList有何区别
Vector、ArrayList、LinkedList有何区别1. 定义2.Vector2.1 使用new创建,默认大小是102.2 扩容2.3 删除3. LinkedList3.1 初始化3.2 add方法3.3 扩容3.4 LinkedList查找元素:3.5 LinkedList的pop&push4. 线程安全5. 排序6. 静态工厂方法1. 定义Vector 是 Java 早期...原创 2020-04-18 20:02:22 · 522 阅读 · 0 评论 -
Java基础--int和Integer有什么区别
int和Integer有什么区别1.区别2.自动装箱、拆箱3.自动装箱、拆箱源码4.原始类型线程安全5. 原始数据类型和引用类型局限性1.区别int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte 、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例...原创 2020-04-18 17:07:11 · 923 阅读 · 0 评论 -
Java基础--动态代理是基于什么原理?
动态代理是基于什么原理?1. 动态代理2.反射机制及其演进3. 动态代理1. 动态代理反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力。通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义。动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,...原创 2020-04-18 15:29:55 · 1099 阅读 · 0 评论 -
Java基础--理解 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?
理解 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?1.定义2. 字符串设计和实现考量3.字符串缓存4.String 自身的演化5.思考1.定义String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable 类,被声明成为 final class,所有属性也都是 final 的。也由...原创 2020-04-18 14:17:05 · 605 阅读 · 0 评论 -
Java基础--强引用、软引用、弱引用、幻象引用有什么区别?
在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。原创 2020-04-17 20:40:17 · 364 阅读 · 0 评论 -
Java基础--final、finally、 finalize有什么不同?
final、finally、 finalize有什么不同?1. 语法和使用实践角度的不同2.final3.finally4.finalize5. final 不是 immutable6. finalize 真的那么不堪?7.有什么机制可以替换 finalize 吗?1. 语法和使用实践角度的不同final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以...原创 2020-04-17 19:57:01 · 221 阅读 · 0 评论 -
Java基础--Exception和Error有什么区别?
Exception和Error有什么区别?1.异常处理机制2.Exception和Error3. 编程时的异常处理4.异常处理坑5.自定义异常6. 异常处理机制对性能的影响1.异常处理机制Java 语言在设计之初就提供了相对完善的异常处理机制,这也是 Java 得以大行其道的原因之一,因为这种机制大大降低了编写和维护可靠程序的门槛。如今,异常处理机制已经成为现代编程语言的标配。2.Excep...原创 2020-04-17 19:42:17 · 553 阅读 · 0 评论 -
Java基础--谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?
java基础-谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗?1.典型回答2.java平台组成1.典型回答Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection),Java 通过垃圾收集器...原创 2020-04-17 18:44:48 · 485 阅读 · 0 评论 -
jdk源码学习计划
jdk源码学习计划1.lang2.util3.io4.nio5.net6.beans7.math8.time9.rmi10.sql接下来一段时间,将会过一遍jdk源码。很简单就能够知道,jdk的结构。对比jdk的结构,暂时分为9部分,其中界面和web程序不进行研究。安全也不进行研究,暂时接触不到。自然语言相关的包也不进行研究。每次学习一点,回来增加一点。1.lang说实话,jav...原创 2020-02-03 17:09:36 · 360 阅读 · 0 评论