![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
xnktyu
这个作者很懒,什么都没留下…
展开
-
Java笔记——基础注解
java.lang包下的基础注解@Override // 方法覆盖@Deprecated // 已过时@SuppressWarnings("unchecked") // 抑制警告@SafeVarargs // 抑制堆污染警告@FunctionalInterface // 函数式接口java.lang.annotation包下的元注解@Retention(RetentionPolicy.RUNTIME) // 注解的保留期,默认是CLASS@Target(ElementType.原创 2020-09-13 12:17:02 · 96 阅读 · 0 评论 -
Java笔记——反射常用方法
获取Class 三种方式:Class.forName("com.xnktyu.utils.LOG");String.class;obj.getClass();Class常用方法: cls.getDeclaredConstructors(); cls.getDeclaredMethods(); cls.getDeclaredFields(); cls.getDeclaredAnnotations(); cls.getDeclaredClasses(); // 返回内..原创 2020-09-08 18:08:55 · 120 阅读 · 0 评论 -
Java中 volatile 关键字(简析)
先了解java内存模型的概念,如图:一个变量在不同线程存在一个各自的副本(简单理解为缓冲区)写过程:先修改变量副本,再同步到主内存。读过程:先从主内存同步到副本,再读取副本变量。问题的产生:线程1 boolean stop = false; @Override public void run() { while (!stop) { // TODO } }线程2 stop = true;一种可能的运行情况:线程2设.原创 2020-09-05 12:47:29 · 143 阅读 · 0 评论 -
Java笔记——多线程总结
创建线程的三种方式 public class MyThread extends Thread { @Override public void run() { } } new MyThread().start(); new Thread(new Runnable() { @Override public void run() { } }).start(); FutureTask<String> task = new Fut原创 2020-09-04 16:24:39 · 177 阅读 · 0 评论