![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
winter_sweet07
java
展开
-
JAVA反射
通过Class实例获取class信息的方法称为反射(Reflection); 除基本类型外,JAVA其他数据类型都是class,每加载一种class,JVM就为其创建一个Class类型的实例 public final class Class { private Class() {} } Class cls = new Class(Stri...转载 2019-09-14 11:22:19 · 110 阅读 · 0 评论 -
IO流
按流向来分: 输入流:InputStream、Reader 输出流:OutputStream、Writer 按处理单元分: 字节流:InputStream、OutputStream,按byte处理,能处理所有文件 FileInputStream、FileOutputStream ByteInputStream、ByteOutputStream ...原创 2019-09-15 18:43:29 · 101 阅读 · 0 评论 -
CAS和AQS
CAS和AQS CAS:CompareAndSet 先比较,再设值 AtomicInteger 就是基于CAS,先获取一个值,然后发起CAS,比较这个值被人改过没?如果没有,就更改值!这个CAS是原子的,别人不会打断你! 当大量线程同时修改AtomicInteger,很多线程会不停自旋,进行无限循环。JAVA8新增了LongAdder,使用分段CAS 以及 自动分段迁移 的方式来大幅度提升多线...转载 2019-09-15 21:57:46 · 119 阅读 · 0 评论 -
集合
原创 2019-09-16 21:48:48 · 121 阅读 · 0 评论 -
【线程创建及线程安全】
线程创建方式: 1. Thread01继承Thread类,重写run方法。 Thread01 t = new Thread01( ); t.start(); 2. 类 Thread01实现Runnable接口,重写run方法。 调用时:Thread01 a = new Thread01(); new Thread(a).start(); 3. 类 Thread0...原创 2019-09-16 22:29:49 · 150 阅读 · 0 评论 -
JVM内存模型及垃圾回收机制
JVM 运行时数据区(逻辑结构) JAVA Memory Model(JAVA内存模型) 堆内存 新生代 8 eden:新生对象 1 survivor from 1 survivor to 回收算法: 标记-复制(将可用内存划分为大小相等的两块,每次只用其中一块,当这块用完后,把活着的对象移动到另一块,清除这块内存) Minor GC时,对eden和from区域进行回收,存活的对象移...原创 2019-09-18 22:47:26 · 147 阅读 · 0 评论 -
【JAVA8】新特性
1、闭包,将函数作为参数 -> lamda表达式 引用外部变量时,只能引用final修饰的外部变量 方法定义的参数不能与外部参数名一样 2、使用 :: 进行方法引用 类名::new 构造方法 类名:: static_method 静态方法引用 类名 :: method 调用类任意对象的方法 对象 :: method 调用指定对象的方法 3、functional Interface...原创 2019-09-20 22:08:41 · 121 阅读 · 0 评论 -
jvm性能调优
JAVA内存溢出: 1.堆溢出 java heap space 创建对象时,内存不足 2.方法区内存溢出:permgem space 创建的类太多 3.线程栈溢出:stackoverflow error 递归太深,方法调用过多 ...转载 2019-09-20 22:08:28 · 117 阅读 · 0 评论 -
【Map】四种遍历方式
一、通过keySet遍历(通过键获取值,效率低) for(String key : map.keySet()){ System.out.println("key="+key); System.out.println("value="+map.get(key)); } 二、通过values遍历(只获取值可以采用这种) for(String value : map.values()){ Syst...原创 2019-09-22 10:47:59 · 154 阅读 · 0 评论