自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

regrethh的博客

一个小兵的成长之路

原创 Java并发源码:BlockingQueue

Java并发源码:BlockingQueue ​ 阻塞队列是一个支持阻塞的插入方法和阻塞的移除方法的队列。 方法 抛出异常 返回特殊值 一直阻塞 超时退出 插入方法 add(e) offer(e) put(e) offer(e,time,unit) 移除方法 remove(e)...

2020-01-02 16:11:01

阅读数 15

评论数 1

原创 Java并发源码:ConcurrentHashMap

Java并发源码:ConcurrentHashMap 为什么要使用ConcurrentHashMap 不安全的HashMap 效率低下的HashTable ConcurrentHashMap的锁分段技术可以有效提升并发访问率 ConcurrentHashMap的结构 ​ ConcurrentH...

2019-12-31 15:30:49

阅读数 12

评论数 0

原创 java并发源码:Condition

java并发源码:Condition 比对Object的监视器方法和Condition接口 对比项 Object Condition 前置条件 获取对象的锁 调用Lock.lock()获取锁 ...

2019-12-25 15:05:05

阅读数 8

评论数 0

原创 java并发源码:ReentrantReadWriteLock

java并发源码:ReentrantReadWriteLock 结构 可见ReentrantReadWriteLock实现了ReadWriteLock接口。 ReadWriteLock接口定义了两个接口: Lock readLock() Lock writeLock() ​ Reentrant...

2019-12-23 16:05:11

阅读数 8

评论数 0

原创 java并发源码:ReentrantLock

java并发源码:ReentrantLock 结构 可见ReentrantLock实现了Lock接口。 lock lock接口定义了五个方法。 void lock();:获取锁。 void lockInterruptibly() throws InterruptedException;:可中断的...

2019-12-12 14:57:43

阅读数 9

评论数 0

原创 java并发源码:Synchronized

java并发源码:Synchronized synchronized加锁方式: 修饰实例方法:锁是当前对象。 修饰静态方法:锁是当前类的class对象。 修饰代码块:锁是synchronized括号里配置的对象。 ​ JVM基于进入和退出Monitor对象来实现方法同步和代码块同步的。代码块同...

2019-12-11 11:06:00

阅读数 37

评论数 0

原创 java并发源码:volatile

java并发源码:volatile volatile的定义: ​ java编程语言运行线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排它锁单独获得这个变量。如果一个变量被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。(可见性) vola...

2019-12-10 16:25:12

阅读数 7

评论数 0

原创 java并发源码:AbstractQueuedSynchronizer

java并发源码:AbstractQueuedSynchronizer 一、简介 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEGdDFSw-1575887227561) ​ AQS(队列同步器)是用来构建锁或者其它同步组件的基础框架,它使用了一个int成员变量...

2019-12-09 18:29:32

阅读数 7

评论数 0

转载 线上故障应用排查:高内存占用

前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查。 搞Java开发的,经常会碰到下面两种异常: 1、java.lang.OutOfMemoryError: PermGen space 2、java.lang.OutOfMemoryError: Java hea...

2019-10-31 22:02:28

阅读数 6

评论数 0

原创 java 源码阅读(五)HashSet

java 源码阅读(五)HashSet HashSet是一个无序,允许空值,不允许重复值的集合类。非线程安全类。 继承/实现 构造函数 private transient HashMap<E,Object> map; private static final Object PRESE...

2019-09-29 15:32:20

阅读数 8

评论数 0

原创 java 源码阅读(四)Vector

java 源码阅读(四)Vector Vector是一种变长集合类,基于数组实现。ArrayList允许空值和重复元素。当往Vector中添加的元素数量超过底层数量时,会进行扩容。Vector实现了RandomAccess接口,所以可以保证在O(1)复杂度下完成随机查找操作。是一个线程安全类。 继...

2019-09-27 16:10:00

阅读数 7

评论数 0

原创 java 源码阅读(三)LinkedList

java 源码阅读(三)LinkedList LinkedList底层采用的是双向链表结构,支持空值和重复值。无法向ArrayList那样进行扩容,存储元素时,需要额外的空间存储前驱和后继的引用。LinkedList在链表头部和尾部的插入效率比较高,但在指定位置进行插入时,效率一般。操作复杂度为O...

2019-09-26 16:01:45

阅读数 4

评论数 0

原创 Java 源码阅读(二) ArrayList

java 源码阅读(二) ArrayList ArrayList是一种变长集合类,基于数组实现。ArrayList允许空值和重复元素。当往ArrayList中添加的元素数量超过底层数量时,会进行扩容。ArrayList实现了RandomAccess接口,所以可以保证在O(1)复杂度下完成随机查找操...

2019-09-25 15:42:34

阅读数 8

评论数 0

原创 java 源码阅读(一) String

