JAVA相关技术
文章平均质量分 81
先说好不能骂我
这个作者很懒,什么都没留下…
展开
-
关于怎么解决java.lang.NoClassDefFoundError错误
文章来源https://www.cnblogs.com/xyhz0310/p/6803950.html五一在部署新的统一登录时,遇到这样一个问题:很容易把java.lang.NoClassDefFoundError和java.lang.ClassNotfoundException这两个错误搞混,事实上这两个错误是完全不同的。NoClassDefFoundError错误发生的原因No...转载 2020-01-08 09:24:07 · 1484 阅读 · 0 评论 -
java中实现序列化接口的意义
文章来源版权声明:本文为CSDN博主「Be a good programmer」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/xiaoxinxin123456789/article/details/835459461.一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做持久化。2.对象的...转载 2020-01-03 19:54:12 · 3050 阅读 · 0 评论 -
关于Java解压文件的一些坑及经验分享(MALFORMED异常)
文章来源作者:一枝花算不算浪漫链接:https://cloud.tencent.com/developer/article/1130020来源:腾讯云就在本周, 测试人员找到我说现上的需求文档(zip格式的)无法预览了, 让我帮忙看看怎么回事。这个功能也并不是我做的, 于是我便先看看线上日志有没有什么错误,果不其然, 后台果然报错了。java.lang.IllegalArgumen...转载 2019-12-31 16:30:37 · 5497 阅读 · 1 评论 -
为什么From/To space的大小几乎变成 0 了呢?
文章来源https://hllvm-group.iteye.com/group/topic/39440一、问题描述Attaching to process ID 26424, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.231-b11using t...转载 2019-12-17 09:20:46 · 3366 阅读 · 0 评论 -
JVM故障分析及性能优化系列
Java内存泄漏分析系列贼棒JVM故障分析及性能优化系列之一:使用jstack定位线程堆栈信息https://www.javatang.com/archives/2017/10/19/33151873.htmlJVM故障分析及性能优化系列之二:jstack生成的Thread Dump日志结构解析https://www.javatang.com/archives/2017/10/19...转载 2019-12-06 17:30:16 · 225 阅读 · 0 评论 -
jdk工具使用介绍系列
文章来源https://www.cnblogs.com/duanxz/p/4515437.html转载 2019-12-06 15:06:23 · 359 阅读 · 0 评论 -
jvm启动参数设置
文章来源https://blog.csdn.net/a718515028/article/details/86703186https://www.cnblogs.com/jack204/archive/2012/07/02/2572934.html1、jvm启动参数设置OOM异常时,自动生成dump文件-XX:+HeapDumpOnOutOfMemoryError -XX:Heap...转载 2019-11-28 19:10:24 · 2002 阅读 · 1 评论 -
Java学习:ConcurrentHashMap实现一个本地缓存
文章来源: https://www.cnblogs.com/parryyang/p/5779984.html本片文章不考虑效率问题,可以当做用来学习ConcurrentHashMap。ConcurrentHashMap融合了Hashtable和HashMap二者的优势。Hashtable是做了线程同步,HashMap未考虑同步。所以HashMap在单线程下效率较高,Has...转载 2018-03-06 08:47:04 · 4024 阅读 · 2 评论 -
HashMap详解
文章来源: 1 美团点评技术团队 Java 8系列之重新认识HashMap https://zhuanlan.zhihu.com/p/21673805 2 为什么一般hashtable的桶数会取一个素数http://blog.csdn.net/liuqiyao_01/article/details/14475159前言:文章主要说明HashMap相关内容,在学习之前...转载 2017-11-21 10:54:23 · 346 阅读 · 0 评论 -
Java多线程编程基础三(原子性,可见性和有序性)
文章引用: 1 https://www.jianshu.com/p/cf57726e77f2 2 https://blog.csdn.net/eff666/article/details/66473088当前文章可以结合下面链接一起了解一下: https://blog.csdn.net/u013412772/article/details/80107643在并发编程中,我们通常会遇转载 2018-04-27 16:18:40 · 24592 阅读 · 4 评论 -
原子性、内存可见性和重排序——重新认识synchronized和volatile
文章来源: Java多线程变成实战指南 1.5 p10一、原子性原子性操作指相应的操作是单一不可分割的操作。例如,对int变量count执行count++d操作就不是原子性操作。因为count++实际上可以分解为3个操作:读取变量count的当前值;拿count的当前值和1做加法运算;将加完后的值赋给count变量。在多线程环境中,非原子操作可能会受其他线程的干扰。比如,上述例子如果没原创 2018-04-27 14:31:14 · 760 阅读 · 0 评论 -
Java多线程编程基础二(CAS)
文章引用: 1 http://www.jb51.net/article/86192.htm 2 https://blog.csdn.net/u014034854/article/details/49310523 3 http://ifeve.com/compare-and-swap/ 4 https://blog.csdn.net/ls5718/article...原创 2018-04-24 12:26:02 · 258 阅读 · 0 评论 -
Java多线程编程基础一(基本线程机制、线程调度器、线程状态)
文章引用 1 java编程思想 21章 基本的线程机制 p653 2 http://www.jb51.net/article/105487.htm 3 https://zhidao.baidu.com/question/1542633956525518747.html一、基本的线程机制并发编程使我们可以讲程序划分为多个分离的、独立运行的任务。通过使用多线程...原创 2018-04-23 09:25:27 · 251 阅读 · 0 评论 -
面试:HashMap
文章引用: http://www.importnew.com/7099.html https://blog.csdn.net/niuwei22007/article/details/52005329HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,...原创 2018-04-06 16:26:04 · 211 阅读 · 0 评论 -
HashMap和Hashtable的区别
文章来源: http://www.importnew.com/7010.htmlHashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于J...转载 2018-04-06 17:08:30 · 213 阅读 · 0 评论 -
HashMap和HashSet的区别
文章来源: http://www.importnew.com/6931.htmlHashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让...转载 2018-04-06 17:14:52 · 133 阅读 · 0 评论 -
Comparable与Comparator浅析
文章来源: https://blog.csdn.net/u013256816/article/details/50899416/在翻阅TreeMap的源码,发现其键必须是实现Comparable或者Comparator的接口时产生了一些兴趣,比如在TreeMap中的put方法分别对Comparable和Comparator接口分别进行处理。那么疑问就来了,Comparable和Com...转载 2018-06-18 17:54:05 · 246 阅读 · 0 评论 -
HashMap 源码分析(构造方法+查找t)JDK1.8
文章来源: https://segmentfault.com/a/1190000012926722转载 2018-06-19 09:24:16 · 377 阅读 · 0 评论 -
HashMap 源码分析(删除+总结)JDK1.8
文章来源: 1 https://segmentfault.com/a/1190000012926722#articleHeader7 2 https://www.zhihu.com/question/20733617 3 https://tech.meituan.com/java-hashmap.html 4 https://www.zhihu.com/questio...转载 2018-06-20 20:19:26 · 1153 阅读 · 0 评论 -
HashMap的死循环(infinite loop)
文章来源: https://blog.csdn.net/andy296925354/article/details/52622417转载 2018-06-22 09:15:08 · 744 阅读 · 0 评论 -
Java虚拟机--方法区(运行时常量池)
文章引用: 深入理解Java虚拟机一 方法区描述方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已经被虚拟机加载的类信息/常量//静态信息/即时编译器编译后的代码等数据.虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却又一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分开来.对于习惯在HotSpot虚拟机上开发...原创 2018-07-15 11:38:20 · 10252 阅读 · 6 评论 -
Java多线程编程模式实战指南:Promise模式
文章来源: http://www.infoq.com/cn/articles/design-patterns-promise?utm_source=infoq&utm_campaign=user_page&utm_medium=link文章代码地址: https://github.com/Viscent/JavaConcurrencyPattern/一、...转载 2018-03-25 14:42:23 · 240 阅读 · 0 评论 -
Java多线程编程模式实战指南:Two-phase Termination模式
文章来源: http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-two-phase-termination?utm_source=infoq&utm_campaign=user_page&utm_medium=link文章代码地址: https://github.com/Vi...转载 2018-03-12 21:08:16 · 331 阅读 · 0 评论 -
系统运行缓慢、CPU较高、以及Full GC次数过多问题排查思路(linux)
参照:芋道源码对于使用java语言开发的项目,linux环境上出现项目访问响应较慢,影响了项目对外提供的服务运行,此时先将执行以下操作,保证服务正常的运行:导入jstack和内存信息dump文件重启服务运行先保证线上项目提供服务正常运行。出现以上情况的原因主要有两种:代码中某个位置读取数据量较大,导致分配到JVM内存被耗尽,从而导致Full GC次数过多,系统运行缓慢代码中出...转载 2019-10-08 09:18:35 · 640 阅读 · 0 评论 -
Linux下jmap工具出现sun.jvm.hotspot.debugger.DebuggerException解决方法
参照连接https://stackoverflow.com/questions/2913948/jmap-cant-connect-to-make-a-dump1 问题描述Attaching to process ID 12499, please wait...Error attaching to process: sun.jvm.hotspot.debugger.DebuggerEx...原创 2019-09-21 15:30:04 · 21899 阅读 · 4 评论 -
关于Java注解
原创 2019-09-19 14:40:32 · 107 阅读 · 0 评论 -
Java软引用究竟什么时候被回收
文章来源https://www.jianshu.com/p/e46158238a77转载 2019-08-05 09:03:37 · 1826 阅读 · 0 评论 -
Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT GCT)
文章来源:https://blog.csdn.net/yuxin6866/article/details/77718748一 GC涉及的变量S0C:年轻代中第一个survivor(幸存区)的容量 (kb)S1C:年轻代中第二个survivor(幸存区)的容量 (kb)S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (kb)S1U:年轻代中第二个survivor(幸...转载 2019-03-27 20:28:25 · 3241 阅读 · 0 评论 -
使用jstack定位线程堆栈信息
文章来源:https://www.javatang.com/archives/2017/10/19/33151873.html (爪哇堂)一 基本概念在对Java内存泄漏进行分析的时候,需要对jvm运行期间的内存占用、线程执行等情况进行记录的dump文件,常用的主要有thread dump和heap dump。thread dump 主要记录JVM在某一时刻各个线程执行的情况,以栈的...转载 2019-01-15 20:12:48 · 789 阅读 · 0 评论 -
JDK工具无法获取dump
参照文章来源:http://www.cnblogs.com/qiumingcheng/p/4915739.html一 问题描述:CentOS 7.2版本,同个JDK 1.8版本,启动tomcat后,使用jps无法获取本机Java进程。二、jps工作原理java进程启动时,若没有指定 -Djava.io.tmpdir参数,则会默认新建 /tmp/hsperfdata_${user_n...原创 2019-01-15 17:45:44 · 1703 阅读 · 0 评论 -
JVM Heap Dump(堆转储文件)的生成和MAT的使用
文章来源:https://www.javatang.com/archives/2017/10/30/53562102.html (爪哇堂)一 JVM Heap Dump(堆转储文件)的生成使用 jmap 命令生成jmaphttps://docs.oracle.com/javase/8/docs/technotes/tools/unix/jmap.html命令是JDK提供的用于生...转载 2019-01-14 19:31:05 · 1551 阅读 · 0 评论 -
jstack堆栈日志分析
参照文章来源:https://www.cnblogs.com/aligege/p/7550478.html一 线程状态关于线程状态的描述推荐书籍深入理解Java虚拟机 第12章 Java内存模型与线程 12.4.3 状态转换章节描述.二、线程的entry sets 和 wait sets有关Java的线程锁与entry set和wait set的关系,抑或是说这个图包含了Ja...转载 2019-01-12 16:33:58 · 4503 阅读 · 1 评论 -
Java序列化和反序列化存在的意义
文章来源:1 javabean为什么要实现序列化? https://www.cnblogs.com/qianzf/p/6798800.html2 java 中为什么实体类需要实现序列化 https://blog.csdn.net/thinkingcao/article/details/751331833 java为什么要实现serializable序列化 http://www.cnblog...转载 2018-10-09 08:57:21 · 1764 阅读 · 1 评论 -
聊聊JVM的年轻代
文章来源: http://ifeve.com/jvm-yong-generation/1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话...转载 2018-08-25 12:06:03 · 133 阅读 · 0 评论 -
java创建线程的四种方式以及比较
创建线程的三种方式以及创建方式的比较转载 2016-11-29 23:05:07 · 565 阅读 · 0 评论 -
关于线程暂停或指示线程准备暂停的十种方式介绍
文章来源: 参考内容:前言:在协作式线程调度器或者抢占式线程调度器上经常需要确保所有线程自身定期的暂停,这样其他的线程才可以有运行的机会.为了能让其他线程有机会运行,一个线程有10种方式可以暂停或者指示它准备暂停.主要分为下面几种方式: (1)可以对I/O阻塞 (2)可以对同步对象阻塞 (3)可以放弃 (4)可以休眠 (5)可以连接另一个线程 (6)可以等待一个对象 (7)可以结原创 2017-09-16 15:00:10 · 3646 阅读 · 0 评论 -
java并发编程--原子性、可见性、有序性
文章来源 http://blog.csdn.net/u010796790/article/details/52155664摘要并发程序正确地执行,必须要保证原子性、可见性以及有序性.只要有一个没有被保证,就有可能会导致程序运行不正确.原子性:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变...转载 2018-02-09 23:34:11 · 2351 阅读 · 0 评论 -
Java多线程编程模式实战指南:Immutable Object模式
文章来源: http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-object/文章代码地址: https://github.com/Viscent/JavaConcurrencyPattern/多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行...转载 2018-03-09 08:54:34 · 202 阅读 · 0 评论 -
Java虚拟机--JVM内存堆布局图解分析
文章来源: https://www.cnblogs.com/WJ5888/p/4374791.htmlJAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢了,当然原因肯定不止这一个,如在JVM中没有数据寄存器,指令集使用的是栈来保存中间数...转载 2018-07-15 10:49:21 · 605 阅读 · 0 评论 -
Java虚拟机--堆
文章来源: 深入理解Java虚拟机 https://www.cnblogs.com/liyonghua/p/8805017.html一 Java虚拟机–堆 堆是用来存放对象的内存空间,几乎所有的对象都存储在堆中.对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块.Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建...原创 2018-07-14 18:08:20 · 934 阅读 · 1 评论