自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Talk is cheap

实践是检验真理的唯一标准

  • 博客(47)
  • 收藏
  • 关注

原创 并发编程中的可见性-原子性-有序性

计算机的发展开始讲起:计算机开始的CPU 内存 I/O 这三者在使用时存在巨大的速度差异,为了使三者更好的交互,所以CPU增加了缓存,增加了多线程来分时复用I/O,编译优化使得缓存更好的利用。3者中两者都很好的理解,但最后一点却无法理解?查阅相关资料,得到解释如下:同时这些技术解决技术问题的同时又引入了其它的问题。1.缓存带来的可见性问题2.线程切换带来的原子性问题3.编译优化带来的有...

2019-08-27 23:02:52 177

原创 对ThreadPoolExecutor的简单学习总结

public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ...

2019-04-19 11:32:45 163

原创 Arraylist的学习总结

JAVA的集合是在日常编程中被经常使用到,说到集合就应该拿出那张经典图,图如下:集合在JAVA中被分为LIST,QUEUE,MAP,SET这四类,那就先谈谈LIST,LIST在日常编程中经常被使用到,它有三类Arraylist,Linkedlist,vector集合,arraylist本质是数组,它的优势读取数据很快,但是删除添加数据的是速度很慢。linkedlist本质是链表,它的优势删除添加...

2019-04-06 23:10:25 237

原创 关于CAP理论和实践的一下看法

在项目中实现过三个微服务之间的相互请求,使用的都是HTTP请求,当时都没注意到CAP这个东西,后来又遇到了三个微服务之间的请求使用了消息队列和HTTP请求,发现了数据不一致性,又把三个微服务改成了HTTP请求,对CAP有了一些看法。理论:首先CAP得含义是什么? ● 一致性(C):在分布式环境中,一致性是指在多个副本之间能够保持一致的特性。保证系统在一致性的状态下经过更新后仍然处于一致性的状...

2019-04-04 17:03:26 261

原创 运维-存储分类及其区别

存储计算机常用的的设备之一,也是基础设施中的一部分,它的构成大概分为3类,DAS,SAN,NAS,这三者区别:DAS 直接存储,外置存储通设备通过SCSI或FC接口直接连接到应用服务器上,存储设备是整个服务器结构的一部分。SAN 通过光纤交换机连接存储阵列和服务器,建立专用数据存储的存储私网。NAS采用网络技术(TCP/IP、ATM、FDDI),通过网络交换机连接存储系统和服务器主机来建立存储私网。其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。SAN和NAS的主

2021-07-21 20:01:30 174

原创 运维-存储分类及其区别

存储计算机常用的的设备之一,也是基础设施中的一部分,它的构成大概分为3类,DAS,SAN,NAS,这三者区别:DAS 直接存储,外置存储通设备通过SCSI或FC接口直接连接到应用服务器上,存储设备是整个服务器结构的一部分。SAN 通过光纤交换机连接存储阵列和服务器,建立专用数据存储的存储私网。NAS采用网络技术(TCP/IP、ATM、FDDI),通过网络交换机连接存储系统和服务器主机来建立存储私网。其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。SAN和NAS的主

2021-07-04 22:04:17 162

原创 并发编程--原子变量和CAS

什么是原子变量?在多线程并发当种,JAVA对与数据变量的修改采用了synchronized原子性,原子变量又是另一种能保证原子性。使用原子变量能够比使用synchronized实现原子性提高性能,synchronized减少获取锁,等待锁的时间,上下文切换时间。原子变量的原理CAS在有两者说法一种是compareAndSet,另一种说法是compareAndSwap,我这边做了调查发现实际上compareAndSet的底层调用就是unsafe的compareAndSwap xxxx方法,所以说严格讲C

2020-05-14 17:51:24 176

原创 并发编程-等待循环机制总结

等待-通知机制定义解释:当线程不满足执行条件时,线程进入等待阶段,当条件满足后时,通知线程并唤醒它继续执行,这就时等待-唤醒机制。Java中的等待唤醒机制实现:Synchronized来实现等待-通知机制,Java 语言内置的 synchronized 配合 wait()、notify()、notifyAll() 这三个方法实现等待-通知机制。完整的等待-通知机制实现,线程获取互斥锁,当线...