java 源码阅读(一) String String的属性: char[] value; int hash; String的重要方法 intern() /** * Returns a canonical representation for the string object....

2019-09-24 15:21:39

阅读数 30

评论数 0

转载 秒懂,Java 注解 (Annotation)你可以这样学

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/briblue/article/details/73824058 文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要...

2019-08-28 21:43:54

阅读数 34

评论数 0

转载 数据库分库分表

转载自微信公众号,Java杂记. 数据量过大,此时应该对数据进行拆分,分为垂直和水平两种。 垂直拆分: 水平拆分: 上图中订单数据达到了4000万,我们也知道mysql单表存储量推荐是百万级,如果不进行处理,mysql单表数据太大,会导致性能变慢。使用方案可以参考数...

2019-07-30 18:57:53

阅读数 18

评论数 0

原创 微服务(一)微服务理念

单体架构存在的问题: 复杂性高 技术债务 部署频率低 可靠性差 扩展能力受限 阻碍技术创新 什么是微服务: 微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常使用http资源API)。这些服务围绕业务能力构建...

2019-06-10 17:15:08

阅读数 261

评论数 0

原创 http状态码

状态码 状态码英文名称 中文描述 100 Continue 继续。客户端应继续其请求 101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 200 ...

2019-06-02 08:36:30

阅读数 134

评论数 0

原创 面试题:java deleteFile

需求:传一个file对象,写一个删除文件的方法。 具体实现较简单,主要是考虑多种情况。 文件是否存在 是否是文件夹,如果是文件夹,需要删除里面的文件之后才可以删除该文件夹 是否有其它程序在读取该文件,如果有,此时无法删除该文件。 import java.io.*; import java...

2019-06-01 10:04:49

阅读数 34

评论数 0

原创 mysql 索引详解

我们在看一本书的时候,想找到相关的知识,先去看目录,然后定位到页码,然后找到对应的知识。mysql中的索引就是类似于目录的作用。 一、索引类型: 1.B-Tree索引 B-Tree通常意味着所有的值都是按照顺序存储的,并且每一个叶子页到根的距离相同。 B-TREE 每个节点都是一个二元...

2019-04-11 17:36:46

阅读数 56

评论数 0

原创 Mysql explain

用explain来获取关于查询执行计划的信息。比如mysql中有慢查询语句,可以通过explian来返回其执行计划中的信息,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。 explain命令 EXPLAIN select * from a...

2019-04-11 11:39:37

阅读数 499

评论数 0

转载 elasticsearch 基本概念

原博主地址 接近实时(NRT) Elasticsearch 是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是 1 秒)。 集群(cluster) 代表一个集群,集群中有多个节点(node),其中有一个为主节点,这个主节点是可以通过选举产生的,...

2019-04-08 22:15:19

阅读数 15

评论数 0

原创 elasticsearch cat命令

关于cat命令可以通过curl 127.0.0.1:9200/_cat/command?help command是具体的命令。 这里解释几个常用的。多个命令之间用&链接。 command?v 显示表头。 command?h过滤某几个字段。 command?s status 状态 ...

2019-04-08 21:59:01

阅读数 511

评论数 0

原创 ElasticSearch注意事项!

默认聚合,查询,都是10条。谨记谨记!!! 留个疑问,为什么数据库默认只给10条。。。好坑。。。

2019-04-04 10:50:37

阅读数 61

评论数 0

原创 elasticSearch 基本操作类

elasticSearch官方文档地址 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html 因为官方后续不会支持transportClient,所以,本篇博客采用的是...

2019-03-20 21:44:06

阅读数 187

评论数 0

原创 leetcode算法-链表篇-1 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为:     4 -&gt; 5 -&gt; 1 -&gt; 9示例 1: 输入: head = [4,5,1,...

2019-01-02 22:03:19

阅读数 19

评论数 0

原创 leetcode算法-字符串篇-9 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true示例 2: 输入: s = "rat", t = &...

2019-01-02 21:51:15

阅读数 14

评论数 0

原创 leetcode算法-字符串篇-8 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: ...

2019-01-02 21:29:10

阅读数 32

评论数 0

原创 leetcode算法-字符串篇-7 验证回文字符串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true示例 2: 输入: "ra...

2018-12-28 22:45:30

阅读数 45

评论数 0

原创 leetcode算法-字符串篇-6 报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1.     1 2.     11 3.     21 4.     1211 5.     111221 1 被读作  "one 1"  ("一个一") , 即 11。...

2018-12-28 22:18:20

阅读数 36

评论数 0

原创 leetcode算法-字符串篇-5 实现strStr()

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。 示例 1: 输入: haystack = "hello",...

2018-12-28 21:41:56

阅读数 23

评论数 0

原创 leetcode算法-字符串篇-4 字符串转换整数 (atoi)

请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后...

2018-12-28 21:34:38

阅读数 31

评论数 0

原创 leetcode算法-字符串篇-3 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321   示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2...

2018-12-27 21:51:50

阅读数 35

评论数 0

原创 leetcode算法-字符串篇-2 字符串中的第一个唯一字符

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2.   注意事项:您可以假定该字符串只包含小写字母。 方法一:...

2018-12-27 21:24:01

阅读数 18

评论数 0

原创 leetcode算法-字符串篇-1 反转字符串

编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 输入: "hello" 输出: "olleh"示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :la...

2018-12-26 22:13:17

阅读数 63

评论数 0

原创 leetcode算法-数组篇-11 旋转图像

给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix =  [   [1,2,3],   [4,5,6],   [7,8,9] ]...

2018-12-26 22:06:22

阅读数 13

评论数 0

原创 leetcode算法-数组篇-10 有效的数独

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字...

2018-12-26 21:23:39

阅读数 38

评论数 0

原创 leetcode算法-数组篇-9.加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。示例 2: ...

2018-12-20 22:13:48

阅读数 21

评论数 0

原创 leetcode算法-数组篇-8.旋转数组

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4]解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右...

2018-12-20 22:00:50

阅读数 12

评论数 0

原创 leetcode算法-数组篇-7.买卖股票的最佳时机 II

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解...

2018-12-20 21:16:47

阅读数 25

评论数 1

提示
确定要删除当前文章?
取消 删除