
Java
戴眼镜的小青年
人无法决定太阳多久升起,但能决定自己多久起床
展开
-
什么是 CAS(比较并交换-乐观锁机制-锁自旋)
一.概念及特性CAS(Compare And Swap/Set)比较并交换,CAS 算法的过程是这样:它包含 3 个参数CAS(V,E,N)。V 表示要更新的变量(内存值),E 表示预期值(旧的),N 表示新值。当且仅当 V 值等于 E 值时,才会将 V 的值设为 N,如果 V 值和 E 值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS 返回当前 V 的真实值。C...原创 2019-05-25 22:29:31 · 3661 阅读 · 3 评论 -
公预善其事, 必先利其器-分布式思维思维导图&&学习笔记
1. 软件-互联网发展史1.1. 1.2. Java编程里, 两个高峰->高并发/高可用2. 集群与分布式2.1. 概念图解2.2. 概述集群复制模式, 每台机器做一样的事情分布式两台机器分工合作, 每台机器做不同的事情2.3. 业务图解2.4. 扩展1.更改本地host-> 达可到更改目标机器,欺骗浏览器2.全站搜索 不指定业务表的搜索, 任何一个...原创 2019-07-20 16:33:00 · 372 阅读 · 0 评论 -
实现Java显式锁解析
导读:本文分为三部分:实现lock锁部分用到的线程工具类测试代码与结果展示实现代码如下:public class SelfLock implements Lock { // state 表示获取到锁 state = 1 获取到了锁 state = 0 表示锁当前没有被拿到 // 定义内部类继承AQS 实现独占式进程方法 private static clas...原创 2019-07-20 09:24:55 · 219 阅读 · 0 评论 -
Java实现自定义线段树(附注解)
导读:本文分为三部分:1.文章介绍2.实现代码及介绍3.测试代码及测试结果一.文章介绍本文主要是使用了Java语言实现一个将数组构造为一个可以更新及查询的线段树结构, 线段树主要是用于解决线段和区间问题, 是一种高级的数据结构.二.实现代码自定义生成方式接口:// 使线段树可以自定义生成方式public interface Merge<E> { E mer...原创 2019-07-07 11:12:33 · 414 阅读 · 0 评论 -
Java: 基于二分搜索树的Map
导读: 本文分为三部分:自定义Map接口Map的二分搜索树实现代码功能测试一. 自定义Map接口public interface Map<K, V> { void add(K key, V value); V remove(K key); boolean contains(K key); V get(K ke...原创 2019-06-30 10:39:23 · 395 阅读 · 0 评论 -
leetCode: 350. 两个数组的交集 II Java映射实现
实现代码如下:public int[] intersect(int[] nums1, int[] nums2) { TreeMap<Integer, Integer> map = new TreeMap<>(); for(int num : nums1){ if(!map.containsKey(num)) ...原创 2019-06-30 10:03:50 · 263 阅读 · 0 评论 -
leetCode: 349.两个数组的交集Java实现
public int[] intersection(int[] nums1, int[] nums2) { TreeSet<Integer>set = new TreeSet<>(); for(int num: nums1) set.add(num); List<Integer> arr = ...原创 2019-06-30 09:50:28 · 225 阅读 · 0 评论 -
211. 添加与搜索单词 - 数据结构设计 题解
题解如下:class WordDictionary { private class Node{ public boolean isWord; public TreeMap<Character, Node> next; public Node(boolean isWord){ this.isWord ...原创 2019-07-07 21:42:28 · 178 阅读 · 0 评论 -
Java递归实现二分搜索树
导读: 本文分为两部分: 1.实现代码 2.测试代码实现代码如下: private class Node{ public E e; public Node left, right; public Node(E e){ this.e = e; left = null; ...原创 2019-06-25 21:51:37 · 654 阅读 · 0 评论 -
自定义Java动态数组
前言:基于java提供的静态数组,自定义实现的动态数组代码如下:/** * @ClassName Array * @Description 基于java数组进行二次封装 * @Author lilei * @Date 16/06/2019 11:09 * @Version 1.0 **/public class Array<E> { private E...原创 2019-06-16 16:21:55 · 2357 阅读 · 0 评论 -
Java自定义链表
public class LinkedList<E> { private class Node{ public E e; public Node next; public Node(E e , Node next){ this.e = e; this.next = next; ...原创 2019-06-18 20:54:32 · 1130 阅读 · 0 评论 -
手写嵌入式Tomcat(带详细注解)
导读本文分为两部分1. 实现思路分析部分2. 实现代码部分一. 实现思路分析使用Tomcat的API实现, 步骤如下新建一个Tomcat对象设置Tomccat的端口号设置Context目录添加Servlet容器调用Tomcat对象start()强制Tomcat等待二.实现代码MyTomcatServer代码如下public class MyTomcatServer...原创 2019-08-11 21:42:31 · 734 阅读 · 0 评论