java
文章平均质量分 92
奔跑的蜗牛@1997
这个作者很懒,什么都没留下…
展开
-
AVL树(java)
1、AVL树的定义 AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽量降低二叉树的高度,提高搜索效率 2、AVL树的特点 (1)AVL的左右子树高度之差的绝对值不超过1 (2)树中的每个左子树和右子树都是AVL树 (3)每个节点都有一个平衡因子,任一节点的平衡因子只能是(-1、0、1)。(每个节点的平衡因子等于右子树的高度减去左子 树的高度 ) (4)平衡二叉树的高度和结点数量之间的关系...原创 2019-04-22 19:01:49 · 624 阅读 · 0 评论 -
多线程的安全性
1、线程的安全性 定义:当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的 2、线程安全性的体现 (1)原子性:提供了互斥访问,同一时刻只能有一个线程对他进行操作。 (2)可见性:一个线程对主内存的修改可以及时的被其他线程观察到。 (3)有序性:一个线程观察其他线程中的指令...原创 2019-04-27 16:45:22 · 706 阅读 · 0 评论 -
Java多线程学习(一)
1、线程相关概念 1.1线程的定义 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是,同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。 1.2进程的定义 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统...转载 2019-04-23 17:34:54 · 116 阅读 · 0 评论 -
HashMap源码解析
1、HashMap的数据结构 在1.7版本 数组+链表 在1.8版本 数组+链表+红黑树 先看看hashMap在jdk 1.8的结构,如下图,用的是数组+链表+红黑树的结构,也叫哈希桶,在jdk 1.8之前都是数组+链表的结构,因为在链表的查询操作都是O(N)的时间复杂度,而且hashMap中查询操作也是占了很大比例的,如果当节点数量多,转换为红黑树结构,那么将会提高很大的效率,因为红黑树结构中...原创 2019-04-24 14:51:11 · 140 阅读 · 0 评论 -
多线程(AQS)
1、JUC简介 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等,大大的提高了java的并发性能。 2、JUC之AQS AQS(AbstractQueuedSynchronize...翻译 2019-04-29 18:48:00 · 973 阅读 · 0 评论 -
java中关于String的知识整理
1、JVM相关知识 JVM的体系结构图: Java栈(线程私有数据区): 每个Java虚拟机线程都有自己的Java虚拟机栈,Java虚拟机栈用来存放栈帧,每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。 Java堆(线程共享数据区)...转载 2019-05-23 18:58:44 · 192 阅读 · 0 评论 -
Java实现一个简易版RPC
准备知识: 1 java 网络编程(这里使用的bio) 2 java动态代理 3 反射 ================================= 通俗来说rpc就是: 1. 客户端持有的是接口(但是没有持有实现); 2.服务端放的是接口的具体实现以及接口; 3.客户端把方法和方法的参数 以及其他参数 通过socket发送给服务端; 4.然后服务端执行相对应的方法,最后再把执行结果返...原创 2019-07-24 15:48:32 · 186 阅读 · 0 评论 -
java实现zookeeper分布式锁
基本思路 1 client调用create()方法创建“/locks/lock”临时顺序节点,注意节点类型是EPHEMERAL_SEQUENTIAL 2 client调用getChildren("/locks",false)来获取所有已经创建的子节点,这里并不注册任何Watcher,只是为了看自己的是不是最小的节点 如果是,便获得了锁。 3 客户端获取到所有子节点Path后,如果发现自己在步骤1中...原创 2019-07-24 15:53:56 · 563 阅读 · 0 评论