2020-05-06 19:05:52 358

原创 JAVA的虚拟机-内存模型总结

Java虚拟机在其运行区域上划分为5大区域,这5大区域分别为方法区,堆区,本地方法栈,虚拟机栈,程序计数器,前2者被所有线程共享,后三者只属于自己的线程,下面分别讲述下5大区域:方法区:功能及定义:存储已经被虚拟机加载的类型信息,常量,静态变量,即时编译器变异的缓存。备注:运行时常量池属于该区域。堆:功能及定义:内存区域中唯一存放对象实例(换个说法 所有对象的实例及数组分配都在堆中)备...

2020-05-03 21:32:16 112

原创 设计模式-抽象工厂模式

写完了工厂模式后,继续学习看书,书上讲到了抽象工厂模式,其实看完书,敲了一篇代码后,感觉还是没有怎么理解它,想通过与前面的工厂模式进行对比学习,但是发现前面的工厂模式学了太久忘记了,尴尬,知识这东西忘记的太快了,写下我对抽象工厂模式的学习记录。简单来讲抽象工厂,产品接口,然后抽象类实现产品接口,具体类继承抽象类。工厂的话,实现一个接口工厂,具体实现多个具体工厂。产品接口:public int...

2019-11-01 17:39:56 106

原创 设计模式-工厂模式和简单工厂模式

工厂模式是设计模式中经常使用的模式之一,它共分为3类,工厂模式,简单工厂模式,抽象工厂模式,分别对以上3种设计模式进行讲述。

2019-10-16 17:06:16 113

原创 并发编程-死锁

什么是死锁?当用一个锁去保护多个资源时,资源与资源的访问时串行的,为了提升性能,引入多个锁,使资源与资源之间的访问时并行的,这种方式称为:细粒度锁。采用细粒度锁提高了并行,但是会产生代价,这个代价就是死锁。死锁就是一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。为什么细粒度锁会产生死锁?这个要从死锁产生原因分析,请看下个标题内容。死锁产生的原因?死锁主要有4个原因产生,分别对...

2019-10-07 17:05:02 183

原创 并发编程-synchronized-互斥锁

synchronized:互斥锁什么是互斥锁?保证同一时刻只有一个线程执行。互斥锁用来做什么?并发编程中原子性的产生来源于线程切换,互斥锁用来保证原子性。互斥锁使用的的规则?锁如果修饰静态方法时,锁的是当前CLASS对象。修饰非静态方法时,锁的是当前实例对象this。使用范例?...

2019-09-18 23:41:15 592

原创 Happens-Before 规则总结

在并发编程中Happens-Before 规则是相当重要的规则,它所代表的意思是前面一个操作对后续操作是可见的,共有6项规则如下:程序的顺序性规则volatile 变量规则传递性管程中锁的规则线程 start() 规则线程 join() 规则分别对以上6种规则进行解释:1.程序的顺序性规则程序的顺序性指的是代码会按照书写的顺序去执行,也就是单线程方式。2.volatile 变...

2019-09-01 19:49:42 232

原创 设计模式-单例模式

单例模式什么是单例模式,单例模式用来做什么?单例模式确保只有一个实例存在,减少内存的开支和系统性能的开销,避免对资源的多重占用。单例模式的常见写法:饿汉模式public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { } ...

2019-08-27 21:07:25 106

原创 JAVA8 Hashmap的源码学习总结

Hashmap作为常用的集合之一,必须深入的了解和学习,同时也是面试的经常考点之一。Hashmap在JDK1.8以后采用数组+链表+红黑树的结构来存储数据,首先介绍下Hashmap的概念:默认初始化容量 16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;最大容量 2的30次方static final int MAXIMU...

2019-08-22 14:51:33 1314 4

原创 编程路上的坑--8

