
JavaSE
文章平均质量分 74
Java个人技术专栏。
记录。
木子dn
风中的纸屑,水上的落叶。所以,全都抓住好了!
展开
-
22种常用设计模式示例代码
仓库地址参考教程。原创 2024-06-18 16:28:24 · 764 阅读 · 1 评论 -
深入探讨5种单例模式
以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。原创 2024-06-05 21:51:10 · 583 阅读 · 0 评论 -
Java - JVM
所以,当我们说“方法区”时,从概念上讲,它是JVM的一个独立逻辑部分,但在HotSpot JVM的具体实现中,直到Java 7为止,它是作为堆内存结构的一个部分(即永久代)来实现的,永久代是堆的一个物理部分。💡从Java 8开始,HotSpot JVM去除了永久代的概念,引入了元空间(Metaspace),并且元空间是在本地内存中,而不是在堆内存中。因此,在Java 8及以后的版本中,方法区的实现从永久代变为了元空间,方法区(现在通常指的是元空间)与堆内存是完全分开的。元空间的概念仍然在JVM内存模型中。原创 2024-03-05 14:31:40 · 1065 阅读 · 0 评论 -
Java - 锁
如果加锁的时间过长,其他用户长时间无法访问,影响程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是长事务而言,这样的开销往往无法承受。通常情况下,自旋锁适用于锁被持有时间短、锁的竞争不激烈的情况下,能够有效提高并发性能。阻塞锁,可以说是让线程进入阻塞状态进行等待,当获得相应的信号(唤醒,时间) 时,才可以进入线程的准备就绪状态,准备就绪状态的所有线程,通过竞争进入运行状态。锁升级是Java虚拟机对锁状态的动态调整过程,旨在根据实际的锁竞争情况和线程行为来选择最适合的锁策略,以提高程序的并发性能。原创 2024-02-23 16:02:07 · 802 阅读 · 0 评论 -
JavaSE-高级特性
在这个代理中,被代理的类传入,Proxy.newProxyInstance中重写的invoke方法里,就是在重写被代理类的所有方法,定义一个Demo类,在类中定义一个test1方法,并在该类和其方法上使用MyTest4注解。定义AnnotationTest3测试类,解析Demo类中的全部注解。需求:对一个类的所有方法前后都加上计时,当类的方法被调用时,输出时间。需求:对于任意对象,将对象的字段名和对应的值保存到文件中去。这是解析类,解析Demo类上的注解以及Demo类方法的注解。定义注解MyTest4。原创 2023-10-14 19:20:25 · 73 阅读 · 1 评论 -
JavaSE-网络通信
CS架构( Client客户端/Server服务端)BS架构(Browser浏览器/Server服务端)IPV4共32bit,4字节,形如192.168.000.001IPV6共128bit,16字节,形如2001:0db8:0000:0023:0008:0800:200c:417aIPV4形为4位十进制数,每个数字基于8bit,范围0~255IPV6形为8位十六进制数,每个数基于16bit,范围0000~FFFF(0 ~ 65535)使用Java自带的可以互动IP。原创 2023-10-14 17:54:20 · 85 阅读 · 1 评论 -
JavaSE-多线程
使用线程池可以复用线程,迭代任务不迭代线程,这样意味着,我们只能只用Runnable和Callable的方式开多线程。同步方法其实底层也是有隐式锁对象的,只是锁的范围是整个方法代码。如果方法是静态方法:同步方法默认用类名.class作为的锁对象。Lock锁,定义一把锁,需要加锁时lock,结束时unlock,如果方法是实例方法:同步方法默认用this作为的锁对象。创建线程有三种方式,都需要子类,然后在主程序中使用它。继承Thread类,重写run方法,这种方式简单,但是。同步方法,在方法前加上。原创 2023-10-13 17:09:31 · 54 阅读 · 0 评论 -
JavaSE-日志文件
所以要使用Logback首先需要添加3个依赖,去maven仓库搜一下,用maven加载就好。接着这样在代码中引入logback日志输出器。热门的Logback是基于SLF4J实现的。文件来配置logback一些东西,文件放在。然后我们可以通过一个。原创 2023-10-13 14:56:45 · 66 阅读 · 0 评论 -
JavaSE-IO
第五行是序列流,适合保存读取对象,对象需实现Serializable接口,transient关键字可以设置某变量不参加序列化。第二行是Buffer缓冲流,自带8KB缓冲池,相当于缓存之于cpu和硬盘的感觉。需要注意的是字节流适合完整的复制文件之类的操作,而字符流尤其适合纯文本文件。第四行是数据流,适合保存读取基本类型数据,保存后的文件打开是乱码很正常。除了原始流,其他的都是高级流,高级流都封装了原始流,并且性能都比较好。第三行是打印流,符合平常的println习惯。第一行实现类,都是原始流,原创 2023-10-13 14:42:45 · 55 阅读 · 0 评论 -
JavaSE-Stream流
从流的出生,经过过滤,排序,去重等各种方法,变成最后的结果,就像水流一样,在代码层面也类似地简单明了,最大的优点是不用自己去保存中间状态,而是可以一直往后操作,直到遇到Stream的终结方法。原创 2023-10-13 12:27:05 · 101 阅读 · 0 评论 -
JavaSE-集合
Java基础集合分为两大类,Collection和Map,前者单列集合,后者双列集合。原创 2023-10-12 21:12:42 · 58 阅读 · 1 评论