Java
文章平均质量分 69
HamalAlpha
这个作者很懒,什么都没留下…
展开
-
Volatile,Synchronized,Lock
本文主要记载Volatile,Synchronize,Lock特性与适用场景VolatileVolatile是一种相比Synchronized更轻量级的同步机制,它能够保证并发处理的可见性,但它并不能够保证原子性,这意味着Volatile并不是线程安全的。可为可见性?如果某个线程改变了声明为Volatile的变量的值,那么所有其他线程中的值都应该更新,也就是所有线程对该Volati...原创 2018-05-02 20:51:23 · 217 阅读 · 0 评论 -
通过反射获取私有内部类对象
首先是我们的目标对象:class Out { //目标获取Inner对象 private class Inner { //内部类的私有成员属性 private String inner = "ccc"; }}直接列出代码:public class Main { @SuppressWarnings({ "rawtype...原创 2018-05-10 19:05:24 · 8370 阅读 · 2 评论 -
Java死锁例子
产生死锁的四个条件:占有等待、互斥、循环等待、非剥夺。Java死锁栗子:public class Main { //两把钥匙 static Object key1 = new Object(); static Object key2 = new Object(); public static void method1() { System....原创 2018-05-17 11:33:23 · 1228 阅读 · 1 评论 -
理解HashMap的几个关键点
什么是HashMap?HashMap是一个散列表,存储的内容为键值对的映射(key-value),由于key存放在Set集合中,意味着key值不允许重复,但是key和value都允许为null。HashMap继承AbstractMap抽象类,实现了Map、Cloneable、Serializable接口,允许克隆和序列化。另外,HashMap是非线性安全的,键值对的映射也不是有序的。Has...原创 2018-04-29 12:36:20 · 332 阅读 · 0 评论 -
java单例模式几种实现方法
java单例模式中,留意几个关键点:构造方法私有化,单例对象变量需要static修饰,借助公有方法获取单例对象。另外也需要考虑线程是否安全,是否为延迟加载。饿汉模式public class Hungry{ private final static Hungry instance=new Hungry(); private Hungry(){} public ...原创 2018-05-20 17:04:48 · 211 阅读 · 0 评论 -
理解String类的intern()方法
测试环境:eclipse+JDK 1.8测试例子:public static void main(String[] args){ String s1=new String("a")+new String("b"); //1 System.out.println(s1.intern()==s1); //2 String s2=new String("a")+new ..原创 2018-06-01 20:15:48 · 877 阅读 · 0 评论 -
简单分析Class类文件
阅读《深入理解Java虚拟机》第六章后,记录下使用WinHex工具分析二进制文件的过程。源码沿用书中的例子:public class Hex { private int m; public int inc(){ return m+1; }}使用WinHex打开编译后的.class文件: 首先需要知道的是:Class文件中只有两种数...原创 2018-08-11 23:26:43 · 482 阅读 · 0 评论