最近在编程中,编完代码发现接口的返回很慢,就是用日志排查问题,打了很多日志,排查出来的效果还不明显,经过同事提醒发现一个很实用的工具Stopwatch,这个工具很容易能够分析出那些代码模块运行的效率慢,那些代码模块的效率比较快,耗时主要花费在那些部分,结果清晰明朗,记录一下学习:1.是什么?StopWatch是位于org.springframework.util包下的一个工具类,通过它可方便的...

2019-08-21 10:40:51 116

原创 并发编程的知识总结

对并发领编程从全面的去看待,可以抽象成三个核心问题:分工— 同步 —互斥分工:分工重要且复杂同步:一个线程完成任务后,如何通知执行后续任务的线程互斥:同一时刻,只允许一个线程访问共享变量并发编程有三大问题:...

2019-08-04 21:22:13 137

原创 编程路上的坑--6

平时一直都使用fastjson,都比较顺利好用,没有出现过什么问题,最近在使用时抛出了问题,这个问题很奇怪,说的是jsonObejct转实体时出现问题,开始感觉这是个很简单的问题,结果我用了半天才排查出来原因,具体错误没有截图,所以不能更好的说明问题,只是单纯的记录整个问题,原因是实体里面存在JsonObejct对象导致实体转换失败,这是个坑,因为平时的问题排查起来都很快,这个却废了我半天...

2019-08-04 21:21:19 80

原创 一些生活和工作的小感悟

最近发现自己说话说得时候没有表述清楚,我后面在想是我表达不好还是故意简介,后面发现是自己故意简洁表达,导致别人认为我表达不清,你以为这个世界都不懂你,最后发现是我不懂世界。每个人的生活环境,学习程度,知识积累是不同的,你想要让别人懂你,你必须清楚的表达自己的看法和想法。还有焦虑的事情,最近反思下,生活和工作必须分开,工作是工作,生活是生活,不要在工作时想生活,也不要再生活时想工作。找到焦虑的根本...

2019-06-24 10:37:22 761

原创 BASE理论总结和看法

前面在写完CAP理论和实践后,又了解到BASE理论,这理论是CAP理论的延伸,也是用来解决分布式系统之间的问题的。BASE理论的含义:Basically Available:基本可用分布式系统在出现不可预知故障的时候,允许损失部分可用性,损失部分性能指的是:1. 响应时间的损失:响应时间多于平常时间。2. 功能上的损失: 为了系统的稳定性,部分消费者降级到另一页面。Soft Stat...

2019-06-20 11:08:38 382

原创 编程路上的坑--7

现象:最近在使用MONGO聚合做一次数据查询分页,发现有些数据重复的出现。原因分析:每次聚合先排序后查找,因为排序的数据不具有唯一性,每次排序后在查询,得到的数据都是随机的,所以排序加上唯一性后,查询的数据就是唯一的。解决方案:在排序的时候加上具有唯一性的数据。...

2019-06-20 10:42:06 162

原创 JAVA实体转JsonObject

JSONObject.parseObject(JSONObject.toJSONString(实体));

2019-06-06 16:57:43 8721

原创 关于分布式锁的思考

最近在做项目总结,发现使用到了分布式的锁,简单的介绍下项目背景,EXCEL批量导入数据时,同时也有单个数据的操作,为了避免单个数据的操作,影响到批量数据的验证,所以在代码层面使用了张表,这张表存储了批量的信息,例如开始结束时间,状态等信息。然后用户在单个操作时,先对这张表的状态进行验证,如果批量在运行中就不能操作,开始我只是想用个办法简单的去阻断整个流程,后来发现当实例增加时,这个东西就可以理解为...

2019-05-14 18:12:51 145

原创 关于hashcode和equals的学习总结

在JAVA中两个对象的判定是否相等依靠的是hashcode与equals共同协作,首先通过两个对象的hashcode判断两个对象是否相等,然后调用equals来判断两个对象的值是否相等。在object定义中对hashcode和equals要求如下:两个对象的equals结果是相等,那么两个对象的hashcode必定相等。如果重写equals,必须同时重写hashcode。始终记住对象的判断首...

2019-05-05 22:45:58 96

原创 关于BigDecimal的一次错误记录

