
java
文章平均质量分 53
MiniCTO
多努力一点,多赚点钱,多运动。
展开
-
深入理解JVM
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。 一般Java在内存分配时会涉及到以下区域:寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用原创 2016-09-13 23:26:04 · 482 阅读 · 0 评论 -
springboot in docker
文章转自http://xiaoqiangge.com/aritcle/1500011474745.html现在docker越来越流行,似乎不管什么东西都想往docker里面放,像kafka in docker,mysql in docker,nginx in docker,这篇文章记录下springboot in docker。 文章内容需要你对docker容器技术有一定的了解,如docker转载 2017-07-14 13:55:10 · 592 阅读 · 0 评论 -
Git配置.gitignore规则
在Git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法,这个文件每一行保存了一个匹配的规则,例如:*.a # 忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/ # 忽略 build/ 目录下的所有文件doc/*.txt # 会忽原创 2017-06-28 11:40:06 · 1324 阅读 · 0 评论 -
subic项目总结(一)-quartz库表
JobStore负责跟踪所有你给scheduler的“工作数据”:jobs, triggers, calendars, 等。RAMJobStoreRAMJobStore 是使用最简单的也是最高效(依据CPU时间)的JobStore 。RAMJobStore 正如它名字描述的一样,它保存数据在RAM。这就是为什么它是配置最简单的也是最高效的原因。缺点是你的应用结束之后所有的数据也丢失了,这意味着RAM转载 2017-08-25 10:35:00 · 392 阅读 · 0 评论 -
subic项目总结(二)-quartz中的三种JobStore
JobStore负责跟踪所有你给scheduler的“工作数据”:jobs, triggers, calendars, 等。RAMJobStoreRAMJobStore 是使用最简单的也是最高效(依据CPU时间)的JobStore 。RAMJobStore 正如它名字描述的一样,它保存数据在RAM。这就是为什么它是配置最简单的也是最高效的原因。缺点是你的应用结束之后所有的数据也丢失了,这意味着RAM原创 2017-09-08 17:59:25 · 1701 阅读 · 0 评论 -
subic项目总结(三)-修改quartz默认连接池
quartz默认使用的是c3p0的连接池,记得有篇文章测试过c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool这四种连接池的性能,大致给出的测试数据为Druid >Tomcat Jdbc Pool >c3p0 >Proxool,以上仅供参考。最近项目老是报错,甚是让人烦恼,具体错误日志:The last packet successfully received from t转载 2017-09-08 18:00:25 · 9198 阅读 · 7 评论 -
MongDB副本集(一),SpringBoot链接Mongo副本集
前两天同的一个线上程序连接mongo突然出现了如下错误,org.springframework.dao.DataAccessResourceFailureException: Timed out after 30000 ms while waiting for a server that matches WritableServerSelector. Client view of cluster s原创 2017-09-26 23:37:50 · 5643 阅读 · 2 评论 -
List,Set和Map详解及其区别和他们分别适用的场景
Java中的集合包括三大类,它们是Set(集)、List(列表)和Map(映射),它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList,Map的实现类主要有HashMap和TreeMap。Collection是最基本的集合接口,声明了适用于JAVA集合的通用方法,list和转载 2017-09-20 10:20:06 · 562 阅读 · 0 评论 -
Spring 下默认事务机制中@Transactional 无效的原因
Spring中 @Transactional 注解的限制 1. 同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效If you use (default) Spring Proxy AOP, then all AOP functionality provided by Spring (like @Transational) will on转载 2017-09-20 14:33:51 · 860 阅读 · 0 评论 -
SpringBoot RedisTemplate乱码解决方案
使用SpringBoot RedisTemplate保存数据出现乱码,如下,127.0.0.1:6379> keys * 1) "\xac\xed\x00\x05t\x00\x04pass" 2) "\xac\xed\x00\x05t\x00\x04name" 3) "name" 解决方法如下,@Autowiredprivate RedisTemplate redisTemplate原创 2017-12-11 17:23:24 · 5698 阅读 · 0 评论 -
基于 Redis 实现分布式应用限流
原文链接:http://xiaoqiangge.com/aritcle/1513004492550.html 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案,参考《redis in action》 实现了一个jedis版本的,都属于业务层次限制。 实际场景中转载 2017-12-12 10:17:42 · 7852 阅读 · 0 评论 -
ranong项目总结-HttpClient-Timeout设置(一)
httpclient在做数据获取、发送请求必须设置超时机制,如果没有设置超时时间,如果后端服务发生了阻塞、延迟那么这个连接就会回收不及时,httpclient默认的超时时间为24小时。这里主要介绍了httpclient是4.5.2的版本设置方式,低于这个版本的配置方式就大不一样了。httpclient提供了3中设置超时方式,分别是 - 从连接池获取连接超时(setConnectionReques原创 2017-02-24 15:03:38 · 1324 阅读 · 0 评论 -
baler项目总结-DelayQueue队列使用(一)
先看一段定义, Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部 是延迟期满后保存时间最长的 Delayed 元素。如果延迟都还没有期满,则队列没有头部,并且 poll 将返回 null。场景关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。缓存。缓存中的对象,超过了空闲时间,需要从缓存中移出。任务超时处理。在网络协议滑动窗口原创 2017-02-22 14:53:25 · 615 阅读 · 0 评论 -
为什么要使用SLF4J而不是Log4J
每一个java程序员都知道日志对于任何一个java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging、apache log4j、logback,但如果你还不知道slf4j(simple logging facade for java)的话,那么是时候去在你项目中学习使用slf4j了。slf4j不同于其他日志类库,与其它有很大的不同。s原创 2016-09-26 17:56:26 · 5998 阅读 · 0 评论 -
logback.xml 常用配置详解
最近一个项目中用到logback来配置日志,网上找来找去都太零碎,而且重复太多,没有一个全面的介绍怎么配置的,这里我就整理一下。根节点包含的属性scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟转载 2016-11-07 17:49:10 · 591 阅读 · 0 评论 -
Spring Boot 启动加载数据 CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。为了解决这样的问题,spring Boot为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。很简单,只需要一个类就可以,无需其他配置,创建实现接口 CommandLineRunner 的类。package org.springboot.sample.runner;import org.sp转载 2016-10-20 11:58:52 · 571 阅读 · 0 评论 -
newScheduledThreadPool创建可间隔时间执行的线程池
newScheduledThreadPool,创建一个可间隔时间执行的线程池,并且可以指定数量,以前确实没这么写过,都是写while循环,看来后面我要恶补一下线程池的技术了,下面是我抽出来的部分代码。package ess.tester;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecu原创 2016-10-20 12:42:45 · 3882 阅读 · 0 评论 -
初次使用gradle(一)
最近公司,工作环境换了,并且开发中使用的技术也换了。就拿这个gradle来说吧,以前用的是maven进行项目构架、打包、自动化部署,用的还不熟,新公司又换了gradle,只能说现在的技术更新的太快了,我觉得一个月不关注外界的新技术,你就时代脱节了。下面我们来步入正题,关于gradle的一些特性、和maven的对比区别、以及其他各个什么优点我在这里就不说了,作为初次使用,我也没搞清楚,大家可以自行到原创 2016-10-08 00:04:17 · 691 阅读 · 0 评论 -
各种负载均衡选型对比
各种负载均衡选型对比原创 2016-10-08 16:11:25 · 1672 阅读 · 2 评论 -
安装elastic
以前没有接触过elastic,最近公司需要用,因此就开始自己尝试着安装,内容比较初级,有经验的朋友可以可以忽略。下载elastic下面是2.4版本的下载地址,https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.0/elasticsearch-2.原创 2016-10-31 23:57:52 · 836 阅读 · 0 评论 -
CountDownLatch和CyclicBarrier的区别
在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用。那如果只是这么简单的话,我觉得CyclicBarrier简单命名为ResetableCountDownLatch好了,显然不是的。我的理解是,要从他们的设计目的去看这两个类。javadoc里面的描述是这样的转载 2016-12-12 19:22:22 · 536 阅读 · 0 评论 -
apache commons Java包简介
一、Commons BeanUtils 说明:针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。二、Commons CLI 说明:这是一个处理命令的工具。比如main方法输入的string[]需要解析。你可以预先定义好参数的规则,然后就可以调用CLI来解析。三、Commons Codec 说明:这个工具是用来编码和解码的,包转载 2017-01-04 18:13:39 · 516 阅读 · 0 评论 -
推荐一个整理非常强大的Java知识图谱
一个很好、很全面的知识图谱。图谱地址,猛戳这里转载 2017-02-22 10:51:19 · 4232 阅读 · 1 评论 -
Arthas使用指南
原文链接:http://xiaoqiangge.com/aritcle/1538272842690.htmlArthas 是基于 Greys 进行二次开发的全新在线诊断工具,利用Java6的Instrumentation特性,动态增强你所指定的类,获取你想要到的信息, 采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,让你在定位、分析诊断问题时看每一个操作都看起来是那么的 666A...转载 2018-09-30 10:27:14 · 21932 阅读 · 0 评论