自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 验证volatile可见性

验证java volatile的可见性

2022-10-25 20:13:26 205 1

原创 策略模式和命令模式的不同

策略模式和命令模式

2022-09-19 11:36:24 558

转载 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 2235 1

原创 脚本启动zookeeper、kafka集群JAVA_HOME找不到

启动脚本#!/bin/bashcase $1 in"start"){echo ---------- zookeeper hadoop1 启动 ------------sh /usr/local/zookeeper3.5.7/bin/zkServer.sh startfor i in hadoop2 hadoop3doecho ---------- zookeeper $i 启动 ------------ssh $i "/usr/local/zookeeper3.5.7/bin/zkSe

2022-03-09 16:25:31 2842

原创 Linux目录

需要创建一些临时文件,应该保存在用户的宿主目录或/tmp/临时目录。但是要小心有些目录中不能直接修改和保存数据,比如/proc/和/sys/目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;/boot/目录也不能保存额外数据,因为/boot/目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。...

2022-02-28 14:46:22 147

原创 $‘\r‘: 未找到命令

linux执行sh报错:原因  是因为命令直接从windows 复制过来导致的解决yum install -y dos2unix dos2unix **.sh #进行转换再次执行即可

2022-02-27 21:03:53 271

原创 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 576

原创 maven使用Install-file命令导入jar

使用Install:Install-file生成本地元数据文件jar所在文件夹_remote.repositoriesojdbc8-12.2.0.1.pom不使用Install:Install-file没有maven-metadata-local.xmljar所在文件夹_remote.repositories<?xml version='1.0' encoding='UTF-8'?><project xsi:schemaLocation="http://m

2022-02-25 11:18:31 1675

原创 Linux文件

Linux文件或目录权限第一列是文件类别和权限,这列由10个字符组成,第一个字符表明该文件的类型。表3-2列出了第一个字符可能的值和所代表的含义。接下来的属性中,每3个字符为一组,第2-4个字符代表该文件所有者(user)的权限,第5-7个字符代表给文件所有组(group)的权限,第8-10个字符代表其他用户(others)拥有的权限。每组都是rwx的组合,如果拥有读权限,则该组的第一个字符显示r,否则显示一个小横线;如果拥有写权限,则该组的第二个字符显示w,否则显示一个小横线;如果拥有执行权限,则

2021-12-23 17:23:44 164

原创 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 8613 2

原创 throw和throws的区别

throw和throws的区别如下。位置不同:throws作用在方法上,后面跟着的是异常的类;而throw作用在方法内,后面跟着的是异常的对象。功能不同:throws用来声明方法在运行过程中可能出现的异常,以便调用者根据不同的异常类型预先定义不同的处理方式;throw用来抛出封装了异常信息的对象,程序在执行到throw时后续的代码将不再执行,而是跳转到调用者,并将异常信息抛给调用者。也就是说,throw后面的语句块将无法被执行(finally语句块除外)。...

2021-12-01 21:51:45 4371

原创 SSH安装配置

(1)在根目录下查看是否存在一个隐藏文件夹.ssh。若没有该文件夹,则在确保机器联网条件下执行以下命令安装ssh:(2)进入.ssh目录,生成密钥对,执行命令如下:在执行以上命令时一路回车即可。ssh-keygen用于生成认证密钥,-t用来指定密钥类型,这里选择rsa密钥。执行完毕后会在~/.ssh目录下生成id_rsa和id_rsa.pub两个文件,其中id_rsa为私钥文件,id_rsa.pub为公钥文件。依次在集群其他机器上完成步骤1和步骤2。(3)将id_rsa.pub文件内容追加到授权的ke

2021-11-19 15:09:56 1404 1

原创 MySql的锁

2021-09-14 16:16:59 70

原创 创建对象的五种方式

1.new关键字Object object = new Object();2.Class的newInstance()3.Constructor的newInstance()4.clone()方法,Object的方法,需实现Cloneable,重写方法5.反序列化

2021-09-03 17:17:46 84

原创 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 127

原创 StringBuilder和StringBuffer底层

