
java复习
文章平均质量分 51
Hubert-hui
软件界里,总会有那么一些桀骜不驯的人,用一个电脑,在某一个不经意的晚上,写了一段代码,惊艳了 这个世界。
人生啊,就是一场修行!
展开
-
序列化进阶2-常见序列化框架
上一篇 序列化进阶1-Java序列化注意事项。Java 序列化还可以实现 深克隆哦。在 Java 中存在一个 Cloneable 接口,通过实现这个接口的类都会具备clone 的能力,同时 clone 是在内存中进行,在性能方面会比我们直接通过 new 生成对象要高一些,特别是一些大的对象的生成,性能提升相对比较明显。深克隆和浅克隆在这就不谈了。Java 序列化实现深克隆的原理是把对象序列化输出到一个流中,然后再把对象从序列化流中读取出来,这个对象就不是原来的对象了。序列化框架开源工具优势劣势JavaJAV原创 2022-06-29 09:30:01 · 477 阅读 · 0 评论 -
序列化进阶1-Java序列化注意事项
上一篇小作文,我们介绍了什么是序列化 认识序列化。下面我们谈一谈,Java 序列化的注意事项。静态变量不能被序列化。序列化保存的是对象状态,静态变量保存的是类状态,因此序列化并不保存静态变量。transient 关键字的作用是阻止变量的序列化,变量声明时加上该关键字,变量将不再是对象持久化的一部分,该变量内容在序列化后无法被访问,即反序列化后,transient变量的值被设为初始值,如 int 类型的是 0,对象类型的是 nulltransient关键字只能修饰变量,而不能修饰方法和类。本地变量是不能被tr原创 2022-06-16 09:27:54 · 435 阅读 · 0 评论 -
认识序列化
什么是序列化?我理解的序列化就是将数据按照某种规则转换一种方式存储,实现对数据的压缩和跨平台使用。应用到 Java 对象序列化就可以理解为:对象脱离JVM 的限制进行持久化传输和使用。Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM 生命周期更长。但在现实应用中,就可能要求在 JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java 对象序列化就能够帮助我们实现该功能简原创 2022-06-13 22:54:25 · 265 阅读 · 0 评论 -
分布式系统中的CAP理论
CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。先说结论:一般是 CP、AP 两种情况。P 可以算是分布式的基础。当然也可以选择 CA,即不允许分区。分析:通过一个案例来分析一下现在网络中某个服务两个节点S1和S2,他们之间网络可以连通,S1中有一个应用程序APP1,和一个数据库DB1,S2也有一个应用程序APP2和一个数据库DB2。现在,APP1和APP2是分原创 2022-05-22 15:41:25 · 1470 阅读 · 1 评论 -
java对象转换为xml格式字符串
java对象转换为xml格式字符串转载 2021-02-09 10:53:44 · 385 阅读 · 1 评论 -
JAVA基础回顾
原创 2021-02-06 21:43:19 · 277 阅读 · 0 评论 -
Hashmap链表长度为8时转换成红黑树,你知道为什么是8吗
hashmap当中有一些默认的属性其实是经过反复的推敲才确定的,今天我们说说为什么要等链表长度为8的时候才转换红黑树引言8这个阈值定义在HashMap中,如下所示,这段注释只说明了8是bin(bin就是bucket,即HashMap中hashCode值一样的元素保存的地方)从链表转成树的阈值,但是并没有说明为什么是8: /** * The bin count threshold for using a tree rather than list for a * bin. .转载 2021-02-03 14:07:58 · 3770 阅读 · 0 评论 -
漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
漫画 | 一台Linux服务器最多能支撑多少个TCP连接?转载 2021-01-04 21:50:21 · 430 阅读 · 0 评论 -
java 实现Word或Excel 转Pdf
1:首先需要引入相关的jarword转pdf需要引入 aspose-words-15.8.0-jdk16.jar下载JAR包 Wordhttp://note.youdao.com/noteshare?id=1e73ab1c91abad338271d50a881165c2excel转pdf需要引入aspose-cells-8.5.2.jar Excelhttp://note.youdao.com/noteshare?id=f75d87445106ea6ca6b54cfa58bc4fb2...转载 2020-12-28 10:40:14 · 878 阅读 · 0 评论 -
JVM 学习前言摘抄
被真相蒙蔽,是一件痛苦的事情。我们在一个被层层封装的世界里进行开发和设计,操作系统、各种中间件与框架,将底层世界隐藏地结结实实。我们一方面享受着高级编程语言所带来的高效、稳定、快速的开发体验,然而另一方面,却又如同行走于黑暗之中。我们不知道路的下面是否有坑,即使知道有坑,可能也不知道如何排除。Java 的很多概念和技术,很多时候由于我们对于底层机制的不了解,而让我们感到十分高深莫测,无法窥其全貌。这种感觉十分痛苦,尤其是技术修炼到一定阶段的时候,纸上得来终觉浅,绝知此事要躬行。即使从 Java 语言层面转载 2020-12-21 11:53:40 · 232 阅读 · 0 评论 -
Lombok的@Builder注解使用注意
背景:业务运行过程中,发现使用Lombok的@Builder以及@Data 共同标注的类,使用反射的时候报错。找不到无参构造方法。@Data和@Builder 共同使用导致无参构造丢失 单独使用@Data注解,会生成无参数构造方法。 单独使用@Builder注解,生成全属性的构造方法,无无参构造方法。 @Data和@Builder一起用:没有了默认的构造方法。手动添加无参数构造方法或者用@NoArgsConstructor注解会报错 于是看了一下Lombok...原创 2020-12-15 19:19:53 · 1337 阅读 · 0 评论 -
Spring boot 项目使用 redisson 延迟队列
背景:有些场景下,需要延迟触发一些任务。比如:延迟几秒钟发送短信或者邮件;某些业务系统回调,需要延时几秒钟后回调。当然,实现延时触发的方式有很多。博主这里采用 redisson 的RDelayedQueue,一是因为接入简单,二是没有分布式的问题。毕竟现在微服务大行其道接下来,进入正题。使用步骤:使用 延迟队列呢,一般就几个步骤:添加消息进入延迟队列 从延迟队列中取出消息消费下面贴一下代码:1.首先定义一个消息的承载实体:import lombok.Data;/*.原创 2020-11-17 10:31:05 · 1128 阅读 · 0 评论 -
sql count(*) count(列名) count(1)
有点好奇 count(*) 、count(1) 以及 count(列名) 有什么区别。便尝试查询了一下。结果如下:准备工作:准备一张表,我这边使用的 表 order. 大概有二十个字段,数据总量 43044 条。存储引擎:InnoDB数据库: Mysql查询操作:select COUNT(*) from app_order; 耗时: 21 ms结果: 43044 select COUNT(1) from app_order; 耗时: 21 ms结果: 43044 id 为主原创 2020-10-19 18:33:13 · 494 阅读 · 0 评论 -
java复习-JVM
JVM基础原创 2020-08-21 07:39:18 · 416 阅读 · 0 评论 -
Java 复习-锁
公平锁、非公平锁非公平锁JVM 按随机、就近原则分配锁的机制则称为不公平锁,ReentrantLock 在构造函数中提供了是否公平锁的初始化方式,默认为非公平锁。非公平锁实际执行的效率要远远超出公平锁,除非程序有特殊需要,否则最常用非公平锁的分配机制。公平锁公平锁指的是锁的分配机制是公平的,通常先对锁提出获取请求的线程会先被分配到锁,ReentrantLock 在构造函数中提供了是否公平锁的初始化方式来定义公平锁。ReentrantLock 与 synchronizedReentrant转载 2020-08-23 08:09:49 · 469 阅读 · 0 评论 -
String 类为何要保证不可变
为了安全性和效率。打开 String 的源码,你会看到 String 是 final 修饰的。主要的 字段也是 final 修饰的,为了保证 String 的不可变。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private原创 2020-09-29 13:36:13 · 352 阅读 · 0 评论