![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础知识
文章平均质量分 96
fxh13579
这个作者很懒,什么都没留下…
展开
-
java 进程占用系统内存过高分析
JVM的内存先放一张JVM的内存划分图,总体上可以分为堆和非堆(粗略划分,基于java8)那么一个Java进程最大占用的物理内存为:Max Memory = eden + survivor + old + String Constant Pool + Code cache + compressed class space + Metaspace + Thread st......转载 2020-03-09 15:57:26 · 14914 阅读 · 0 评论 -
执行maven打包的main方法
cd target/classesmvn exec:java -Dexec.mainClass="com.ota.flight.city.PolicyDemo" -f ../../pom.xml原创 2019-07-16 13:26:18 · 661 阅读 · 0 评论 -
ThreadLocal 详解
ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图ThreadLocal结构内部从上面的结构图,我们已经窥见ThreadLo...转载 2018-11-16 11:19:18 · 197 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 - 实例分析原文 http://josh-persistence.iteye.com/blog/2161848第一部分:工具介绍部分:现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消...转载 2018-07-04 09:56:07 · 358 阅读 · 0 评论 -
java代码优化
代码优化细节1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的fi...原创 2018-03-30 17:05:38 · 179 阅读 · 0 评论 -
缓存雪崩和缓存击穿的场景和解决方案
缓存穿透什么是缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。 如何避免?1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。2:对一定不存在的key进行过滤。转载 2018-01-18 11:07:46 · 865 阅读 · 0 评论 -
FutureTask底层原理分析
FutureTask实现了接口Future,同Future一样,代表异步计算的结果。当然,FutureTask除了实现Future接口之外,还实现了Runnable接口,所以,FutureTask既可以由Executor来调度执行,也可以由调度线程调用FutureTask.run()直接执行。FutureTask状态根据FutureTask的run方法是否被执行以及是否被执行完成,FutureTa转载 2018-01-17 14:04:06 · 480 阅读 · 0 评论 -
Java线程的5种状态及切换(透彻讲解)
Java中的线程的生命周期大体可分为5种状态。1. 新建(NEW):新创建了一个线程对象。2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(t转载 2018-01-16 16:31:42 · 222 阅读 · 0 评论 -
java中heap和stack的区别
暂无原创 2017-11-27 21:26:25 · 1387 阅读 · 0 评论 -
什么是ACID
当事务处理系统创建事务时,将确保事务有某些特性。组件的开发者们假设事务的特性应该是一些不需要他们亲自管理的特性。这些特性称为ACID特性。 ACID就是:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily)。 1. 原子性 原子性属性用于标识事务是否完全地完成,一个事务的任何更新要在系统上完全完成,原创 2017-12-13 15:05:52 · 705 阅读 · 0 评论