自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

转载 LinkedHashMap的特殊之处

一、前言乍眼一看会怀疑或者问LinkedHashMap与HashMap有什么区别? 它有什么与众不同之处? 由于前面已经有两篇文章分析了HashMap,今天就看看LinkedHashMap。(基于JDK8)二、结构属性分析1、继承关系public class LinkedHashMap<K,V> extends HashMap<K,V> im...

2019-07-31 19:53:00 223

转载 JDK8下的HashMap有什么特别之处?

一、前言上篇认真的分析了在JDK7下的HashMap, 如果还没看过的或者忘记了的可以先去回顾下,这样可以更好的了解JDK8下的HashMap基于JDK7做了什么改动。分析JDK8下的HashMap 主要是因为JDK8在目前使用已成主流,且其在某些性能程度远远大于JDK7。下面逐一分析。二、内部结构其实大部分结构跟JDK7是一样的, 比如是基于数组+链表的形式构成的。下...

2019-06-23 16:46:00 208

转载 HashMap,你知道多少?

一、前言HashMap在面试中是个火热的话题,那么你能应付自如吗?下面抛出几个问题看你是否知道,如果知道那么本文对于你来说就不值一提了。HashMap的内部数据结构是什么?HashMap扩容机制时什么?什么时候扩容?HashMap其长度有什么特征?为什么是这样?HashMap为什么线程不安全?并发的场景会出现什么的情况?本文是基于JDK1.7.0_...

2019-05-31 23:33:00 347

转载 Java并发编程-常见问题

一、常见问题  从小的方面讲, 并发编程最常见的问题就是可见性、原子性和有序性问题。  从大的方面讲, 并发编程最常见的问题就是安全性问题、活跃性问题和性能问题。  下面主要从微观上分析问题。二、可见性问题  可见性:一个线程对共享变量的修改,另外一个线程能够立马看到,这个称之为可见性。知道了可见性那么你就知道可见性问题了.  可见性问题:一个线程对共享变量的修改...

2019-04-14 20:06:00 205

转载 Java线程池,你了解多少?

一、前言  随着业务的发展,单线程已经远远不能满足,随即就有多线程的出现。多线程虽然能解决单线程解决不了的事情,但是它也会给你带来额外的问题。比如成千上万甚至上百万的线程时候,你系统就会出现响应延迟、卡机、甚至直接卡死的情况。为什么会出现这样的原因呢?因为为每个请求创建一个新线程的开销很大:在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理实际的用户请求的时间和资源更多。...

2019-03-03 10:57:00 89

转载 Git-常用命令

一 前言 记录下git常用使用的场景,方便以后查阅。如有疑问欢迎指出。<后续会持续更新>二 git工作流程图Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库三 查看命令说明git status显示当前分支变更的文...

2019-01-10 23:47:00 84

转载 CentOS6.6 编译Redis报错:"Newer version of jemalloc required"

一、前言  不同系统同一个问题,可能解决方法不一样,也可能会遇到不同的问题,所以具体情况具体分析,我的系统是Centos6.6, 查看系统命令 cat /etc/issue二、安装redis后编译报错:Newer version of jemalloc required[root@server003-bmbic redis-5.0.3]# makecd src ...

2019-01-09 12:49:00 601

转载 IDEA 常用快捷键

前言下面快捷键如果有说明有误还请指出,谢谢。(后续会陆续更正)Ctrl快捷键介绍Ctrl+F在当前文件进行文本查找(必备)Ctrl+R在当前文件进行文本替换(必备)Ctrl+Z撤销(必备)Ctrl+Y删除光标所在行 或 删除选中的行(必备)Ctrl+X剪切光...

2018-12-19 19:14:00 61

转载 Java并发编程(4)--生产者与消费者模式介绍

一、前言  这种模式在生活是最常见的,那么它的场景是什么样的呢? 下面是我假象的,假设有一个仓库,仓库有一个生产者和一个消费者,消费者过来消费的时候会检测仓库中是否有库存,如果没有了则等待生产,如果有就先消费直至消费完成;而生产者每天的工作就是先检测仓库是否有库存,如果没有就开始生产,满仓了就停止生产等待消费,直至工作结束。下图是根据假象画的流程图:  那么在程序中怎么才能达...

2018-10-28 12:45:00 164

转载 Java并发编程(3) JUC中的锁

一 前言  前面已经说到JUC中的锁主要是基于AQS实现,而AQS(AQS的内部结构、AQS的设计与实现)在前面已经简单介绍过了。今天记录下JUC包下的锁是怎么基于AQS上实现的二 同步锁  同步锁不是JUC中的锁但也顺便提下,它是由synchronized 关键字进行同步,实现对竞争资源互斥访问的锁。  同步锁的原理:对于每一个对象,有且仅有一个同步锁;不同的线...

