随笔分类 -  Java

摘要:1、Dubbo介绍 阅读全文
posted @ 2020-04-21 09:36 清泉白石 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、Java 源码阅读 "Java源码阅读(一)—— HashMap" "Java源码阅读(二)—— ConcurrentHashMap" "Java源码阅读(三)—— ThreadLocal" "Java源码阅读(四)—— ArrayBlockingQueue" "Java源码阅读(五)—— Ab 阅读全文
posted @ 2019-12-28 17:18 清泉白石 阅读(346) 评论(0) 推荐(0) 编辑
摘要:1、判断奇数偶数 2、交换两个数 代替 3、找出唯一没有重复的数 数字 1、2、2、1、3、3、4、5、4中找出只出现过1次的数 一道LeetCode题解,从数组中找出出现过1次的数,已知这样的数有2个。 首先先获得者两个数相异或的结果,再找出最低位对应的数值mask,再通过&操作,将数组中的数分成 阅读全文
posted @ 2019-05-31 01:14 清泉白石 阅读(378) 评论(0) 推荐(0) 编辑
摘要:一、通过Linux命令实现 为什么这个命令会有一个 呢? 是默认的DNS服务器。 二、DNS的理解 DNS的解析流程: 1.客户端访问www.baidu.com,检查浏览器是否有缓存,若无,往下走 2.操作系统检查host文件,有无对应关系,若无,往下走 3.在系统DNS缓存中找,若有返回域名对应的 阅读全文
posted @ 2019-05-30 22:33 清泉白石 阅读(13023) 评论(0) 推荐(0) 编辑
摘要:一、Http状态码 状态码分类 100 ~ 199 信息提示 200 ~ 299 成功 300 ~ 399 重定向 400 ~ 499 客户端错误 500 ~ 599 服务端错误 常见状态码 200 OK 401 Unauthorized 404 Not Found 500 Internal Ser 阅读全文
posted @ 2019-05-21 21:42 清泉白石 阅读(439) 评论(0) 推荐(0) 编辑
摘要:一、介绍 This class support asynchronous and synchronous HTTP requests. AsyncHttpClient 支持同步、异步Http请求。 二、简单使用 引入依赖 执行同步请求 执行异步请求 配置 参考文档 《AsyncHttpClient 阅读全文
posted @ 2019-05-21 20:28 清泉白石 阅读(10784) 评论(0) 推荐(0) 编辑
摘要:一、 产生并发Bug的源头 可见性 缓存导致的可见性问题 原子性 线程切换带来的原子性问题 有序性 编译优化带来的有序性问题 上面讲到了 "volatile 与可见性" ,本章再主要讲下原子性、有序性与Happens Before规则。 二、线程切换带来的原子性问题 count += 1 这一句高级 阅读全文
posted @ 2019-05-17 00:41 清泉白石 阅读(644) 评论(0) 推荐(0) 编辑
摘要:一、CountDownLatch 文档描述 A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads complet 阅读全文
posted @ 2019-05-15 23:09 清泉白石 阅读(196) 评论(0) 推荐(0) 编辑
摘要:一、概念 利用锁机制实现线程同步,synchronized关键字的底层交由了JVM通过C++来实现 Java中的锁有两大特性: 互斥性 同一时间,只允许一个线程持有某个对象锁。 可见性 锁释放前,线程对变量的修改,后面获得锁的线程可见。 可见性 JMM关于synchronized的两条规定: 1. 阅读全文
posted @ 2019-05-15 23:06 清泉白石 阅读(246) 评论(0) 推荐(0) 编辑
摘要:背景和作用 在同步组件的实现中,AQS是核心部分,同步组件的实现者通过使用AQS提供的模板方法实现同步组件语义,AQS则实现了对同步状态的管理,以及对阻塞线程进行排队,等待通知等等一些底层的实现处理。AQS的核心也包括了这些方面:同步队列,独占式锁的获取和释放,共享锁的获取和释放以及可中断锁,超时等 阅读全文
posted @ 2019-05-15 20:14 清泉白石 阅读(390) 评论(0) 推荐(0) 编辑
摘要:一、介绍 volatile保证共享变量的“可见性”。可见性指的是当一个线程修改变量时,另一个线程能读到这个修改的值。 这里就要提出几个问题。 问题1:为什么一个线程修改时,另一个线程可能会“看不见”? 问题2:这种可见性是如何实现的? 二、问题1 变量为何“不可见” 回答:是由于缓存导致的可见性问题 阅读全文
posted @ 2019-05-15 20:00 清泉白石 阅读(869) 评论(0) 推荐(0) 编辑
摘要:ReentrantReadWriteLock 阅读全文
posted @ 2019-05-15 09:43 清泉白石 阅读(260) 评论(0) 推荐(0) 编辑
摘要:介绍 依赖关系 源码 构造方法 参考文档 "10.并发包阻塞队列之ArrayBlockingQueue" 阅读全文
posted @ 2019-05-15 09:38 清泉白石 阅读(135) 评论(0) 推荐(0) 编辑
摘要:依赖关系 方法 doExecute方法 最后请求会交给MinimalClientExec 对象处理。 MinimalClientExec 基础回顾 Blocking I/O JAVA I/O分为BIO(Blocking IO)、NIO(Non blocking IO)和AIO(Asynchronou 阅读全文
posted @ 2019-05-13 12:31 清泉白石 阅读(544) 评论(0) 推荐(0) 编辑
摘要:HttpClient是支持Http协议的客户端编程工具包。 一、简单使用 1.1 引入依赖 1.2 一个简单的Get请求 1.3 Post请求、请求头、请求参数 1.4 使用代理 1.5 设置超时时间 HttpClient内部有三个超时时间设置:连接池获取可用连接超时,连接超时,读取数据超时 先连接 阅读全文
posted @ 2019-05-13 12:30 清泉白石 阅读(656) 评论(0) 推荐(1) 编辑
摘要:介绍 JDK1.8引入CompletableFuture类。 使用方法 API supplyAsync方法 JDK方法描述 应用场景 请求A的执行方法X,需满足下列需求: ①请求B、C、D中任一一个请求有返回结果,则X方法返回响应结果。 ②请求B、C、D中都执行完,则X方法返回响应结果。 源码阅读 阅读全文
posted @ 2019-05-13 07:21 清泉白石 阅读(359) 评论(0) 推荐(0) 编辑
摘要:一、线程池的介绍 线程池一种性能优化的重要手段。优化点在于创建线程和销毁线程会带来资源和时间上的消耗,而且线程池可以对线程进行管理,则可以减少这种损耗。 使用线程池的好处如下: 降低资源的消耗 提高响应的速度 提高线程的可管理性 二、线程池的使用 运行结果 如果将线程池的大小设置为3, ,则运行结果 阅读全文
posted @ 2019-05-13 07:20 清泉白石 阅读(319) 评论(0) 推荐(0) 编辑
摘要:ThreadLocal,叫做线程本地存储,也可以叫做线程本地变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 一、如何使用 二、什么场景下使用 需要避免任务在共享资源上产生冲突。 三、源码分析 3.1 WeakReference 讲到弱引用,就 阅读全文
posted @ 2019-05-13 07:19 清泉白石 阅读(185) 评论(0) 推荐(0) 编辑
摘要:整型处理 IntStream 求1 100中的偶数之和 int[] 与 Integer[] 转换 字符串处理 join方法 集合处理 去掉List中的重复元素 接口 默认实现 阅读全文
posted @ 2019-01-13 06:06 清泉白石 阅读(248) 评论(0) 推荐(0) 编辑
摘要:一、概述 ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。 锁分段技术 原理:将数据分成一段一段的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 理解Java存储模型(JMM 阅读全文
posted @ 2018-11-29 12:26 清泉白石 阅读(186) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示