Java
文章平均质量分 95
高广超
互联网一线从业者,中度强迫症患者。
个人博客:http://www.jianshu.com/u/2766e4cfc391
展开
-
java中hashCode方法与equals方法的用法总结_java_脚本之家
首先,想要明白hashCode的作用,必须要先知道Java中的集合。总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了。但是,如果每增加一个元素就检转载 2016-03-14 20:02:48 · 368 阅读 · 0 评论 -
Java解读-ThreadLocal详解与应用
ThreadLocal概念ThreadLocal 字面意思来看有点像“线程的本地实现版本”,实际上真正含义是ThreadLocalVariable(线程本地局部变量),所以把它命名为ThreadLocalVar更加合适。ThreadLocal 是用来解决共享对象(单个线程内共享)的多线程访问问题的,使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal为每个线程的中并发访问的数据提原创 2017-06-25 17:17:20 · 787 阅读 · 1 评论 -
并发编程-Concurrent用户指南
Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我将带你一一认识 java.util.concurrent 包里的这些类,然后你可以尝试着如何在项目中使用它们。本文中我将使用 Java 6 版本,我不确定这和 Java 5 版本里的是否有转载 2017-06-25 17:19:00 · 486 阅读 · 0 评论 -
JVM解读-性能调优实例
JVM性能调优1 堆设置调优年轻代大小选择响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度。因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用。 通过-XX:NewRadio设置新生代与老年代的大小比例,通过原创 2017-06-25 17:21:25 · 517 阅读 · 0 评论 -
Log4j1升级Log4j2实战
这是在公司内部的一次升级实践,删除了很多隐私的内容,所以可能不是很完整。1、背景 在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索。绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?新的Log4j 2.0版本有了大幅的性能提升、新的插件系统,以及配置设置方面的很多改善。Log4j 1.x 在高并发原创 2017-06-25 17:27:13 · 4211 阅读 · 2 评论 -
JVM解读-方法区
java是基于一门虚拟机的语言,所以了解并且熟知虚拟机运行原理非常重要。方法区方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价,仅仅是因为HotSpot虚拟机的设计团队选择把GC分代收集扩展至方法区,或者说使用永久代来实现方法区而已。对于其他虚拟机(如BEA原创 2017-06-25 17:30:28 · 250 阅读 · 3 评论 -
Java中的锁[原理、锁优化、CAS、AQS]
本文作者:景小财 作者简介:美团外卖活动业务负责人1、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。2、锁实现的基本原理2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁...原创 2018-05-04 10:32:42 · 295 阅读 · 4 评论