2018-10-07 11:40:00 84

转载 Java并发编程(2) AbstractQueuedSynchronizer的设计与实现

一 前言  上一篇分析AQS的内部结构,其中有介绍AQS是什么,以及它的内部结构的组成,那么今天就来分析下前面说的内部结构在AQS中的具体作用(主要在具体实现中体现)。二 AQS的接口和简单示例  上篇有说到AQS是抽象类,而它的设计是基于模板方法模式的,也就是说:使用者需要继承同步器并重写指定的方法,随后将同步器组合在自定义同步组件的实现中,并调用其提供的模板方法。其中需要...

2018-09-23 11:19:00 102

转载 常见踩坑案例(二)-Request method 'POST' not supported

一 前言  最近涉及到与前后端的数据对接,按道理来说没一点压力结果被一前端童鞋带坑里去了(不过也是很久没写过这种前后端分离进行联调的事情了,如果是一个人全套弄的话就不会出现下面问题)。二Request method 'POST' not supported  进入正文,跟前端进行数据联调时,别人联调都正常,到联调我的接口(进行数据获取)就出现了问题。  下面进行异常场...

2018-09-17 18:44:00 1966

转载 Java并发编程(2) AbstractQueuedSynchronizer的内部结构

一 前言    虽然已经有很多前辈已经分析过AbstractQueuedSynchronizer(简称AQS,也叫队列同步器)类,但是感觉那些点始终是别人的,看一遍甚至几遍终不会印象深刻。所以还是记录下来印象更深刻,还能和大家一起探讨(这就是重复造轮子的好处,另外也主要是这篇篇幅太长了,犹豫了好久才决定写作)。既然有很多前辈都分析过这个类说明它是多么的重要,下面我们看下concurr...

2018-09-08 13:10:00 101

转载 常见踩坑案例(一) subList引起FULLGC

计划真的赶不上变化,时间过得真快。废话不多说了,今天主要记录之前有同事遇到的一些坑分享出来。一、封装类的应用会引起NPE异常  对于其他对象的应用,一般在使用之前会判断它是否为空,如果不为空才会使用它以及它里面的一些属性值。但是对于基本类型的封装类型,就有很多人漏掉对于它的判断。  就在前面几天有位同事问我说这段代码它怎么会报空指针呢? 先模拟下这个场景下的代码://...

2018-09-01 11:39:00 368

转载 Java内存模型-volatile的内存语义

一 引言  听说在Java 5之前volatile关键字备受争议,所以本文也不讨论1.5版本之前的volatile。本文主要针对1.5后即JSR-133针对volatile做了强化后的了解。二 volatile的特性  开门见山,volatile变量自身具有以下特性:可见性(最重要的特性)。对一个volatile变量的读,总是能看到(任意线程)对这个volatile变...

2018-07-25 12:42:00 88

转载 Java内存模型-锁的内存语义

一 引言  在说volatile的内存语义时,讲过这样一句话:想要理解透volatile特性有一个很好的方法,就是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步。所以其实锁的释放和获取与volatile的写和读具有相同的内存语义。二 锁的释放-获取建立的happens-before关系  不清楚happens-before规则的请前去看-...

2018-07-22 14:49:00 96

转载 Java内存模型-final域的内存语义

一 引言  说到final你肯定知道它是Java中的关键字,那么它所在Java中的作用你知道吗?不知道的话,请前往这篇了解下https://www.cnblogs.com/yuanfy008/p/8021673.html  今天我们来说说final域在JMM中的内存语义。二 final域的重排序规则  开门见山,对于final域,编译器和处理器一定要遵守两个重排序规则(J...

2018-07-22 14:49:00 82

转载 Java并发编程(1)-Java内存模型

本文主要是学习Java内存模型的笔记以及加上自己的一些案例分享,如有错误之处请指出。一 Java内存模型的基础1、并发编程模型的两个问题  在并发编程中,需要了解并会处理这两个关键问题:  1.1、线程之间如何通信?  通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。  a) 在共享内存的并发模型里,线程之间共...

2018-07-22 14:45:00 87

转载 Java源码解读(一) 8种基本类型对应的封装类型

