Java
文章平均质量分 54
程序员阿狸
编程界的 “沈腾”,以乐观的心撰写有趣的文章
展开
-
Java 创建线程的四种方式
如果无限制的创建线程,不仅会消耗系统资源,还会降低系统的稳定性,通过线程池可以进行统一的分配,调优和监控。意味着如果 t1 线程一直在运算,main 线程需要一直等待 t1 的结束,拿到结果才能继续运行。创建一个 MyRunnable 内部类实现 Runnable 接口,重写 run() 方法。futureTask.get() 方法可以得到线程返回结果,但是该方法是阻塞的。在主线程中创建 MyThread 类对象,调用 start() 方法启动线程。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。原创 2023-02-12 21:17:45 · 363 阅读 · 0 评论 -
stream.map 和 stream.foreach 的区别
网上很多关于讲解这俩个区别的文章,但大多数要么不明不白,要么太复杂难理解。所以自己通俗的讲一下,毕竟不会太深奥,只是个人理解。什么是 stream 流我们在使用集合或数组对元素进行操作时往往会遇到这种情况:通过对不同类型的存储元素,按照特定条件进行查找、排序、等操作时往往会写一大段代码,而且更要命的是,不同类型的数据,操作的方法也不一样,比如一个存储 Student 实体类和一个只存储 String 类型的集合俩者的操作步骤肯定大不一样且无法通用,而 stream API 就解决了这些问题,对数据操作时原创 2022-04-17 15:49:33 · 3447 阅读 · 0 评论 -
Java 集合 add 方法重复添加问题
首先需要知道的是,在 add 方法里面,对于引用类型的对象,存放的是引用类型的地址,尤其是当我们使用 new 出来的对象并调用集合中的 add 方法来添时,当改变了该对象的属性,但该对象的地址并没有改变,所以当对象里面的属性改变的时,原本存放在集合里面的内容也会跟着一起改变,并在添加的过程中添加重复的内容放集合中去,避免的方法就是每次添加的时候重新 new 来开辟新的内存空间来保存对象信息,若需要添加多个,则应当在循环里面定义。举例说明👇//定义一个老师,赋予值Teacher teacher = ne原创 2022-03-20 17:29:10 · 1722 阅读 · 0 评论 -
Serializable接口的作用
在上周使用 Mybatis-Plus 做项目时无意发现,对于储存信息的实体类上面自动实现了 Serializable 接口,这不禁让我回忆到刚开始学 Java 时,对于 Serializable 接口的作用只停留在进行序列化的理解上,当初的理解认为对于序列化这个解释,就是把实体类信息进行封装存储到数据库中或者将实体类信息进行磁盘上的存储。但是疑问点来了,既然 Serializable 接口是为了将实体类信息进行存储,那为什么我们平时写的实体类在存储到数据库时没有实现接口却仍然可以进行数据的存储?虽然网原创 2022-03-06 14:06:15 · 10302 阅读 · 2 评论