- 博客(9)
- 收藏
- 关注
原创 Java包装类
数据库查询结果可能是null,如果用基本数据类型接收,因为Java语法糖中的自动拆箱,就会变成 null.xxxValue(),发生NPE错误。8种基本数据类型对应的包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean。基本数据类型一般是局部变量,存放在Java虚拟机栈的局部变量表中,而包装类属于对象类型,存在于堆中。包装类不赋值就是 null,基本数据类型不赋值会有默认值。三目运算符使用不当,也会由于自动拆箱,发生NPE问题。
2023-03-16 22:54:04
70
1
原创 Java多线程
Java为线程类提供了10个优先级,数字越大优先级越高,优先级可以用整数1-10表示,超出范围会抛出异常,主线程默认优先级为5。线程优先级高的线程不一定会先执行,线程优先级越高,先执行执行的概率会更高。notify()方法:随机唤醒处于等待的某一个线程,使其结束等待。MAX_PRIORITY:线程的最高优先级10。NORM_PRIORITY:线程的默认优先级5。MIN_PRIORITY:线程的最小优先级1。可运行(Runnable)正在运行(Running)阻塞(Blocked)
2023-03-16 22:51:05
37
原创 Java多线程之线程池
线程池就是管理一系列线程的资源池。当有任务要处理时,直接从线程池中获取线程来处理,处理完之后线程并不会立即被销毁,而是等待下一个任务。
2023-03-16 22:50:31
738
原创 Java异常体系
异常本质上是程序的错误,错误在我们编写程序的过程中经常发生,包括编译期间和运行期间的错误,编译期间错误编译器会给出提示,运行期间错误编译器不会提示,往往难以所料。
2023-03-16 22:46:09
98
原创 Java中的String
s4 由于 s1 s2 是变量,s4的结果只能在运行时动态地new StingBuilder(),调用append()方法,s4 在堆内存中。在程序运行时,虚拟机指令执行到 ldc 时,首先会到运行时常量池的StringTable中寻找,没有则加入StringTable。s5 在编译期间就已经确定为 “ab” (编译期间优化),执行到对应的ldc指令时,直接从StringTable中拿来用。在程序编译后,“a”、“b”、“ab” 存在常量池中,此时它们只是符号,在运行时会被加入到运行时常量池中。
2023-03-16 22:44:11
69
原创 Java面向对象基础
Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型,本质上比较的都是值,只是引用类型存的值是对象的地址。接口中的成员变量只能是 public static final 类型的,不能被修改且必须有初始值;接口对类的行为进行约束;抽象类的应用场景是,父类只是知道子类应该有什么方法,但是不知道具体的实现逻辑,实现方式可以有很多种。new 创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)。对于引用数据类型来说,== 比较的是对象的内存地址。
2023-03-16 22:43:09
36
原创 SQL优化
InnoDB的行锁是针对索引加的锁,在更新数据时,根据索引去更新只会触发行锁,不根据索引更新 或 索引失效 会触发表锁。count(主键):InnoDB 引擎会遍历整张表,把每一行的主键id取出,返回给服务层。count(1):InnoDB 引擎会遍历整张表,但不取值。服务层对返回的每一行,放一个数字1进去,直接进行累加。按照效率排序:count(*) > count(1) > count(主键) > count(字段)count(*):InnoDB做过优化,不会取出全部字段,而是在服务层直接累加。
2023-03-16 22:39:49
35
原创 MySQL索引
索引 (index)是帮助 MySQL 高效获取数据的 (有序)数据结构。数据库除了存储数据外,还维护着实现了高级查找算法的数据结构,这些数据结构以某种方式指向数据,这种数据结构就是索引。
2023-03-16 22:30:53
68
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人