java
李登春
我想有一所房子,面朝大海,春暖花开, 百兆宽带,能叫外卖,快递直达,不还房贷。
展开
-
堆内存和堆外内存(又名直接内存)比较
堆内存根据生命周期进行分而治之,分区之后可以提高JVM垃圾收集的效率,更好地回收为了更好地分配。如果在堆中无法分配内存,并且堆也无法再扩展时,将会抛出OutOfMemoryError异常。http://blog.csdn.net/qq_17612199/article/details/52316719HeapByteBuffer与DirectByteBu转载 2017-07-13 17:08:41 · 1318 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时...转载 2018-10-11 10:31:51 · 126 阅读 · 0 评论 -
java实现生产者-消费者
前言生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满时,生产者阻塞。现在用四种方式来实现生产者消费者模型原文:https://juejin.im/entry/596343686fb9a06bbd6f888cwait()和notify()方法的实现...转载 2018-11-09 13:56:42 · 136 阅读 · 0 评论 -
jvm监控工具-快照分析工具
jconsole 带简单GUI界面,只能观察,看不出细节;推荐使用 jvisualvm,带GUI界面,还能看内存和占用内存的数据;分析dump工具:jprofiler,IBM-heapanalyzer,eclipse-memory analyzer...原创 2018-11-06 20:45:04 · 1059 阅读 · 0 评论 -
jvm内存性能分析-dump
一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore,或java dump)。我们可以这么理解:heap dump记录内存信息的,thread du...转载 2018-11-02 19:36:30 · 11902 阅读 · 0 评论 -
spring boot devtools遇到的坑
背景: 项目中用到了spring boot devtools实现本地项目热部署,很方便;上线之后压测发现有些不乐观,服务的内存一直不能释放,看GC的log,回收了也不好使;问题排查: dump下来jvm快照文件.hprof,使用JProfiler和IBMAnalyzer工具分析,发现并没有特殊大的地方占用内存; 于是在本地使用JMeter工具压测,用JVisualVM...原创 2018-11-07 11:39:42 · 2954 阅读 · 1 评论 -
fastjson JSONArray自动按照字母排序解决方式
解析时增加:Feature.OrderedField 即可原创 2018-11-15 18:28:53 · 5582 阅读 · 0 评论 -
Java Comparable Comparator 区别
java提到比较对象,那就脱离不开 Comparable Comparator 这俩接口;我们知道这两个接口都可以实现我们的功能,但是有什么区别呢:Comparable: compareToComparator: compare使用:区别: 可以看到实现Comparable接口需要侵入到本身的实体类中,而实现Comparator则不需要侵入,与被比较的类...原创 2018-11-16 17:00:06 · 132 阅读 · 0 评论 -
ThreadLocal
原创文章,转载请务必将下面这段话置于文章开头处(保留超链接)。本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ThreadLocal解决什么问题由于 ThreadLocal 支持范型,如 ThreadLocal< StringBuilder >,为表述方便,后文用 变量 代表 ThreadLocal 本身,而用...转载 2018-11-29 17:01:46 · 501 阅读 · 0 评论 -
java finally return执行顺序
很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到...转载 2018-09-18 11:22:09 · 215 阅读 · 0 评论 -
GC算法
java-垃圾回收-GC转载 2017-07-08 11:40:21 · 247 阅读 · 0 评论 -
java-GC分析
java-GC分析转载 2017-07-08 11:45:51 · 304 阅读 · 0 评论 -
jvm内存结构
java-jvm内存结构转载 2017-07-08 11:32:05 · 208 阅读 · 0 评论 -
java类加载
java类加载器转载 2017-07-08 14:13:42 · 272 阅读 · 0 评论 -
CentOS 安装 JDK
java版本:java version "1.7.0_79"1. 将jdk1.7.0_79.tar.gz拷贝到目录/opt/2. 解压cd /opt;tar xzvf jdk1.7.0_79.tar.gz3. 设置环境变量在/etc/profile文件末尾添加内容:export JAVA_HOME=/opt/jdk1.7.0_79export JRE_H原创 2017-12-07 17:34:23 · 200 阅读 · 0 评论 -
java冒泡排序算法
原理:通过比较给定数组中两个相邻的元素大小来进行位置互换,达到排序的目的;代码:/** * 升序 * @param arr * @return */ public static int[] bubblingSort(int[] arr) { int tmp = 0; for (int i=1; i<arr.len...原创 2018-04-07 11:01:37 · 127 阅读 · 0 评论 -
java直接插入排序算法
原理:给定数组arr假设前两个元素已经排序完成,然后第三个元素和已经排好序的进行比较,符合条件并插入,直到最后一个元素比较完成,插入到排序队列中;代码:/** * 升序 * @param arr * @return */ public static int[] insertionSort(int[] arr) { int tmp = ...原创 2018-04-07 11:13:04 · 365 阅读 · 0 评论 -
java二分查找
原理:二分查找的基础是已有数组是有序的,将有序数组从中间分成两个部分,低值和高值,通过比较指定数值与中间值得大小来确定指定值属于低值部分还是高值部分,若指定数值大于中间值则去高值数组中继续查找,若指定数值小于中间值则去低值数组中继续查找,若相等则直接返回;代码:/** * 二分查找 - 循环方式 * @param arr * @param target * ...原创 2018-04-07 12:06:17 · 152 阅读 · 0 评论 -
二叉树遍历
二叉树的遍历分为以下三种:先序遍历:遍历顺序规则为【根左右】中序遍历:遍历顺序规则为【左根右】后序遍历:遍历顺序规则为【左右根】什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右孩子;举个例子,看下图(图从网上找的):先序遍历:ABCDEFGHK中序遍历:BDCAEHGKF后序遍历:DCBHKGFEA以中序遍历为例:中序遍历的规则是【左根右】,我们从root节点A看起;此时A是根节点,遍历A...转载 2018-04-07 12:30:13 · 157 阅读 · 0 评论 -
mapstruct lombok结合使用
maven pom.xml配置<!-- lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.8</version&a原创 2018-07-11 10:35:07 · 8651 阅读 · 3 评论