java相关
文章平均质量分 83
black f
落子无悔,不忘初心,日日精进,圣贤可达。
展开
-
zookeeper笔记
leader收到超过半数的ack后,认为消息发送成功,于是再向所有follower广播commit消息,同时自身也完成事务提交,follower接收到commit消息后,会将上一条事务提交。发给follower流程如下:c1给s2发写入请求,s2没有写入权限,s2会把写入请求转给s1,s1写入后,再给s2发写入请求,s2写入成功后,给s1发ack确认。议长对议员说,兄弟们投我一票,议员对议长说,没问题,兄弟们支持你。s1是 (1,8,1),s2是 (1,8,2),s3是 (1,7,4)原创 2022-10-03 16:51:52 · 750 阅读 · 0 评论 -
mybatis笔记
mybatis整体把握原创 2022-09-07 16:56:51 · 268 阅读 · 0 评论 -
Spring Boot打Jar包,读取resource
首先在pom.xml中添加如下的插件<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include>原创 2021-06-02 10:15:47 · 515 阅读 · 0 评论 -
正则表达式廖雪峰版
第一个例子-数字判断首先要导包import java.util.regex.*;举个例子:要判断用户输入的年份是否是20##年,我们先写出规则如下:一共有4个字符,分别是:2,0,09任意数字,09任意数字。对应的正则表达式就是:20\d\d,其中\d表示任意一个数字。把正则表达式转换为Java字符串就变成了20\d\d,注意Java字符串用\表示\。最后,用正则表达式匹配一个字符串的代码如下:// regexpublic class Main { public static vo原创 2021-04-02 10:13:17 · 322 阅读 · 0 评论 -
函数式编程
lambda表达式简化单方法接口写法在Java程序中,我们经常遇到一大堆单方法接口,即一个接口只定义了一个方法:ComparatorRunnableCallable以Comparator为例,我们想要调用Arrays.sort()时,可以传入一个Comparator实例,以匿名类方式编写如下:String[] array = ...Arrays.sort(array, new Comparator<String>() { public int compare(String原创 2021-03-29 17:56:27 · 131 阅读 · 0 评论 -
日期和时间
基本概念在计算机中,我们经常需要处理日期和时间。这是日期:2019-11-202020-1-1这是时间:12:30:592020-1-1 20:21:59日期是指某一天,它不是连续变化的,而是应该被看成离散的。而时间有两种概念,一种是不带日期的时间,例如,12:30:59。另一种是带日期的时间,例如,2020-1-1 20:21:59,只有这种带日期的时间能唯一确定某个时刻,不带日期的时间是无法确定一个唯一时刻的。本地时间当我们说当前时刻是2019年11月20日早上8:15的时候,我们原创 2021-03-29 14:43:04 · 7918 阅读 · 0 评论 -
编写equals和hashCode方法
编写equals如何正确编写equals()方法?equals()方法要求我们必须满足以下条件:自反性(Reflexive):对于非null的x来说,x.equals(x)必须返回true;对称性(Symmetric):对于非null的x和y来说,如果x.equals(y)为true,则y.equals(x)也必须为true;传递性(Transitive):对于非null的x、y和z来说,如果x.equals(y)为true,y.equals(z)也为true,那么x.equals(z)也必须为tr原创 2021-03-29 10:09:08 · 212 阅读 · 0 评论 -
注解相关
之前也总结过注解,这次跟着廖雪峰老师再总结一遍。什么是注解什么是注解(Annotation)?注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”:// this is a component:@Resource("hello")public class Hello { @Inject int n; @PostConstruct public void hello(@Param String name) { System.out.pri原创 2021-03-28 18:33:24 · 88 阅读 · 0 评论 -
反射,类对象相关
反射存在意义反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法。Class类class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的class。它长这样:public final class Class { private Class() {}}以String类为例,当JVM加载String类时,它首原创 2021-03-28 17:23:11 · 82 阅读 · 0 评论 -
异常处理
让调用方强制捕获异常,异常上抛机制执行下面的代码:// try...catchimport java.io.UnsupportedEncodingException;import java.util.Arrays;public class Main { public static void main(String[] args) { byte[] bs = toGBK("中文"); System.out.println(Arrays.toString(bs)原创 2021-03-28 10:52:36 · 221 阅读 · 0 评论 -
Math、Random、SecureRandom工具类
Math顾名思义,Math类就是用来进行数学计算的,它提供了大量的静态方法来便于我们实现数学计算:求绝对值:Math.abs(-100); // 100Math.abs(-7.8); // 7.8取最大或最小值:Math.max(100, 99); // 100Math.min(1.2, 2.3); // 1.2计算xy次方:Math.pow(2, 10); // 2的10次方=1024计算√x:Math.sqrt(2); // 1.414…计算ex次方:Math.exp(2);原创 2021-03-28 10:32:28 · 677 阅读 · 0 评论 -
老朋友BigDecimal表示浮点数
和BigInteger类似,BigDecimal可以表示一个任意大小且精度完全准确的浮点数。拿到小数位数BigDecimal bd = new BigDecimal(“123.4567”);System.out.println(bd.multiply(bd)); // 15241.55677489BigDecimal用scale()表示小数位数,例如:BigDecimal d1 = new BigDecimal(“123.45”);BigDecimal d2 = new BigDecimal(“原创 2021-03-27 16:34:52 · 270 阅读 · 0 评论 -
java14中引入记录类简化不变类
不变类使用String、Integer等类型的时候,这些类型都是不变类,一个不变类具有以下特点:定义class时使用final,无法派生子类;每个字段使用final,保证创建实例后无法修改任何字段。假设我们希望定义一个Point类,有x、y两个变量,同时它是一个不变类,可以这么写:public final class Point { private final int x; private final int y; public Point(int x, int y) {原创 2021-03-27 16:05:45 · 97 阅读 · 0 评论 -
javaBean
概念在Java中,有很多class的定义都符合这样的规范:若干private实例字段;通过public方法来读写实例字段。例如:public class Person { private String name; private int age; public String getName() { return this.name; } public void setName(String name) { this.name = name; } publ原创 2021-03-24 16:56:02 · 158 阅读 · 0 评论 -
基本类型和包装类型
基本类型默认初始值,不为null我们已经知道,Java的数据类型分两种:基本类型:byte,short,int,long,boolean,float,double,char引用类型:所有class和interface类型引用类型可以赋值为null,表示空,但基本类型不能赋值为null:String s = null;int n = null; // compile error!那么,如何把一个基本类型视为对象(引用类型)?比如,想要把int基本类型变成一个引用类型,我们可以定义一个Integ原创 2021-03-24 16:32:41 · 187 阅读 · 0 评论 -
字符串相关
字符串比较结论:两个字符串比较,必须总是使用equals()方法。要忽略大小写比较,使用equalsIgnoreCase()方法。为什么呢? 因为字符串的不可变性,对于同样的字符串,两个变量会指向一个地址。所以 == 也能得到正确的结果(巧合)。而equals比较的才是里面的内容。str.equals("..")String类的其他方法String类还提供了多种方法来搜索子串、提取子串。常用的方法有:是否包含子串:“Hello”.contains(“ll”); // true注意到con原创 2021-03-24 11:11:08 · 93 阅读 · 0 评论 -
java的基本概念
JDK和JRE关系初学者学Java,经常听到JDK、JRE这些名词,它们到底是啥?JDK:Java Development KitJRE:Java Runtime Environment简单地说,JRE就是运行Java字节码的虚拟机。但是,如果只有Java源码,要编译成Java字节码,就需要JDK,因为JDK除了包含JRE,还提供了编译器、调试器等开发工具。二者关系如下:所以一般来说,我们安装一个JDK就够了。JSR和JCPJSR规范:Java Specification Request原创 2021-03-09 10:40:09 · 202 阅读 · 0 评论 -
java代码的一些技巧
可以连续赋值。比如: a = b = true;原创 2021-03-03 10:21:44 · 237 阅读 · 0 评论