日积月累
文章平均质量分 54
小风的笔记
这个作者很懒,什么都没留下…
展开
-
idea配置类注释和方法注释
idea配置类注释和方法注释1、 点右侧加号,选择Template Group,生成Template Group(xiaobai),在其下选择加号选择1生成类注释(cl代表快捷方式)和方法注释(mo代表快捷方式)2、 类注释配置Abbreviation中填写快捷方式(cl);Description中进行描述;template text中输入模板/** * TODO 描述方法的用途 * * @author * @since $date$ */点击Edit variables进行如原创 2021-04-26 16:28:59 · 492 阅读 · 1 评论 -
死锁以及解决方案
每个进程都需要一组资源来执行其任务,这些资源可能是系统资源(如CPU、内存等)或其他进程所拥有的资源。当一个进程请求资源时,如果该资源已被另一个进程占用,那么当前进程将被阻塞,直到该资源被释放。如果两个线程同时开始执行,线程1先获取资源1,线程2先获取资源2,然后两个线程都等待对方释放资源,导致死锁。具体来说,死锁是指两个或多个进程无法继续执行,因为每个进程都在等待另一个进程释放资源,造成了循环等待的情况。认为死锁发生的概率极低,忽略死锁的发生,但一旦发生死锁,系统就会崩溃或重启。原创 2024-02-29 10:59:49 · 228 阅读 · 1 评论 -
java中的四种代码块
普通代码块:类中方法的方法体构造代码块:构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。静态代码块:用static{}包裹起来的代码片段,只会执行一次。静态代码块优先于构造块执行。同步代码块(同步代码块在这里不做讲解,详见同步代码块和同步方法的区别):使用synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。普通代码块、构造代码块、静态代码块示例及..原创 2021-10-19 21:00:33 · 128 阅读 · 0 评论 -
同步代码块、静态同步方法、非静态同步方法的区别
静态同步方法:静态同步方法的锁是当前类的字节码文件(类名.class);非静态同步方法:非静态同步方法的锁是this;同步代码块:同步代码块可以使用自定义的Object对象,也可以使用this或者当前类的字节码文件(类名.class);通过修改下面代码进行验证public class ClassLock { public static void main(String[] args) { ClassLock classLock1 = new ClassLock();原创 2021-10-19 20:59:36 · 523 阅读 · 0 评论 -
mysql数据库总结
1、数据引擎不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能(SHOW ENGINES查看mysql数据库所有引擎)。常用引擎有(InnoDB,Myisam,Memory)InnoDB跟Myisam的默认索引是B+tree,Memory的默认索引是hash区别:1.InnoDB支持事务,支持外键,支持行锁,写入数据时操作快,MySQL5.6版本以上才支持全文索引2.Myisam不支持事务。不支持外键,支持表锁,支持全文索引,读取数据快3原创 2021-10-18 23:06:01 · 203 阅读 · 0 评论 -
BigDecimal 总结
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用BigDecimal。 BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进原创 2021-10-13 19:31:13 · 1205 阅读 · 1 评论 -
JDK1.8中LocalDate和LocalDateTime常用方法总结
一、 LocalDateLocalDate now = LocalDate.now(); //当前时间int day = now.getDayOfYear(); //当前时间在所在年份的第几天DayOfWeek week = now.getDayOfWeek(); //当前时间是星期几(英文显示)int getDayOfMonth = now.getDayOfMonth(); //当前日期是当月的第几天Month getMonth = now.getMonth(); //当前月份(月份显示英文)转载 2021-10-13 11:24:10 · 5003 阅读 · 0 评论 -
jdk1.8中HashMap(数组+链表+红黑树)
1、构造方法:// 构造一个空的HashMap,具有默认的初始容量public HashMap() { // 负载系数,默认值是0.75f this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted}// 使用指定的初始值构造一个空的HashMappublic HashMap(int initialCapacity) { // 初始容量和负载系数 this(initialCap原创 2021-09-23 19:28:17 · 1432 阅读 · 0 评论 -
hashMap 中的 tableSizeFor()
tableSizeFor:(不考虑大于最大容量的情况)是返回大于输入参数且最近的2的整数次幂的数。比如10,则返回16。该算法源码如下:static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n |= n >&g原创 2021-09-23 16:38:34 · 397 阅读 · 0 评论 -
与运算(&)、或运算(|)、异或运算(^)
一、与运算符(&)运算规则:0&0=0;0&1=0;1&0=0;1&1=1; (两个同时为1,结果为1,否则为0)例如:3&5结果:0000 0011 & 0000 0101 = 0000 0001,因此:3&5 = 1二、或运算(|)运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1; (有一个为1,结果为1,否则为0)例如:3|5结果:00000011 | 0000 0101 = 00000原创 2021-09-16 18:44:03 · 7274 阅读 · 0 评论 -
mysql安装配置
已有mysql安装包(安装包地址)第一步:新建my.ini文件在安装包的bin下新建my.ini文件(例如我的安装目录D:\tool\mysql-8.0.16-winx64\bin)[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录basedir=D:\tool\mysql-8.0.16-winx64 # 设置mysql数据库的数原创 2021-08-30 22:24:07 · 331 阅读 · 0 评论 -
list和set 中 contains()方法的效率
list.contains(o) :遍历集合所有元素,用每个元素和传入的元素进行 equals 比较,如果集合元素有 n 个,则会比较 n 次,所以时间复杂度为 O(n) 。方法源码如下:// ArrayList 中的方法public boolean contains(Object o) { return indexOf(o) >= 0;} public int indexOf(Object o) { if (o == null) { for .原创 2021-08-30 18:55:04 · 2275 阅读 · 1 评论 -
简单工厂模式(不在23种设计模式中)
简单工厂模式一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂一、 普通简单工厂例子:以用面粉生产面条和馒头为例,类图如下:类图主要角色抽象类(Food):为具体实现提供公共接口具体类(Noodle,SteamedBun):实现抽象类的公共接口工厂类(FoodFactory):提供创建实体对象的方法代码实现如下抽象类/** * 接口类 */public interface Food { void process();}具体类/** * 面条原创 2021-08-10 14:13:01 · 190 阅读 · 0 评论 -
HashMap中put()、putIfAbsent()、compute()、computeIfAbsent()、computeIfPresent()方法的区别与应用
put方法V put(K key, V value);使用:put会覆盖Map集合中已存在的key对应的value,并返回valueputIfAbsent方法default V putIfAbsent(K key, V value) { V v = get(key); if (v == null) { v = put(key, value); } return v; }使用:方法会先判断指定的原创 2021-06-25 11:00:45 · 983 阅读 · 0 评论 -
List、Set集合通过Stream流求和
一、泛型为Integer、Long、Double、BigDecimal求和Integer sum = scores.stream().reduce(Integer::sum).orElse(0);Long sum = scores.stream().reduce(Long::sum).orElse(0L);Double sum = scores.stream().reduce(Double::sum).orElse(0.00);BigDecimal sum = scores.stream().red原创 2021-01-18 11:58:36 · 5606 阅读 · 4 评论