5 风铃峰顶

尚未进行身份认证

我要认证

个人项目经历请搜索: http://www.haoranhaoshi.top/

等级
TA的排名 6k+

Java transient、Serializable、Externalizable

transient关键字可以防止序列化,对Serializable 实现类有效。请源码上身,加持你我(ArrayList是浅克隆):public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ /** * The array buffer into whic

2020-08-05 20:30:27

Java 类中写入readResolve(),使序列化返回指定对象

序列化ObjectInputStream时,类中写入readResolve(),使序列化返回指定对象。可防止单例被序列化破坏。请源码:public final Object readObject() throws IOException, ClassNotFoundException { ... Object obj = readObject0(false); ... return obj;

2020-08-04 20:21:34

Java的Modifier

class的getModifiers()方法能获取类的修饰信息。 /** * The {@code int} value representing the {@code public} * modifier. */ public static final int PUBLIC = 0x00000001; /** * The {@code int} value representing the {@code privat

2020-08-04 07:24:11

getConstructor 和 getDeclaredConstructor区别

public Constructor<T> getConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException 获取参数列表匹配的公共构造器public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMe...

2020-08-03 22:17:57

Java 类的显式加载和隐式加载

类的加载方式:显式加载: ClassLoader.loadClass(className) :只执行装载过程。 Class.forName(className):执行类的装载、链接、初始化过程。https://www.cnblogs.com/heyjia/p/11338612.htmlClass.forName(className)是初始化类,newInstance()是实例化类。new是初始化加实例化类。(new和newInstance()的区别:https://blog.c...

2020-08-03 21:51:57

指令重排序、双重检验锁式单例模式避免指令重排序、指令无序、volatile、内存屏障

指令重排序,包括编译器重排序和处理器重排序(指令级并行技术或缓存)(https://blog.csdn.net/yjp198713/article/details/78839698)。单例模式中的双重校验锁方式(https://www.runoob.com/design-pattern/singleton-pattern.html)加了volatile关键字防止private volatile static Singleton singleton; 和new Singleton()的内存分配指令重.

2020-08-02 22:55:06

检查本地文件和Jar包内文件是否存在

private static void fileCheckInJar(String jarName, String pathInJar){ try { // 本地文件:Windows系统下可以写file:/,Linux下本地文件必须file:///,否则报:java.net.UnknownHostException: home URL url = new URL("jar:file:///" + System.getProperty("...

2020-07-29 20:42:00

SpringMVC 控制器是单例模式

SpringMVC 控制器默认是单例模式,通过@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)可成为多例模式,或者写成@Scope("prototype")。单例模式下定义成员变量是线程不安全的。使用单例模式是为了性能(无需频繁初始化),同时也没有必要使用多例模式。https://www.cnblogs.com/areyouready/p/7780810.htmlhttps://www.it610.com/article/1280

2020-07-27 21:58:07

Java join

/** * @Author: ZhangHao * @Description: join测试 * @Date: 2020/7/27 8:45 * @Version: 1.0 */public class JoinTest { public static void main(String[] args) throws InterruptedException { TestThread testThread1 = new TestThread("1"); T.

2020-07-27 09:54:55

Java 注解

反编译注解类可看到注解的本质:继承Annotation接口的接口。注解中的变量强制public static final,方法不写方法体,强制public abstract,即实现接口必须实现接口的方法。JDK1.8引入了default修饰符,方法加上了default修饰符就可以写方法体了。一个类可实现多个接口,这些接口中可以有相同的不被default修饰的方法,但不可以有相同名方法名,有被default修饰,如果想使用这个方法,必须复写,加Override注解。这个类不能使用这些.

2020-07-24 17:00:16

约定优于配置

约定优于配置(Convention Over Configuration),也称:约定大于配置,习惯优于配置,按约定编程。比如User类对应的表为user。比如SpringBoot约定静态资源在static下,动态资源在template下,port、log、eureka等配置在application.yml里。JDK1.5开始的元数据(描述数据的数据)实践-注解也是约定优于配置的体现。...

2020-07-24 16:19:57

Java Void

Void是void的包装类:public finalclass Void { /** * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. */ @SuppressWarnings("unchecked") public static final Class<Void> TYPE = (

2020-07-24 15:23:23

Java 类加载的双亲委托机制

JVM预定义的三种类型类加载器,当一个 JVM启动的时候,Java缺省开始使用如下三种类型类装入器:  启动(Bootstrap)类加载器:引导类装入器是用本地代码实现的类装入器,它负责将<Java_Runtime_Home>/lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于启动类加载器(C++写的)涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。  扩展(Extension)类加载器:扩展类加载.

2020-07-24 15:19:41

Java 线程优先级

上源码:public static final int MIN_PRIORITY = 1;public static final int NORM_PRIORITY = 5;public static final int MAX_PRIORITY = 10;private void init(ThreadGroup g, Runnable target, String name, long stackSize, AccessControlContex

2020-07-23 16:37:24

DP、HDMI、DVI、VGA接口

目前电脑显示器常见接口有DP、HDMI、DVI、VGA共4种接口。性能排名:DP>HDMI>DVI>VGA。VGA是模拟信号,已经被主流所淘汰。DP、HDMI、DVI都是数字信号,是目前的主流。VGA和DVI支持视频传输,不支持音频传输。HDMI和DP同时支持视频和音频传输。DP(DisplayPort,显示接口):DP可以连接电脑和显示器,也可以连接电脑和家庭影院。DisplayPort赢得了AMD、Intel、NVIDIA、戴尔、惠普、联想、飞利浦、三星..

2020-07-01 15:21:35

Vue 输入框的改变、输入、回车事件

<input type="text" @change="inputChange($event)" /> //输入框的改变事件,需脱离焦点生效<input type="text" @input="inputInput($event)" /> //输入框的输入事件<input type="text" @keyup.enter="inputEnter($event)" /> //输入框的回车事件var vm = new Vue({ el: "#app", .

2020-06-30 14:07:31

html 左右互不影响的滚动区域

<html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title>&.

2020-06-29 16:46:17

Java的getPath()、getAbsolutePath()、getCanonicalPath()

getAbsolutePath(): 返回抽象路径名的绝对路径名字符串。 public static void test1(){ File file1 = new File(".\\test1.txt"); System.out.println("-----默认相对路径:取得路径不同------"); System.out.println(file1.getPath()); System.out.print...

2020-06-29 15:01:53

JavaFX 耗时操作安排

import javafx.application.Application;import javafx.application.Platform;import javafx.scene.Scene;import javafx.scene.control.Label;import javafx.scene.control.ListView;import javafx.scene.layout.Pane;import javafx.stage.Stage;public class JavaFX.

2020-06-28 15:27:07

Jsoup

<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.11.3</version> </dependency> // Jsoup通过字符串读取html内容 Jsoup.pars...

2020-06-28 13:36:16

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享宗师
    分享宗师
    成功上传21个资源即可获取