
Java
文章平均质量分 90
T Head
狂奔的蜗牛
展开
-
Java多线程并发基础(JUC)
通俗易懂JUC学习笔记JUC什么是JUC线程和进程Lock锁生产者和消费者问题8锁现象一、一个对象,两个同步方法二、一个对象,两个同步方法,一个存在延迟三、一个对象,一个同步方法,一个普通方法四、两个对象,两个同步方法五、一个对象,两个静态同步方法六、两个对象,两个静态同步方法七、一个对象,一个静态同步方法,一个普通同步方法八、两个对象,一个静态同步方法,一个普通同步方法集合类不安全1、List2、Set3、MapCallable常用的辅助类CountDownLatchCyclicBarrierSemaph原创 2020-09-24 12:51:44 · 585 阅读 · 0 评论 -
Java注解与反射
通俗易懂Java注解与反射教程Java注解与反射什么是注解内置注解元注解自定义注解反射机制Java反射机制提供的功能Java反射优点和缺点反射相关的主要APIClass类获取Class类的实例哪些类型可以有Class对象类的加载与ClassLoader的理解什么时候会发生类初始化类加载器的作用获取运行时类的完整结构有了Class对象,能做什么反射操作泛型Java注解与反射什么是注解Annotation是从JDK5.0开始引入的新技术Annotation的作用:不是程序本身,可以对程序作出解释。原创 2020-09-27 16:15:58 · 193 阅读 · 0 评论 -
HashMap底层原理(含面试题)
一文搞懂HashMap底层原理(含面试题)HashMap1. HashMap结构图2. HashMap中定义的一些成员变量3. 继承关系4. 简单总结5. 深入了解源码5.1 构造方法5.2 数组的索引bucket5.3 HashMap.put(k,v)5.4 resize()数组扩容5.4 HashMap.get(k)6. 总结(面试相关)6.1 能否让HashMap同步6.2 HashMap的工作原理6.3 HashMap的put()方法和get()方法的工作原理6.4 当两个对象的hashcode相同原创 2020-09-24 10:54:17 · 1223 阅读 · 0 评论 -
Zookeeper面试题
Zookeeper超详细面试题1. ZooKeeper是什么?Zookeeper是一个分布式的,开放源代码的分布式应用程序协调服务,是Google的Chubby的一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态。根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高校、功能稳定的系统提供给用户。客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的Zookeeper机器来处理。对于写请求,这些请求会同时发给其他zookeeper原创 2020-11-25 14:14:40 · 1547 阅读 · 0 评论 -
SpringCloud 相关概念与组件
SpringCloud 相关概念与组件原创 2020-09-27 16:14:30 · 657 阅读 · 0 评论 -
Java各种锁的理解
Java各种锁的理解1. 乐观锁 VS 悲观锁2. 自旋锁 VS 适应性自旋锁3. 无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁4. 公平锁 VS 非公平锁5. 可重入锁 VS 非可重入锁6. 独享锁 VS 共享锁Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。Java中往往是按照是否含有某一特性来定义锁,通过特性将锁进行分组归类,如下图所示:1. 乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中原创 2021-01-25 14:59:15 · 366 阅读 · 0 评论 -
Java并发编程面试题
2020最新Java并发编程面试题及答案1、在Java中守护线程和本地线程区别?2、线程与进程的区别?3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java中用到的线程调度算法是什么?6、什么是线程组,为什么在Java中不推荐使用?7、为什么使用Executor框架?8、在Java中Executor和Executors的区别?9、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classess)10、Java Concurrency AP原创 2020-10-12 08:28:27 · 682 阅读 · 0 评论 -
深入理解CAS机制
深入理解CAS深入理解CAS定义与原理缺点CAS出现ABA问题示例代码解决ABA问题深入理解CAS定义与原理 CAS:比较并交换(CompareAndSet),它将指定内存位置的值与给定值进行比较,如果两个值相等,就将内存位置的值改为给定值,如果不是就一直循环。CAS涉及3个元素:内存地址,期盼值和目标值。只有内存地址对应的值和期望的值相同时,才把内存地址对应的值修改为目标值。CAS在JAVA中的底层实现(Atomic原子类实现)Unsafe类。Unsafe类是CAS的核心类,由JDK自动加原创 2021-01-21 13:19:59 · 284 阅读 · 0 评论 -
Java虚拟机(JVM)与Java内存模型(JMM)学习笔记
Java虚拟机【JVM】与Java内存模型【JMM】学习笔记Java虚拟机(JVM)三种JVMJVM 位置JVM的主要组成部分及其作用类加载器双亲委派机制沙箱安全机制Java本地接口(JNI)JVM运行时数据区方法区堆程序计数器虚拟机栈本地方法栈堆栈的区别物理地址内存分别存放的内容深拷贝和浅拷贝Java对象创建过程Java对象定位访问的方式句柄访问直接指针Java实例化对象过程中的内存分配问题引入堆内存与栈内存对象空属性操作对象属性分步实例化对象NullPointerException的出现引用数据分析垃圾原创 2020-09-24 12:48:24 · 1625 阅读 · 0 评论 -
MyBatis 学习笔记
MyBatis 学习笔记原创 2022-03-19 17:19:19 · 370 阅读 · 0 评论 -
SpringBoot 自动装配原理
SpringBoot 自动装配原理原创 2022-03-19 17:13:55 · 389 阅读 · 0 评论 -
Spring 常见概念
IOC在 Java 基础中,我们往往使用 new 关键字来完成服务对象的创建。举个例子,我们有很多的 U 盘,它们都能够存储计算机的数据,但是它们可能来自不同的品牌,有金士顿(KingstonUSBDisk)的、闪迪(SanUSBDisk)的,或者其他满足 U 盘接口(USBDisk)规范的。如果我们用 new 方法,那么就意味着我们的接口只能用于某种特定品牌的 U 盘。USBDisk usbDisk = new KingstonUSBDisk();通过上面的操作,USBDisk 和 Kingsto原创 2022-03-19 17:09:37 · 416 阅读 · 0 评论 -
SpringMVC 执行流程
SpringMVC 执行流程原创 2022-03-19 17:07:07 · 165 阅读 · 0 评论 -
分布式系统服务注册与发现原理 & SpringCloud 学习笔记
分布式系统服务注册与发现原理 & SpringCloud 学习笔记原创 2022-03-19 17:03:15 · 832 阅读 · 0 评论