
java
文章平均质量分 63
三千大千世界
这个作者很懒,什么都没留下…
展开
-
操作系统知识汇总
磁盘顺序写快的原因?磁盘顺序写入 - 知乎原创 2021-11-10 15:24:23 · 23 阅读 · 0 评论 -
dmesg格式化脚本
#!/bin/sh uptime_ts=`cat /proc/uptime | awk '{ print $1}'` #echo $uptime_ts dmesg | awk -v uptime_ts=$uptime_ts 'BEGIN { now_ts = systime(); start_ts = now_ts - uptime_ts; #print "system start time seconds:", start_ts; #pr.转载 2020-11-06 14:37:07 · 210 阅读 · 0 评论 -
zebra-dao和mybatis集成分页查询报错排查
------出问题的版本mybatis:3.4.5zebra-dao------正常工作的版本mybatis:3.2.5zebra-dao---------------------------- 开始分析1.dao层的方法:void selectAllByPage(@Param("record") XXXDTO record, @Param("pageModel")...原创 2019-10-17 21:13:09 · 390 阅读 · 0 评论 -
进程被os杀死后,检查系统日志的命令
dmesg | egrep -i -B100 'killed process'或者直接查找文件内容egrep -i 'killed process' /var/log/messages原创 2019-10-16 18:51:38 · 771 阅读 · 0 评论 -
jvm command 小计
供自己阅读,不周到之处 请各位多多指教 ----- 查看进程 jps 参数:-q:只显示pid-m:显示传递给main的参数-l: 显示完成package 或者 jar路径-v: 显示设置的虚拟机参数-V: 跟直接用jps显示的一样只玩意只能显示当前用户下的pid,想查看其他用户的进程,还是用Linux的ps吧 ---------原创 2016-05-09 17:30:51 · 560 阅读 · 0 评论 -
junit的test 方法执行两次
junit原创 2016-06-22 12:23:33 · 3448 阅读 · 0 评论 -
redisson锁笔记
redisson version:2.1.4去查看源码的原因:以前简单理解的基于redis的锁,就是去setnx一个key,然后设置一个过期时间。多线程的时候,谁能set成功,说明谁获取锁成功。然后解锁操作就是删除之前的key或者等待过期。现在用了下redisson的锁,开始也以为是这样的,认为其他线程也能强制解锁。结果测试发现不行。源码:获取锁<span...原创 2016-09-03 12:39:53 · 778 阅读 · 0 评论 -
java8并发编程实战-part1
技术版本jdk: 1.8前言网上帖子千千万,咱也一起炒冷饭.CompletableFuture是用于构建异步编程的基础,同时它继承自Future和CompletionStage, CompletionStage这个接口是一个promise,它表示这个计算最终会完成。Future的不足1.不能手动设置操作完成e.g. 开单独的线程通过rpc调一个接口返回一些数据,假如下游接口...原创 2019-05-10 08:45:08 · 675 阅读 · 0 评论 -
java8并发编程实战-part2
java8异步编程实战原创 2019-05-10 08:48:37 · 305 阅读 · 0 评论 -
eureka Server Self Preservation Mode(自我保护模式) 说明
1.服务的正常退出流程。eureka要求当client退出的时候,它显示的调用"注销"接口. 进行优雅退出.2.self preservation mode是一种保护/容错机制它主要是用来避免由于网络抖动或者故障带来的连接失败,看下面2种情况。2.1 网络故障,或者若网,导致server没有收到client的心跳信息,这时候其实client服务是活着的2.2 及时client和serv...原创 2019-05-10 17:28:56 · 1369 阅读 · 0 评论 -
TLAB简单介绍
TLAB(thread-local-allocation-buffer)简单介绍原创 2019-05-15 17:04:02 · 4568 阅读 · 2 评论 -
给定一个正整数,实现一个方法来求出离该整数最近的大于自身的“换位数”
算法题目:给定一个正整数,实现一个方法来求出离该整数最近的大于自身的“换位数”。什么是换位数呢?就是把一个整数各个数位的数字进行全排列,从而得到新的整数。例如53241和23541。小灰也不知道这种经过换位的整数应该如何称呼,所以姑且称其为“换位数”。题目要求写一个方法来寻找最近的且大于自身的换位数。比如下面这样:输入12345,返回12354输入12354,返回1243...原创 2019-09-04 16:44:10 · 508 阅读 · 0 评论 -
activemq cluster masterslave 配置
Activemq集群主备简单配置原创 2016-05-25 14:03:20 · 1184 阅读 · 0 评论 -
json小计
{"count":0,"name":"hehe"}1.处理这个的时候,转成Map 的时候,0会变成0.0 ,如果后续处理当成int 进行Integer.valueOf 这类操作会报错。因为它内部处理的时候,发现0是NUMBER,就调用JsonReader.nextDouble 方法了。fastjson和jackson不存在上述问题。2.如果转成一个对象,那么也不会存在这种问题。原创 2016-04-27 22:14:23 · 422 阅读 · 0 评论 -
Class.getResource vs ClassLoader.getResource .
这两个方法还是略有区别的, 以前一直不加以区分,直到今天发现要写这样的代码的时候运行错误, 才把这个问题澄清了一下。基本上,两个都可以用于从 classpath 里面进行资源读取, classpath包含classpath中的路径和classpath中的jar。 两个方法的区别是资源的定义不同, 一个主要用于相对与一个object取资源,而另一个用于取相对于classpath的转载 2012-06-01 17:59:25 · 597 阅读 · 0 评论 -
容器的一点理解
1,什么是容器;2,为什么需要特定的容器。 第一个问题。容器,你可以理解为“具备满足特定需求条件的环境”。怎么理解这句话呢?打个比方,生存是每个人的需求,而地球就是我们生存的环境,因为它具备生存的条件---氧气。如果换个环境到火星上去,我们就挂了。同样的,运行java程序,编译解释java源文件是需求,而JVM就是这个环境,因为它具备编译解释器。所以说,容器其实只是一个概念,是无形的转载 2012-11-15 11:39:43 · 362 阅读 · 0 评论 -
ConcurrentHashMap 高并发性的实现机制
Java 内存模型由于 ConcurrentHashMap 是建立在 Java 内存模型基础上的,为了更好的理解 ConcurrentHashMap,让我们首先来了解一下 Java 的内存模型。Java 语言的内存模型由一些规则组成,这些规则确定线程对内存的访问如何排序以及何时可以确保它们对线程是可见的。下面我们将分别介绍 Java 内存模型的重排序,内存可见性和 happens-转载 2014-02-21 20:46:58 · 509 阅读 · 0 评论 -
Java 垃圾回收策略调优
VM参数调优是一个很头痛的问题,可能和应用有关系,下面是本人一些调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2CPU,4G内存,dell2950服务器,网站是shedewang.com,新手可能觉得这文章没有用。 一:串行垃圾回收,也就是默认配置,完成10万request用时153秒,JVM参数配置如下 $JAVA_ARGS .= "转载 2014-02-23 22:36:57 · 674 阅读 · 0 评论 -
成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开发经验。如果你曾经想过如何正确的选择GC算法,那意味着你已经完全理解你所开发的应用的特点。当转载 2014-03-05 16:10:01 · 481 阅读 · 0 评论 -
成为Java GC专家系列(3) — 如何优化Java垃圾回收机制
本文是成为Java GC专家系列文章的第三篇。在第一篇《成为JavaGC专家Part I — 深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,以及这5种类型对于应用性能的影响。在第二篇《成为JavaGC专家Part II — 如何监控Java垃圾回收机制》,我解释了JVM实际上是如何执行转载 2014-03-05 16:14:38 · 523 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a = 1;b = a;写一个变量之后,再读这个位置。写后写a = 1;a = 2;写一个变量之后,再写这个变量。读后写a = b;b = 1;读一个变量之后转载 2014-03-07 13:36:56 · 573 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之转载 2014-03-07 13:46:33 · 585 阅读 · 0 评论 -
深入理解Java内存模型(五)——锁
锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1转载 2014-03-07 13:42:26 · 549 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程转载 2014-03-07 13:39:48 · 592 阅读 · 0 评论 -
深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代码转载 2014-03-07 13:45:29 · 580 阅读 · 0 评论 -
Java:对象的强、软、弱和虚引用
1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。图1⑴强引用(转载 2014-03-02 14:45:54 · 503 阅读 · 0 评论 -
成为JavaGC专家Part II — 如何监控Java垃圾回收机制
本文是成为Java GC专家系列文章的第二篇。在第一篇《深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,以及这5种类型对于应用性能的影响。在本文中,我将解释JVM到底是如何执行垃圾回收处理的。什么是GC监控?垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明转载 2014-03-05 16:11:04 · 608 阅读 · 0 评论 -
为什么String要设计成不可变的?
Original topic : http://www.programcreek.com/2013/04/why-string-is-immutable-in-java/String is an immutable class in Java. An immutable class is simply a class whose instances cannot be modi转载 2015-06-29 10:01:17 · 459 阅读 · 0 评论 -
jvm为什么有2个survivor
个人笔记,欢迎高手拍砖。在gc的过程中会产生碎片,保持一个survivor是空的状态,当eden 和 第一个survivor经过gc之后,直接把存活的object copy到空的survivor, 效率更高(相比压缩算法)。原创 2015-06-11 10:43:36 · 749 阅读 · 0 评论 -
java 字节流与字符流的区别 .
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码转载 2012-06-29 14:54:45 · 389 阅读 · 0 评论