上一页 1 ··· 8 9 10 11 12 13 下一页
摘要: volatile: 相当于轻量级的synchronized,因为不存在线程上下文切换这种消耗很大的操作,volatile的读写都是无锁的操作,但是应用范围相对较少,volatile一般用来修饰变量。 volatile不能保证原子性: 在之前的博客有说到,通过Atomic相关类、synchronize 阅读全文
posted @ 2019-05-16 17:07 Diamond-Shine 阅读(206) 评论(0) 推荐(0)
摘要: ThreadLocal是什么? 当使用ThreadLocal修饰变量的时候,ThreadLocal会为每个使用该变量的线程提供独立的变量副本,每个线程可以独立改变自己的副本,而不 影响其他线程的变量副本。 相对于synchronized和lock实现对共享资源的操作互斥而实现原子性,这是一种新的思路 阅读全文
posted @ 2019-05-16 16:33 Diamond-Shine 阅读(422) 评论(0) 推荐(0)
摘要: 线程池: 简单来说就是一组可以执行任务的空闲线程,可以用来做任务调度。 为什么使用线程池? 1、降低资源消耗。通过重复利用已创建的线程降低创建和销毁线程的消耗. 2、提高响应速度。任务到达,可以不需要等待创建线程就可以执行. 3、更好的管理线程。可以统一分配、调优和监控. Java通过executo 阅读全文
posted @ 2019-05-15 21:35 Diamond-Shine 阅读(533) 评论(0) 推荐(0)
摘要: 1、-Xms20M: 表示设置jvm堆的最小值为20M,必须以M为单位 2、-Xmx20M: 表示设置JVM堆的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置 到10G、20G甚至还要高 -XX:NewSize: 新生 阅读全文
posted @ 2019-05-14 16:02 Diamond-Shine 阅读(1835) 评论(0) 推荐(0)
摘要: 问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件 )、堆转储快照(heapdump/hprof文件)等。加上虚拟机监控和分析工具进行分析数据、定位解决问题 jdk所有命令参数详解:http 阅读全文
posted @ 2019-05-14 11:21 Diamond-Shine 阅读(649) 评论(0) 推荐(0)
摘要: 枚举: 刚开始项目中没怎么用过,只知道能够实现作为项目中类似定义Constant的功能,然后知道枚举实现的单例模式几乎是最优雅的。所以, 想要系统完整的了解一下Enum。 1、基本特性: Enum.values()可以遍历enum实例。返回的是enum实例的数组 2、向enum中添加新方法 类似这样 阅读全文
posted @ 2019-05-13 17:42 Diamond-Shine 阅读(193) 评论(0) 推荐(0)
摘要: Comparable: 是集合内部的方法实现的排序,只有一个方法 public interface Comparable<T> { public int compareTo(T o); } 对于String和一些基本数据类型,默认实现了Comparable 接口,实现了compareTo方法,可以直 阅读全文
posted @ 2019-05-13 11:26 Diamond-Shine 阅读(524) 评论(0) 推荐(0)
摘要: 如何选择优化的数据类型: 当一个列有多种数据类型可以选择,选择顺序:数字类型、日期/二进制类型、字符类型,相同级别的数据类型,优先选择占用空间小的类型 1、通常更小的更好 相同级别的数据类型,选择占据空间更小的数据类型。更小的数据类型通常更快,因为占用更少的磁盘、内存和CPU缓存,处理时需要的 CP 阅读全文
posted @ 2019-05-13 11:03 Diamond-Shine 阅读(439) 评论(0) 推荐(0)
摘要: 1、公平锁: 是指多个线程按照申请锁的顺序来获取锁。 非公平锁的优点在于吞吐量比公平锁大。 2、非公平锁: 是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿 现象。 3、可中断锁: synchronized就不是可中断锁,而 阅读全文
posted @ 2019-05-10 15:59 Diamond-Shine 阅读(399) 评论(0) 推荐(0)
摘要: AQS: 是AbstractQueuedSynchronizer的简称,JUC的核心。 底层是sync queue双向链表,还可能有condition queue单向链表,使用Node实现FIFO队列,可以用于构建同步队列或者其他同步装置的基础框架。 使用了int类型表示状态,在AQS中有个stat 阅读全文
posted @ 2019-05-10 15:44 Diamond-Shine 阅读(354) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 下一页