java基础
Key~美好的每一天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java工厂模式
工厂模式用于创建对象,将对象的创建和使用分开,创建对象的时候不再去new,而是使用工厂来创建对象,提高了代码的可维护性,可扩展性和灵活性。工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式。原创 2025-08-12 11:23:32 · 218 阅读 · 0 评论 -
Java中的包装类
Java中的八种基本数据类型都有其对应的包装类,将基本数据类型转换为对象。原创 2025-05-09 15:36:23 · 481 阅读 · 0 评论 -
JVM、JRE、JDK的区别
JVM全称Java虚拟机(Java Virtual Machine, JVM),它是运行java字节码的虚拟机,JVM针对不同的系统有不同的实现,目的运行相同的字节码有同样的结果,JVM是“一次编译,到处运行”实现的关键。如下不同的编程语言编译生成字节码文件,通过JVM在不同的操作系统上运行。原创 2025-05-09 10:21:49 · 494 阅读 · 0 评论 -
创建线程的四种方式
在我们需要线程执行完任务有返回值的时候,可以去实现runnale接口,需要重写call方法,在call方法内线程去执行任务,执行完成后会有返回值。需要注意的是new Thread()不能传Callable的实现类,没有这个构造方法,需要用FutureTask包装一下,然后传FutureTask进去。原创 2025-03-09 15:29:56 · 239 阅读 · 0 评论 -
线程的生命周期
等待:调用wait方法,进入等待状态,当调用notify方法时会唤醒线程,重新进入就绪状态。阻塞:线程抢锁失败,会阻塞,当获得锁会进入就绪状态,抢到cpu时间片进入运行状态。超时等待:调用sleep方法进入休眠,休眠多久可以设置,时间到了进入就绪状态。新建:当我们去new Thread的时候,线程就处于新建状态。运行:线程抢到了cpu时间片,执行run方法。就绪:调用了start方法,线程准备运行。终止:线程执行完run方法,终止变成垃圾。原创 2025-03-09 16:03:18 · 196 阅读 · 0 评论 -
ConcurrentHashMap实现原理
ConcurrentHashMap是线程安全的HashMap,他在jdk1.7和1.8中有不同的实现。原创 2025-03-16 16:34:18 · 308 阅读 · 0 评论 -
引用拷贝、浅拷贝和深拷贝
浅拷贝去拷贝对象时,会在堆上新建对象,对于基本数据类型的属性,会直接拷贝其值;而对于引用类型的属性,会拷贝它的引用地址。引用拷贝会去拷贝对象的引用,也就是对象的内存地址,不会在堆上新建对象。深拷贝会完整的拷贝对象,包括它的引用类型的属性。原创 2025-03-19 20:10:22 · 214 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别
String是不可变的,这是因为String内部用于存储数据的char[]数组用了final关键字修饰,而且是private的,并且没有对外提供修改数组的方法。StringBuffer和StringBuilder是可变的,它们内部的char数组没有用final关键字修饰。StringBuffer中的方法都用了Synchronized修饰,也是线程安全的。String不可变,每次操作String都会生成新的对象,它的性能最低。由于String是不可变的,所以它是线程安全的。String适合操作少量的数据。原创 2025-03-19 20:28:48 · 249 阅读 · 0 评论 -
==和equals的区别?
比如String类就重写了equals方法,它会先用==判断两个对象的内存地址是否相同,相同直接返回true,不相同再去判断字符串的内容是否相等,相等返回true,否则返回false。如果没有重写equals方法,会去调用Object类的equals,其实就是去用了==比较两个对象。equals是Object类的方法,所以所有的类都有equals方法。如果重写了equals方法,会按照重写的逻辑来判断对象是否相等。对于引用数据类型,比较的是它们的内存地址。对于基础数据类型,比较的是值是否相等。原创 2025-03-19 20:36:22 · 256 阅读 · 0 评论 -
为什么重写了equals必须要重写hashCode?
hashcode方法用于获取对象的哈希码,一般用于快速找到对象在容器中的索引位置以及快速判断对象是否相等。比如说set集合,它其中的元素是唯一的,我们往set集合里put元素的时候,它会先去判断set中有没有元素和加入的元素的hashcode相等,如果没有就直接加入set,否则就用equals判断是否相等,不相等就加入set,否则就不加入。因为hashcode可能会发生哈希冲突,所以如果两个对象的hashcode相等,它们的equals不一定相等。原创 2025-03-19 20:54:44 · 179 阅读 · 0 评论 -
受检异常和非受检异常
非受检异常指在编译时不强制我们去捕获或者抛出的异常,所有的RuntimeException都是非受检异常,比如NullPointerExcetion、IndexOutOfBoundsException。受检异常指在编译时需要我们强制去捕获或者抛出的异常,比如IOException、SQLExcetion。受检异常的好处就是在发生这些异常的时候,我们能及时去做一些相应的处理,比如发生SQLException的时候我们可以去通过try-catch去捕获,然后及时的关闭数据库连接池对象。原创 2025-03-20 14:14:02 · 520 阅读 · 0 评论 -
java对象的生命周期
java对象的生命周期可分为。原创 2025-03-24 16:22:53 · 929 阅读 · 0 评论 -
谈谈你对多态的理解
多态是面向对象三大特征之一,我的理解就是多态可以使不同的对象,去调用同名的方法的时候有不同的实现。原创 2025-03-29 16:16:35 · 294 阅读 · 0 评论
分享