说起源码其实第一个要看的应该是我们的父类Object,这里就不对它进行描述了大家各自对其进行阅读即可(其中留意wait()方法可能会存在虚假唤醒的情况)。一、八种基本类型接下来介绍我们的八种基本类型(这个大家都知道吧):char、byte、short、int、long、float、double、boolean。这里也不太描述其过多的东西,只说些要特别注意的事项(如果我这存在遗落的...

2018-01-20 17:36:00 117

转载 Java基础(五)-Java序列化与反序列化

本文主要从以下方面记录:1、Java序列化和反序列化是什么?2、为什么需要序列化与反序列化?3、怎么实现Java序列化和反序列化?4、几个序列化注意事项一、Java序列化和反序列化是什么?  通俗的来讲,序列化过程就是将对象转成二进制流存入内存或者文件,反序列化从内存或文件中读取二进制流转换成对象。  二、为什么需要序列化与反序列化?  其实这个问...

2018-01-12 10:14:00 109

转载 Java基础(四)-异常处理机制及其设计

  本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常。还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就行了(当初真的很懵懂很天真)。当踏入社会工作后才知道一个好的异常处理框架是有多重要,比方说当你的项目投入使用的时候,当程序出错如何快速的定位到问题的根源(出了什么错,在哪出的错,为什么出...

2017-12-25 20:16:00 151

转载 基于Java使用Snmp4j进行监控与采集(snmptrap、snmpwalk、snmpget)

一、前言之前有在弄监控服务器这块的工作,今天来整体总结下。因为有些服务器(路由器、交换机等都是基于snmp协议的)必须使用snmp协议去监控采集和接收信息,所以必须去了解snmp相关内容,以及如何在基于java上开发。关于了解snmp相关内容,必看《SNMP简单网络管理协议》这本书里面介绍的很详细,另外推荐这位前辈的博文写的很到位《snmp学习总结》。关于snmp4j的介绍也可以看...

2017-12-19 19:45:00 3504

转载 Java基础(三)-final关键字分析

一 引言  今天来谈谈final关键字的作用, 虽然有很多博文关于final进行了很深的研究,但还是要去记录下谈谈自己的见解加深下印象。下面直接进入主题:二 final关键字的作用  1、被final修饰的类不能被继承。  这一点应该很多人都知道也遇到过,经典案例就是java.lang.String类  还有一些常见的类也是被final所修饰的,如下:  基本...

2017-12-11 21:14:00 127

转载 Java基础(二)-static关键字分析

一、前言static关键字是我们在编程中经常会使用到的,但有些可能只知其然而不知其所以然。下面介绍static关键字的作用再通过例子结合说明。static关键字共有五种作用(先说明static所修饰的不会改变其(private、protected、default和public)作用域的范围): 修饰成员变量(非局部变量) 修饰成员方法 修饰代码块 修饰内部类...

2017-12-10 12:02:00 94

转载 Java关键字(一) 修饰符private、protected、public和default的作用域

一、private、protected、public和default的作用域我们经常用着四种修饰符去修饰变量、方法和类,但是这四种的作用域都一样吗? 其中private和public可能是最多人知道的,但是protected和default可能就不知道其具体的作用域是哪些范围。先对其四种进行说明再通过案例进行证明:public:具有最大访问权限。可以被同一项目下的任何类所调用,...

2017-12-09 10:35:00 328

转载 Spring定时任务有时候会莫名奇妙的终止?

最近在是使用Spring配置定时定时任务(基于xml配置使用spring自带的定时任务),一开始使用没什么问题当使用久了就会出现有些定时任务自动停止了。(关于如何使用以及如何它的原理是啥,这里不进行阐述)配置案例如下:<task:scheduled-tasks scheduler="scheduler"> <task:scheduled ref="...

2017-11-30 16:46:00 638

转载 Spring MVC 文件上传

一如既往记录下常用而又容易忘记的东西,本篇博文主要针对Spring MVC是如何上传文件的。以下记录两种上传方法并针对案例进行记录。(有关spring mvc其他配置省略)1、使用Spring MVC 上传文件必须配置文件解析器,如下: <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes --&g...

2017-09-24 14:27:00 139

转载 简单工厂设计模式--Java设计模式(一)

一 概念:  简单工厂模式就是通过一个工厂类根据参数动态创建对应的类。二 案例  我们以汽车作为例子,在现实生活中汽车只是一个抽象的产品,其中有很多类型的汽车才是具体产品,如奔驰、宝马、保时捷等等(当然每个品牌下还有各种版本,这就不做讨论了,假设每个品牌就对应一种车)。简单类图如下:当我们去综合类型的店买车要试开车时,销售员可能最简单直接的方法就是直接拿出他们最畅销的车子...

2017-08-05 11:30:00 64

转载 Spring MVC 以.html为后缀名访问获取数据,报406 Not Acceptable错误。

如题,最近以spring mvc作为后台框架,前端异步获取数据时(.html为后缀名的访问方式),报406 Not Acceptable错误。当初都不知道啥原因,前后台都没报错就是返回不了数据,于是查了下http 406响应码:406 (SC_NOT_ACCEPTABLE)表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。下面请看出错的操作流程及代码:1、先配...

2017-07-22 14:33:00 166

转载 对于所有对象都通用方法的解读(Effective Java 第三章)

这篇博文主要介绍覆盖Object中的方法要注意的事项以及Comparable.compareTo()方法。一、谨慎覆盖equals()方法  其实平时很少要用到覆盖equals方法的情况,没有什么特殊情况最好是使用原有提供的equlas方法。因为覆盖equals()方法时要遵循一些通用的约定之外,在与hash相关的集合类使用时,就必须要覆盖hashCode()方法了(第二点会强调...

2017-07-13 16:50:00 96

转载 如何创建和销毁对象(Effective Java 第二章)

最近有在看Effective Java,特此记录下自己所体会到的东西,写篇博文会更加的加深印象,如有理解有误的地方,希望不吝赐教。这章主题主要是介绍:何时以及如何创建对象,何时以及如何避免创建对象,如何确保他们能够适时的销毁,以及如何管理对象销毁之前必须进行的清理动作。下面我会根据书中内容+例子总结:一、考虑用静态工厂方法代替构造器(体现了如何创建对象、避免创建对象)  如何...

2017-07-07 15:09:00 108

转载 Java web中常见编码乱码问题(二)

根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例:  案例分析:  2、输出流写入内容或者输入流读取内容时乱码(内容中有中文)  原因分析:    a、 如果是按字节写入或读取时乱码,应该先检测系统编码是什么样的,看看是否支持中文编码的字符集。     System.out.println(System.getProperty("fi...

2017-06-10 17:01:00 97

转载 Java web中常见编码乱码问题(一)

  最近在看Java web中中文编码问题,特此记录下。  本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法:一、常见编码方式:    1、ASCII 码       众所周知,这是最简单的编码。它总共可以表示128个字符,0~31是控制字符如换行、回车、删    除等,32~126是打印字符,可以通过键盘输入并且能够显示出来的。    ...

2017-06-06 10:49:00 2565

转载 垃圾收集器与内存分配策略

垃圾收集器与内存分配策略一、GC收集器1、GC回收需要思考的三件事:a) 如何判断哪些内存需要回收?b) 用什么回收?c) 什么时候进行回收?以下分别针对这个几个问题进行说明。问题1:如何判断哪些内存需要回收?判断方法有两种(HotSpot默认采用第二种):1.引用计数算法给对象添加一个引用计数器,每当一个地方引用它时,计数器值就加1;当引用失效时...

2016-12-04 10:59:00 47

转载 Java运行时数据区域

运行时数据区域Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是依赖用户线程的启动和结束而建立和销毁。如图1.1 程序计数器是一块内存比较小的空间。作用:用来标志当前线程所执行的字节码的行号指示器(即在字节码中添加编号)。在jvm中,字节码解...

2016-11-27 20:18:00 60

转载 Apache2.4+Tomcat7 集群

Apache2.4+Tomcat7 集群:1、下载并安装相对应的软件   apache下载地址:http://httpd.apache.org/这里使用apache2.4  tomcat下载地址:http://tomcat.apache.org/这里使用tomcat72、配置Apache   a、下载mod_jk.so放到Apache根目录下的modules文...

2015-12-23 17:02:00 78

转载 highcharts 从后台动态改变数据

//columnChart 图表对象,创建示例就展示了。 var series = this.columnChart.series; while(series.length > 0) { series[0].remove(false); //先清空 } ...

2015-12-23 16:46:00 142

转载 MapperScannerConfigurer不 property-placeholder

关于org.mybatis.spring.mapper.MapperScannerConfigurer不支持 property-placeholder 参考了http://www.oschina.net/question/188964_32305,才解决了自己的问题。先注释红色部分,我是之前写的。然而就会产生错误,说找不到${driverClassName}java.lang...

2015-12-23 16:45:00 83

转载 IOException while loading persisted sessions:

严重: IOException while loading persisted sessions: java.io.EOFExceptionjava.io.EOFExceptionat java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)at java.io.Objec...

2015-12-23 16:44:00 98

转载 关于this问题

对于关键字this,其实很好理解,谁调用我就指向谁。下面举个例子说明:其实这也是在学习闭包中的一个案例:var name = "The window";var obj = { name : "The Object", getNameFunc : function(){ retur...

2015-12-23 16:42:00 62

空空如也

空空如也

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

TA关注的人

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