一、最基本的HashMap 和 ConcurrentHashMap 1、HashMap的结构和底层原理:由数组和链表组成,数组里面每个地方都存了Key-Value这样的实例,在Java7叫Entry在Java8中叫Node 在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表 ...
分类:
编程语言 时间:
2020-03-06 12:40:53
阅读次数:
84
Java 如何开发一个自定义线程池 每一个线程的启动和结束都是比较消耗时间和占用资源的。 如果在系统中用到了很多的线程,大量的启动和结束动作会导致系统的性能变卡,响应变慢。 为了解决这个问题,引入线程池这种设计思想。 线程池的模式很像 生产者消费者模式 ,消费的对象是一个一个的能够运行的 任务 步骤 ...
分类:
编程语言 时间:
2020-03-02 10:52:33
阅读次数:
58
Java 线程之间的交互 wait和notify 线程之间有 交互通知 的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血 步骤 1 : 不好的解决方式 故意设计减血线程频率更高,盖伦的血量迟早 ...
分类:
编程语言 时间:
2020-03-01 10:59:04
阅读次数:
69
Java 演示多线程死锁 当业务比较复杂,多线程应用里有可能会发生 死锁 步骤 1 : 演示死锁 1. 线程1 首先占有对象1,接着试图占有对象2 2. 线程2 首先占有对象2,接着试图占有对象1 3. 线程1 等待线程2释放对象2 4. 与此同时,线程2等待线程1释放对象1 这样就会。。。一直等待 ...
分类:
编程语言 时间:
2020-02-29 18:39:37
阅读次数:
64
java基础 1. 注释 1. 单行注释 2. 多行注释 3. 文档注释 2.标识符与关键字 关键字 标识符:JAVA所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符 以 字母A z,$,_开始 ,还有数字,不能使用关键字当变量名,而且大小写敏感。 3. 数据类型 强类型语言 :所有变 ...
分类:
编程语言 时间:
2020-02-29 00:50:49
阅读次数:
72
事务 事务(Transaction),一般是指要做的或所做的事情,这些事情必须全部都完成,或者造成的影响和改变全部都撤销。 四大特性 Java中,事务有四个特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 ...
分类:
编程语言 时间:
2020-02-29 00:36:54
阅读次数:
64
Java常见的线程安全相关的面试题 步骤 1 : HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式 区别1: HashMap可以存放 null Hashtable不能存放null 区别2: HashMap不是线程安全的类 Has ...
分类:
编程语言 时间:
2020-02-28 11:55:20
阅读次数:
56
设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ...
分类:
编程语言 时间:
2020-02-28 01:10:16
阅读次数:
75