自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java线程池(1)——基本使用

引言在阿里巴巴Java开放手册中有这么一条:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。如果是不清楚Java线程池基本结构的同学看到这条强制约定可能会感到云里雾里。而本文将通过介绍Java线程池的基本使用与结构,让同学们能够抓住其中的来龙去脉。概述...

2019-03-26 10:13:42 185

原创 RabbitMq(2)——Federation

1. Federation是什么Federation是一个RabbitMQ官方插件。Federation直译过来是联邦,它的设计目标是使 RabbitMQ 在不同的 Broker 节点之间进行消息传递而无须建立集群。那么它到底有什么用呢?我们可以从一个实际场景入手:有两个服务分别部署在国内和海外,它们之间需要通过消息队列来通讯。很明显无论RabbitMQ部署在海外还是国内,另一方一定得...

2019-03-25 09:37:17 1117

转载 JVM(1)——Java内存区域

概述不同于C++,对于Java程序员来说,在虚拟机自动内存管理机制下,不需要显式的去申请和释放内存,这无疑在开发中节省了大量的精力。但所谓成也萧何败也萧何,正因为Java的自动化内存管理机制,导致一旦出现内存泄漏和内存溢出,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。因此本文将主要介绍:Java运行时数据区域的划分Java 对象的创建过程对象的访问定位的两...

2019-03-25 09:26:38 127

原创 设计模式(2)——责任链模式

责任链模式——定义什么是责任链模式呢?我们可以先来看一个场景:公司有三个角色,普通员工、主管、总监。普通员工要请三天内的假只要上报主管就行,可如果要三天以上可能主管就没办法审批,就得把请假上报到总监。那么这段逻辑可以用以下代码体现:// 返回审批结果 public void getResult(Integer days) { if ("主管".equals(thi...

2019-03-17 21:43:12 133

转载 在浏览器中输入url地址->>显示主页的过程

总的来说会有以下几个过程:DNS解析DNS解析就是把一个域名转换成一个IP地址。那么为什么要DNS解析呢?因为网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。比如,我们现在要解析www.qq.com这个域名。操作系统会先检查自己本地的hosts文件是否有这...

2019-03-10 20:21:21 885

原创 Java回调

什么是回调首先要说明回调并不是什么复杂的技术,实际上回调只是个很简单的概念。举个例子:你去打印文件,可是打印机不能马上打出你要的文件,你可以先去干别的事,并且设定打印机如果打印好了就响铃提示。这个时候就用到了回调,因为我们并不知道对方什么时候会做完,而是对方做完了来主动找我们。代码示例具体到代码上是怎么样的呢?这里只给个比较简单的例子,实际生产中完全可以有更优雅的代码。首先我们要定义一...

2019-03-10 20:12:28 84

原创 jenkins+maven+svn自动化部署

jenkins+maven+svn自动化部署实现自动化部署主要有两步:安装Jenkins配置需要部署的项目本篇主要通过jenki+maven+svn的搭配实现自动化部署。安装Jenkins启动Jenkins前提环境:maven、tomcat、jdk从Jekins官网下载war,将war部署到tomcat上去,并启动访问网址。第一次启动Jenkins时,出于安全考虑,Jenk...

2019-03-08 14:29:12 170

原创 ThreadLocal初探

ThreadLocal什么是ThreadLocal首先ThreadLocal是一个数据结构,它内部有点像Map,也是key-value,其中key是线程名。先来看看下面的例子:ThreadLocal<String> local = new ThreadLocal();local.set("Hello");String value = local.get();在线程1中初...

2019-03-04 19:05:46 114

原创 Mysql索引

Mysql索引为什么要使用索引很明显使用索引的原因就是为了检索数据的时间大大减少使用唯一性索引能保证数据的唯一性索引为什么能提高查询速度这我们得先从Mysql的数据结构看:Mysql的数据都是存储在一种叫页的数据结构中:当有新纪录插入时,会发生如下的过程变化:需要知道的是每个数据页之间会形成双向链表单个数据页之间的记录会形成单向链表因此,如果有这么一条SQL语句s...

2019-02-28 22:10:46 110

原创 Maven安装

安装步骤安装安装Maven之前,首先要正确安装JDK,JDK确认无误后,首先进入Apache maven官网:https://maven.apache.org/,下载完成之后上传至服务器,我们这里自定义安装位置为/usr/local/maven,安装命令操作如下:tar -xvzf apache-maven-3.3.9-bin.tar.gzmkdir /usr/local/maven...

2019-02-27 21:23:50 78

转载 消息队列之RabbitMQ

RabbitMQRabbitMQ安装(待完善)RabbitMQ基本模式(待完善)RabbitMQ的使用场景也就是为什么在项目中使用消息队列,可以结合自身项目来谈,主要有以下几个应用:复杂系统的解耦复杂链路的异步调用瞬时高峰的削峰处理如何保证全链路消息百分百不丢失首先要搞清楚消息丢失可能会出现在什么环节:生产者投递到消息队列,因网络原因投递失败;消息队列服...

2019-02-26 22:43:12 305

原创 Java虚拟机

一、1.程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。      2.处于线程独占区二、1.虚拟机栈。描述的是Java方法执行的动态内存模型         栈帧          局部变量表          outofMemory,stack三、堆      存放对象实例      垃圾收集器管理的主要区域       新生代,老年代       -Xms -...

2018-03-29 14:22:27 94

转载 java内存管理--如何减少GC的次数

1.对象不用时最好显示置为NULL    一般而言,为NULL的对象都会被作为垃圾处理,所以将不用的对象置为NULL,有利于GC收集器判定垃圾,从而提高了GC的效率。2.尽量少使用System,gc()    此函数建议JVM进行主GC,会增加主GC的频率,增加了间接性停顿的次数。3.尽量少使用静态变量    静态变量属于全局变量,不会被GC回收,他们会一直占用内存4.尽量

2017-09-29 13:59:42 3861

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)

深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)

2018-04-09

空空如也

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

TA关注的人

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