![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 80
loopnz_
这个作者很懒,什么都没留下…
展开
-
强引用、软引用、弱引用、幻象引用之间的区别和联系
对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为 null,就是可以被垃圾收集的了,当然具体回收时机还是要看垃圾收集策略。幻象引用仅仅是提供了一种确保对象被 finalize 以后,做某些事情的机制,比如,通常用来做所谓的 Post-Mortem 清理机制,我在专栏上一讲中介绍的 Java 平台自身 Cleaner 机制等,也有人利用幻象引用监控对象的创建和销毁。不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。原创 2023-09-03 17:47:52 · 177 阅读 · 0 评论 -
Java j.u.c并发包里都有些啥?
java.util.concurrent 包提供的容器(Queue、List、Set)、Map,从命名上可以大概区分为 Concurrent*、CopyOnWrite和 Blocking等三类。原创 2023-08-24 23:55:58 · 118 阅读 · 0 评论 -
类是怎么加载的?双亲委派模型?
Java 的类加载过程分为三个主要步骤:加载、链接、初始化首先是加载阶段(Loading),它是 Java 将字节码数据从不同的数据源读取到 JVM 中,并映射为 JVM 认可的数据结构(Class 对象),这里的数据源可能是各种各样的形态,如 jar 文件、class 文件,甚至是网络数据源等;如果输入数据不是 ClassFile 的结构,则会抛出 ClassFormatError。**加载阶段是用户参与的阶段,我们可以自定义类加载器,去实现自己的类加载过程。原创 2023-08-22 22:53:54 · 87 阅读 · 0 评论 -
Java的IO方式
Java IO 方式有很多种,基于不同的 IO 抽象模型和交互方式,可以进行简单区分。首先,传统的 java.io 包,它基于流模型实现,提供了我们最熟知的一些 IO 功能,比如 File 抽象、输入输出流等。交互方式是同步、阻塞的方式,也就是说,在读取输入流或者写入输出流时,在读、写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。java.io 包的好处是代码比较简单、直观,缺点则是 IO 效率和扩展性存在局限性,容易成为应用性能的瓶颈。原创 2023-08-20 17:39:29 · 103 阅读 · 0 评论 -
Java中的List和Map
我们可以看到 Java 的集合框架,Collection 接口是所有集合的根,然后扩展开提供了三大类集合,分别是:List,Set,Queue。原创 2023-08-20 23:36:11 · 91 阅读 · 0 评论 -
Exception和Error有什么区别
Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。原创 2023-08-16 23:48:02 · 60 阅读 · 0 评论 -
yyyyMMdd,YYYYMMdd,yyyymmdd有什么区别
字母日期或时间元素表示示例GEra 标志符TextADy年Year1996;96M年中的月份MonthJuly;Jul;07w年中的周数Number27W月份中的周数Number2D年中的天数Number189d月份中的天数Number10F月份中的星期Number2E星期中的天数TextTuesday;TueaAm/pm 标记TextPMH一天中的小时数(0-23)Number0k一天中的小时数(1-24)Number24K。原创 2023-08-07 00:04:36 · 620 阅读 · 0 评论 -
JVM参数设置
JVM参数设置1、堆设置-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5-XX:MaxPermSize=n:设置持久代大原创 2023-08-07 00:01:40 · 290 阅读 · 0 评论 -
Lombok踩坑
想要使用@Builder,最简单的方法就是直接写上这4个注解,有默认值的话再加上@Builder.Default注解} }原创 2023-08-06 23:49:37 · 262 阅读 · 0 评论 -
深复制与浅复制
Object中的clone()方法在对某个对象实施克隆时对其是一无所知的,它仅仅是简单地执行域对域的copy,这就是Shallow Clone。这样的话如果有一个类为ClassA,它里面有一个域a不是基本类型的变量,而是一个reference变量,经过Clone之后克隆类只会产生一个新的A类型的引用,它和原始引用都指向同一个a对象,这样克隆类就和原始类共享了一部分信息,这就是浅复制。(八种基本类型除外,他们可以自动实现深复制)原创 2023-08-06 23:46:57 · 23 阅读 · 0 评论