- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 对AQS的简单理解
对于AQS的理解AQS全称AbstractQueueSyvchronizer 抽象队列同步器,内有volatile修饰的int型state变量来记录锁的状态,还有一个变量记录占有锁的线程,以及FIFO的队列。是并发的核心组件。比如JUC.Locks.ReentrantLock的加锁与释放锁就是基于AQS实现的。ReetrantLock默认是非公平的当有一线程到达,尝试CAS获取锁,获取成功则将state由0置为1,并记录当前线程占有锁。若失败,则判断占有锁的是否是当前线程,如果是则将state+1
2021-09-21 19:49:18
128
原创 2021-08-19
关于多线程 为什么调用start()方法会自动执行run()方法,而不是直接调用run()方法new一个Thread,线程进入新建状态,调用start()方法后,会启动一个线程并进入就绪状态,当分配到时间片后就可以运行了,start会执行线程的相应准备工作,然后执行run方法,是真正的多线程。而直接调用run()方法的话,会被当做main线程下的一个普通方法,不会在某一个线程内执行它,并不是多线程工作。...
2021-08-19 09:47:39
106
原创 2021-08-18
java 堆(Heap)java中堆是被线程共享的一块区域。用来存放 数组与对象。是垃圾回收GC的重要区域。因为现代VM采用分代收集算法,因此从垃圾收集的角度,堆中分为新生代与老年代。新生代又分为Eden区 from survivor区 to survivor区...
2021-08-18 21:12:51
115
原创 2021-08-18
抽象类与接口抽象类可以存在普通方法可以有各种类型的变量抽象类只能继承一个抽象类是对类本质的抽象,表达的是is a的关系,比如猫是动物接口jdk8及之后可以存在public方法以及public static方法变量默认为public static final 修饰接口可以实现多个接口的目的是对类的行为进行约束,规定了类必须做什么。可以强制不同的类拥有相同的行为。只约束了行为的有无,而不管行为的实现。是like a的关系,比如可以像鸟一样飞。...
2021-08-18 15:16:27
92
原创 2021-08-18
static 关键字总结用于类方法与类成员变量被static修饰的方法不单属于某个对象,而是被类中的所有对象公有,可以通过类名.方法或对象.方法调用。被static声明的成员变量属于静态变量,在jvm中的方法区存放。可以通过类名.变量或对象.变量调用用于静态代码块static修饰的代码块定义在类的方法外,先于非静态代码块执行,执行顺序:静态代码块->实例代码块->构造方法。注意:不管创建多少对象,静态代码块只加载一次。静态内部类static只能用于内部类,静态内部类实例的创建不依
2021-08-18 07:55:49
103
原创 2021-07-29
关于this与super关键字this可用于实例方法,构造方法在实例方法中使用this关键字调用其他的实例方法或类方法以及属性。public class employee{ Employees[] employees; void manageEmployees() { int totalEmp = this.employees.length; System.out.println("Total employees: " + totalEmp);
2021-08-17 08:13:30
84
原创 Java Scanner对象
next()方法 会去除空格,所以不能作为内部有空格的字符串的输入。读取到有效字符时才可以结束输入 nextLine() 可以输入带空格的字符串 以Enter作为结束。 jin'liang 用完Scanner记得scanner.close();关闭输入。 hasNexInt(); 判断是否输入整数 nextInt 输入整数 hasNextFloat();同理 ...
2021-07-30 16:59:57
127
原创 Java 命名规范
所有变量,方法,类名:见名知意 类成员变量:首字母小写与驼峰原则 局部变量:首字母小写与驼峰原则 常量:大写字母和下划线:MAX_VALUE 类名:首字母大写和驼峰原则 方法名:首字母小写和驼峰原则 ...
2021-07-30 16:58:45
83
原创 Java 基本数据类型转换
注意点 不能对布尔值进行转换 不能把对象类型转换为不相干的类型 把高容量转换到低容量时,强制转换 强制转换时可能存在内存溢出或者是精度问题 精度问题 int money=10_0000_0000;int years=20;int total=money*years;//-147836480,计算的时候溢出了int total=((long)money)*years;//先把任意一个数转换为long就可以了 ...
2021-07-30 16:57:06
92
原创 位、字节和字符
位 (bit):是计算机内部存储的最小单位,11001010是一个八位二级制书 字节(byte): 是计算机数据处理的基本单位,习惯用大写B来表示 字符: 是指计算机中使用的字母,数字和符号。
2021-07-30 16:55:18
284
转载 Java中this和super的用法总结
private static String test() { String str = "start"; try { return str = "try ruturn"; //这里定义为正常return } catch (Exception e) { return str = "catch ruturn"; //这里定义为异常return }finally { return str = "finally ruturn"; //这里定义为最终return } return ".
2021-07-30 16:26:26
172
2
原创 StringBuffer.capacity(); 获取容量池
StringBuffer.capacity(); 获取容量池 容量池默认大小16,如果容量池大小不够会进行扩容, newCapacity=value.length*2+2; //将旧的容量 * 2 + 2 如果新的还不够,则用现有的容量,如果大于则用新扩容的容量。 ...
2021-07-30 16:23:03
223
1
原创 关于Java抽象类与接口的区别
首先要明白接口不是类而是抽象方法的集合区别抽象类中可以写普通的方法 对于接口:JDK1.8以后可以写static以及default的方法 抽象类中存在构造器,而接口不是类,所以不存在构造器 抽象类被继承extends 接口被实现implement,接口可以同时被实现多个 抽象类不能被new出来,接口可以...
2021-07-29 07:24:26
93
原创 二分查找,滑动窗口,HashSet
二分查找二分查找应设置左右区间,以及mid=left+(right-left)/2.当目标值大于mid时,将left设置为mid+1。反之,right=mid-1。滑动窗口滑动窗口适用于一些求合适值的数组类题目,一般设置为左闭右开区间。开始时i=j,窗口大小为0。HashSet哈希表是key-value形式的。key值不可以重复,value值可以重复。当求一个数重复出现时,哈希表比较适用。...
2021-07-20 21:23:44
106
JavaArrayList实现学生档案管理系统
2021-07-29
JavaTreeSet实现摊位销售管理系统
2021-07-29
JavaTreeSet停车场管理系统
2021-07-29
javaTreeSet实现图书管理系统
2021-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人