java
Nozomi_Ame
这个作者很懒,什么都没留下…
展开
-
验证volatile可见性
验证java volatile的可见性原创 2022-10-25 20:13:26 · 161 阅读 · 1 评论 -
策略模式和命令模式的不同
策略模式和命令模式原创 2022-09-19 11:36:24 · 498 阅读 · 0 评论 -
idea较新版本识别不了lombok生成的方法
现象idea版本:IntelliJ IDEA 2021.1.1 (Ultimate Edition)Build #IU-211.7142.45, built on April 30, 2021lombok版本1.18.16编译的时候报错:java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.p转载 2022-03-11 18:17:49 · 1999 阅读 · 1 评论 -
Linux安装java
使用jdk-8u321-linux-x64.tar.gz上传到指定虚拟机上传到/usr目录下解压文件:$ tar -xzvf jdk-8u321-linux-x64.tar.gz#重命名mv jdk1.8.0_321 jdk1.8.0使用Vi编辑器,设置环境变量$ sudo vi /etc/profile在文件最后,添加如下内容:#Java Envexport JAVA_HOME=/usr/jdk1.8.0export CLASSPATH=.:$JAVA_HOME/原创 2022-02-26 11:53:05 · 562 阅读 · 0 评论 -
Idea 2020.2 Can‘t download Android Plugin component: layoutlib-resources
使用idea 2020.2开发Android程序查看布局文件会出现Can’t download Android Plugin component: layoutlib-resources原因是Can’t download Android Plugin component: layoutlib-resources更新到2020.3.4以上版本原创 2021-12-15 16:57:34 · 8374 阅读 · 2 评论 -
throw和throws的区别
throw和throws的区别如下。位置不同:throws作用在方法上,后面跟着的是异常的类;而throw作用在方法内,后面跟着的是异常的对象。功能不同:throws用来声明方法在运行过程中可能出现的异常,以便调用者根据不同的异常类型预先定义不同的处理方式;throw用来抛出封装了异常信息的对象,程序在执行到throw时后续的代码将不再执行,而是跳转到调用者,并将异常信息抛给调用者。也就是说,throw后面的语句块将无法被执行(finally语句块除外)。...原创 2021-12-01 21:51:45 · 4281 阅读 · 0 评论 -
创建对象的五种方式
1.new关键字Object object = new Object();2.Class的newInstance()3.Constructor的newInstance()4.clone()方法,Object的方法,需实现Cloneable,重写方法5.反序列化原创 2021-09-03 17:17:46 · 68 阅读 · 0 评论 -
Integer源码解析
1.自动拆箱装箱java代码使用反编译工具查看class文件可以看出int->Integer自动装箱使用了Integer.valueOf(),Integer->int自动拆箱使用了intValue()。Integer.valueOf()使用了缓存IntegerCache是一个私有的静态内部类,保证了单例。[-128, 127]JDK9以后new Integer(int v)和new Integer(String s)被舍弃...原创 2021-08-31 09:28:01 · 104 阅读 · 0 评论 -
StringBuilder和StringBuffer底层
1.StringBuffer和StringBuilder底层存储是一个字符数组,继承自AbstractStringBuilder的value属性。2.StringBuffer和StringBuilderd的append的方法是在AbstractStringBuilder中实现的,StringBuffer的append方法加了synchronized。字符串的拼接使用了Arrays.copyOf()扩充容量复制值到原来的数组重写toString()输出值...原创 2021-08-27 20:01:57 · 1144 阅读 · 0 评论 -
构造器和普通代码块执行顺序
java代码编译后的class文件可以看出普通代码块被移到构造器原有代码前面。故普通代码块语句先于构造器执行。原创 2021-08-25 16:10:03 · 248 阅读 · 0 评论 -
几种单例模式
1.懒汉模式两次检查的意义在于,防止synchronized同步过程中其他线程进行了实例化。volatile关键字作用是保证此变量对于所有线程的可见性。即当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。是禁止指令重排序优化。JVM 会在保证结果正确的前提下进行指令重排序优化。new一个对象大致有3步。分配内存调用构造函数初始化成实例让instance指向分配的内存空间即如上 3 步可能的顺序为1->2->3 或 1->3->2 。如果顺原创 2021-08-25 15:58:35 · 61 阅读 · 0 评论 -
java8新特性
1.接口的修改新增default方法default方法作用范围也是public,只是有了具体实现的方法体。对已有的接口,如果想对接口增加一个新方法,那么需要对所有实现该接口的类进行修改。而有了default方法,可以解决该问题。调用:实现类调用新增static方法static修饰的方法也是非抽象方法,使用同类的静态方法一样,给方法的调用带来了方便。程序入口main方法也是static,现在接口也可以运行了。调用:接口名.方法名总结:接口已经越来越向类靠近了,所以现在接口和抽象类的区别有:虽原创 2021-08-25 15:00:04 · 49 阅读 · 0 评论