1.StringBuffer和StringBuilder底层存储是一个字符数组,继承自AbstractStringBuilder的value属性。2.StringBuffer和StringBuilderd的append的方法是在AbstractStringBuilder中实现的,StringBuffer的append方法加了synchronized。字符串的拼接使用了Arrays.copyOf()扩充容量复制值到原来的数组重写toString()输出值...

2021-08-27 20:01:57 1186

原创 找出数组中两个奇数个数的数,其他数个数为偶数

位运算提取二进制数最右边的1异或的性质:与0异或结果是本身,与自己异或是0有交换律和结合律找出数组中两个奇数个数的数,其他数个数为偶数int rightOne = eor & (~ero+1);//是为了找出a、b某个不同的位,这个位上(cur & rightOne)==1;//应该取0或者rightOne,取1区分不了a、b。假设a是在最右边不同位置取0,那(a & rightOne) == 0,(b & rightOne) == rightOne

2021-08-25 21:16:56 182

原创 类初始化触发条件

类的加载过程可粗略分为三个阶段:加载 -> 链接 -> 初始化初始化阶段可被8种情况触发:使用 new 关键字实例化对象的时候读取或设置一个类型的静态字段(常量[2]除外)调用一个类型的静态方法使用反射调用类的时候当初始化类的时候,如果发现父类还没有进行过初始化,则先触发其父类初始化虚拟机启动时,会先初始化主类(包含main()方法的那个类)当初次调用 MethodHandle 实例时,初始化该 MethodHandle 指向的方法所在的类。如果接口中定义了默认方法(defa

2021-08-25 16:29:50 235

原创 构造器和普通代码块执行顺序

java代码编译后的class文件可以看出普通代码块被移到构造器原有代码前面。故普通代码块语句先于构造器执行。

2021-08-25 16:10:03 285

原创 几种单例模式

1.懒汉模式两次检查的意义在于,防止synchronized同步过程中其他线程进行了实例化。volatile关键字作用是保证此变量对于所有线程的可见性。即当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。是禁止指令重排序优化。JVM 会在保证结果正确的前提下进行指令重排序优化。new一个对象大致有3步。分配内存调用构造函数初始化成实例让instance指向分配的内存空间即如上 3 步可能的顺序为1->2->3 或 1->3->2 。如果顺

2021-08-25 15:58:35 92

原创 java8新特性

1.接口的修改新增default方法default方法作用范围也是public,只是有了具体实现的方法体。对已有的接口,如果想对接口增加一个新方法,那么需要对所有实现该接口的类进行修改。而有了default方法,可以解决该问题。调用:实现类调用新增static方法static修饰的方法也是非抽象方法,使用同类的静态方法一样,给方法的调用带来了方便。程序入口main方法也是static,现在接口也可以运行了。调用:接口名.方法名总结:接口已经越来越向类靠近了,所以现在接口和抽象类的区别有:虽

2021-08-25 15:00:04 85

原创 spring ioc使用

一、加载Spring容器的三种方式1.类路径获得配置文件2.文件系统路径获得配置文件3.使用BeanFactory二、BeanFactory和ApplicationContext对比1.BeanFactory 采取延迟加载,第一次getBean时才会初始化Bean2.ApplicationContext是对BeanFactory扩展,提供了更多功能国际化处理事件传递Bean自动装配各种不同应用层的Context实现...

2021-08-25 10:34:49 63

转载 IDEA的Diagram功能

IDEA的Diagram功能-恕我直言,你完全没有把IDEA的Diagram功能发挥出来 https://www.jianshu.com/p/e7fdb2fa3f08

2021-07-06 10:16:54 297

原创 git分支管理

Git多版本管理(使用TortoiseGit)创建本地branch2.push分支dev到remote3.提交合并请求4.代码所有者查看请求无冲突可以进行合并合并成功可以删除分支

2021-07-02 18:06:19 62

原创 Object中的equals方法

Java规范对equals方法使用的必须遵守的规则自反性。对于任何非空引用值x,x.equals(x)都应返回true。 对称性。对于任何非空引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)才返回true。 传递性。对于任何非空引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)应返回true。 一致性。对于任何非空引用值x和y,多次调用x.equals(y)始终返回true或始终返回fals

2021-03-14 10:42:10 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除