new BigDecimal(“12.7895”).setScale(2).doubleValue();会抛出异常Exception in thread “main” java.lang.ArithmeticException: Rounding necessaryat java.base/java.math.BigDecimal.commonNeedIncrement(BigDecimal...

2019-04-29 09:31:46 393

原创 逻辑学总结

2019-04-20 17:53:02 608

原创 工作总结

2019-04-20 17:52:11 106

原创 maven的简单总结

2019-04-20 17:41:02 91

原创 JAVA线程学习总结

在大学里学习时知道实现线程的2种方式,一种是继承thread类,另一种是实现Runnable接口。简单的复习下这两种方式:继承thread类时,重写start方法实现Runnable接口时,重写run方法第三种实现 Callable接口,重写call()方法,这个应该是日常项目中经常使用的,call()可以获得返回值同时可以抛出异常。优势Callable>Runnable>t...

2019-04-17 17:46:38 134

原创 状态码的简单总结

HTTP协议状态码表示的意思主要分为五类 ,大体是 :状态码 响应类别 出现原因1XX 信息性状态码(Informational) 服务器正在处理请求2XX 成功状态码(Success) 请求已正常处理完毕3XX 重定向状态码(Redirection) 需要进行额外操作以完成请求4XX 客户端错误状态码(Client Error) 客户端原因导致服务器无法处理请求5XX 服务器错误状态...

2019-04-09 11:36:17 142

原创 关于学习方法的总结

最近翻看电脑时,发现自己以前写的文章,感觉还不错的样子,好像是看某本学习方法书籍的总结,现在也发布到博客上。

2019-04-05 23:34:42 185

原创 读spingboot in action的总结

以前只看过sping in action这本书,当时是为了做ssm的项目,这本书看了因为没做笔记了,结果现在脑袋里什么都忘记了,后来因为项目接触spingboot,又看了spingboot in action这本书,打算把学习的知识总结一下,避免又忘记了,记得这本书是去年7月份读完的,现在总结下。...

2019-04-04 17:22:23 134

原创 读JAVA8 in action的简单总结

JAVA8的知识我主要来源于JAVA8 in action书上,in action系列的书是我最喜欢的技术书籍之一,这本书于去年看完,但现在才做总结,只能总结些碎片知识。个人感觉JAVA8的出现又提升了JAVA的档次,JAVA8主要有2个特征 lambda表达式和流式处理,lambda表达式不在是把变量作为第一公民,而是把函数作为第一公民,程序员传递的时候可以传递方法,就是俗称的函数式编程,流式...

2019-04-03 11:50:46 490

原创 编程路上走过的坑-5

EXCEL导入导出大致流程分为:前端把文件上传到HDFS上,HDFS返回地址传给后端,后端根据地址HTTP下载ECXEL解析转化为流,然后一行行遍历数据,在遍历数据的过程中要注意把EXCEL表格类型设置为STRING,后台新启线程,实现异步功能,然后根据业务对数据进行处理,然后将处理后的数据上传到HDFS上,再把返回的地址给前端。其中是使用到了HTTP下载,HDFS,多线程技术,lambda表...

2019-04-03 11:30:28 134

原创 Swagger基础总结

The Best APIs are Built with Swagger ToolsSwagger分为四部分:swagger: “2.0”info:version:1.0.0title:simple apidescription:a simple api to learn how to write openAPI specificationschemes:-httpshost:...

2019-04-02 17:49:50 531

原创 Java基础总结

这些Java知识来源于很早以前的看书总结(应该属于大学基础知识部分),现在从简书上移动到CDSN上,写的不好,有些知识还很陈旧,会存在许多问题,只是把它作为知识的记录过程,后来学习的JAVA知识会紧随更新。1.JAVA数据类型总结Java基本数据类型:整型:byte short int long浮点型:float double字符型:char布尔型:boolean类型转换:自动转换...

2019-04-02 17:47:27 168

原创 JavaScript基础总结

在这里插入图片描述

2019-04-02 17:20:43 97

原创 CSS基础总结

2019-04-02 17:19:27 100

原创 HTML基础总结

2019-04-02 17:18:47 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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