![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
X5-j
这个作者很懒,什么都没留下…
展开
-
双重检测锁的单例模式之volatile
DCL(双重检测锁) 机制不一定线程安全,原因是有指令重排的存在,加入volatile可以禁止指令重排。原因在于创建一个对象并不是原子操作,单线程的指令重排没有问题,但是多线程时,某一个线程在执行到第一次检测,读取到的instance不为null时,instance的引用对象可能没有完成初始化。public class SingletonTest { // 禁止指令重排 private static volatile SingletonTest instance = null;原创 2020-06-01 14:24:00 · 1119 阅读 · 0 评论 -
logback.xml配置示例
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!-- 使用方式说明: 1. 可以修改日志格式:调整property标签 2. 可以修改root的日志级别 3. 如果想将特定的包或者类的日志打印到具体的日志文件...原创 2019-09-04 13:40:38 · 227 阅读 · 0 评论 -
日志框架logback
简介logback和log4j是一个人写的 springboot默认使用的日志框架是logback。 三个模块组成 logback-core logback-classic logback-access 其他的关于性能,关于内存占用,关于测试,关于文档详见源码及官网说明logback-core 是其它模块的基础设施,其它模块基于它构建,显然,logback-core 提供...转载 2019-09-04 10:16:38 · 233 阅读 · 0 评论 -
linux下开发jni
什么是JNI JNI是Java native interface的简写,可以译作Java原生接口。Java可以通过JNI调用C/C++的库,这对于那些对性能要求比较高的Java程序无疑是一个福音。 使用JNI也是有代价。大家都知道JAVA程序是运行在JVM之上的,可以做到平台无关。但是如果Java程序通过JNI调用了原生的代码(比如 c/c++等),则Java程序就丧失了平...转载 2019-06-30 19:52:35 · 206 阅读 · 0 评论 -
spi介绍
目录SPI 简介简单示例具体定义的接口和实现类SPI 简介SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现,而后,把新加的实现,描述给JDK就行(通过改一...原创 2019-05-21 14:03:55 · 1268 阅读 · 0 评论 -
字节流读取数据两种方式比较
字节流读取数据两种方式比较█一次读取一个字节█一次读取一个字节数组 ☞每次可以读取多个数据,提高了操作效率 public class CopyDemo { //第一步:将1.txt中的内容读入到内存 FileInputStream //第二步:将内存中读入的数据读入到2.txt FileOutputStream...转载 2019-03-29 10:52:22 · 1454 阅读 · 0 评论 -
java io流关闭
问题:(1)JAVA的IO流使用了装饰模式,关闭最外面的流的时候会自动调用被包装的流的close()方吗?(2)如果按顺序关闭流,是从内层流到外层流关闭还是从外层到内存关闭?问题(1)解释:如下例子代码: FileInputStream is = new FileInputStream("."); BufferedInputStream bis = ne...转载 2019-03-29 10:49:53 · 120 阅读 · 0 评论 -
java并发---双重检查锁定与延迟初始化
双重检查锁定的由来例子1public class UnsafeLazyInitialization { private static Instance instance; public static Instance getInstance() { if (instance == null) // 1:A线程执行 ...转载 2019-03-30 10:00:15 · 130 阅读 · 0 评论 -
java笔记(二)——反射技术
反射——Class类 1. 反射就是把Java类中的各种成分映射成一个个的java对象。例如:一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。2. Class类用于表示.class文件,画图演示一个对象的创建过程。3. 如何得到某个class文件对应的class对象。类名.class, 对象.getClas原创 2016-11-13 17:06:24 · 379 阅读 · 0 评论 -
Java提高篇——对象克隆(复制)
假如说你想复制一个简单变量。很简单:int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。但是如果你复制的是一个对象,情况就有些复杂了。假设说我是一个beginner,我会这样写:c转载 2016-12-29 10:31:39 · 275 阅读 · 0 评论 -
java笔记(五)——注解技术
概述从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解)。什么是Annotation,以及注解的作用?三个基本的 Annotation:@Override: 限定重写父类方法, 该注解只能用于方法@Deprecated: 用于表示某个程序元素(类, 方法等)已过时@SuppressWarnings: 抑制编译器原创 2016-11-13 19:36:23 · 307 阅读 · 0 评论 -
java笔记(四)——泛型技术
一、泛形的作用JDK5中的泛形允许程序员在编写集合代码时,就限制集合的处理类型,从而把原来程序运行时可能发生问题,转变为编译时的问题,以此提高程序的可读性和稳定性(尤其在大型程序中更为突出)。注意:泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息原创 2016-11-13 18:02:03 · 861 阅读 · 0 评论 -
java笔记(三)——内省技术
一、用内省技术反省javaBean(1)内省(Introspector)— JavaBeanIntrospector 类为通过工具学习有关受目标 Java Bean 支持的属性、事件和方法的知识提供了一个标准方法。(2)什么是JavaBean和属性的读写方法?有get或set方法就是一个属性,另外所有类继承了Object类的getClass()方法,所以还有一个属性class。原创 2016-11-13 17:33:40 · 1131 阅读 · 0 评论 -
java笔记(一)——枚举类
枚举类具有如下特性:1.枚举类也是一种特殊形式的Java类。2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象。A,B,C,D3.与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(private这点不难理解)。为什么?防止其他类初始化对象4.枚举类也可以实现接口、或继承抽象类。5.JDK5中扩展了swith语句,它原创 2016-11-13 16:03:05 · 483 阅读 · 0 评论