摘要: 一、jmap找出占用内存较大的实例 先给个示例代码: import java.util.List;import java.util.concurrent.CountDownLatch;/** * @Classname OOMTest * @Description TODO * @Date 2019/ 阅读全文
posted @ 2019-11-14 10:00 彭阿三 阅读(1210) 评论(0) 推荐(0) 编辑
摘要: 多线程与高并发之锁 韩愈说过这样一句话:“业精于勤荒于嬉,行成于思毁于随””。天才就是无止境刻苦勤奋的努力。成绩优与良;才思浓与淡,都是由勤奋注定的。 概念 进程 进程指正在运行的程序,进程拥有一个完整的、私有的基本运行资源集合。通常,每个进程都有自己的内存空间。 进程往往被看作是程序或应用的代名词 阅读全文
posted @ 2020-09-14 20:13 彭阿三 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 一致性Hash算法 概念:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个Hash环上,然后根据数据的Key值计算得到其Hash值(其分布也为[0, 232-1]),接着在Hash环上顺时针查找距离这个Ke 阅读全文
posted @ 2020-07-03 17:52 彭阿三 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 我们了解spring源码在平时的开发中能够更快速的去定位问题,并且能够去学习这些框架中的设计模式 环境搭建 1.在idea中创建一个maven工程 相信大家都很熟悉,所以本文中略过。 2.创建一个java类 public class App { public void say(){ System.o 阅读全文
posted @ 2020-07-02 09:40 彭阿三 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 三个基本特征 面向对象的三个基本特征是:封装、继承、多态。 (1)封装(Encapsulation)-隐藏实现 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 阅读全文
posted @ 2020-06-12 14:35 彭阿三 阅读(10031) 评论(0) 推荐(0) 编辑
摘要: 五大基本原则要牢记 单一职责原则(Single-Resposibility Principle) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它 阅读全文
posted @ 2020-06-11 11:14 彭阿三 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 通过本篇文章了解 为什么需要LocalDate、LocalTime、LocalDateTime【java8新提供的类】 java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改 为什么需要LocalDate、LocalTime、LocalDateTime Date如果不格式化,打印出的 阅读全文
posted @ 2020-01-13 10:14 彭阿三 阅读(23998) 评论(0) 推荐(4) 编辑
摘要: ArrayList 踩坑 List<String>temp =new ArrayList();//获取一批数据List<String>all =getData();for(String str :all) { temp.add(str);} 首先大家看看这段代码有什么问题嘛? 其实在大部分情况下这都 阅读全文
posted @ 2020-01-03 11:03 彭阿三 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一、基础 1.1 正确的使用equals方法 Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。如下代码 // 不能使用一个值为null的引用类型变量来调用非静态方法,否则会抛出异常 String str = null; if (str.equals(" 阅读全文
posted @ 2019-12-05 16:05 彭阿三 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 众所周知,redis是一个高性能的分布式key-value存储系统,在NoSQL数据库市场上,redis自己就占据了将近半壁江山,足以见到其强大之处。同时,由于redis的单线程特性,我们可以将其用作为一个消息队列。本篇文章就来讲讲如何将redis整合到spring boot中,并用作消息队列的 ( 阅读全文
posted @ 2019-12-04 15:22 彭阿三 阅读(1227) 评论(0) 推荐(1) 编辑
摘要: 一、分布式锁使用场景: 代码部署在多台服务器上,即分布式部署。 多个进程同步访问一个共享资源。 二、需要的技术: 数据库:mongo java:mongo操作插件类 MongoTemplate(maven引用) 三、实现代码: 主实现逻辑及外部调用方法,获得锁调用getLock,释放锁调用relea 阅读全文
posted @ 2019-12-04 11:06 彭阿三 阅读(476) 评论(0) 推荐(0) 编辑