随笔分类 -  Java

Java语言相关
摘要:Java 代理的几种实现方式 静态代理 通过创建一个代理类来控制对目标对象的访问(也就是手动编写一个代理类)。 静态代理的优点是易于理解和实现,缺点是每个接口都需要定义一个代理类,而且功能较弱。 动态代理 动态代理分两种,Proxy接口代理和CGLib代理 接口代理 Proxy 代理是JDK内置代理 阅读全文
posted @ 2024-04-02 22:18 code-blog 阅读(36) 评论(0) 推荐(0) 编辑
摘要:哈希计算(Hashing)是一种将数据通过哈希函数(Hash Function)转换成固定长度的值(hash value)的过程,是一个通用的计算方式。 在Java中的表现就是hashcode()方法,在Object类上,常用于HashMap、HashSet等集合中,用于快速查找、唯一约束等作用。 阅读全文
posted @ 2024-03-29 13:49 code-blog 阅读(18) 评论(0) 推荐(0) 编辑
摘要:相同点: 都不能实例化 都可以被实现或者继承 继承或者实现的子类需要实现全部抽象方法,否则需要声明为抽象类 不同点: 不同点 抽象类 接口 声明 abstract interface 继承/实现 extends implements 构造器 可以有构造器 不能有构造器 方法 抽象方法和具体方法 抽象 阅读全文
posted @ 2024-03-26 22:05 code-blog 阅读(7) 评论(0) 推荐(0) 编辑
摘要:只列出主要新特性 Java 8 Lambda 表达式 函数式接口 Stream API 新的日期和时间 API 默认方法 Optional类 Java 9-11 Java 9 模块化系统 G1成为默认垃圾回收器(之前是CMS,Concurrent Mark-Sweep,即 新生代+老年代 标记清除。 阅读全文
posted @ 2024-03-25 22:54 code-blog 阅读(168) 评论(0) 推荐(0) 编辑
摘要:本文旨在总结多线程情况下集合的使用 Java中的集合大致以下三个时期: 第一代线程安全集合类 以Vector、HashTable为代表的初代集合,使用synchronized在修饰方法,从而保证线程安全。 缺点:效率低。 代码示例 Vectoradd方法源码 /** * Appends the sp 阅读全文
posted @ 2024-03-25 22:07 code-blog 阅读(55) 评论(0) 推荐(0) 编辑
摘要:本文为分布式学习笔记,参考了JavaGuide 各种锁概念介绍: 可重入锁:允许线程在持有锁的情况下多次获取同一个锁,而不会被自己所持有的锁所阻塞,这种特性也被称为锁的可重入性。 自旋锁:与传统的互斥锁不同,自旋锁不会将线程挂起(进入阻塞状态),而是在获取锁时不断循环尝试获取,直到成功为止,因此称为 阅读全文
posted @ 2024-03-22 10:33 code-blog 阅读(55) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第十二章 序列化 第 85 条 其他方法优先于 Java 本身的序列化 Java 本身的序列化漏洞过多,很容易被攻击。避免被序列化攻击的最好方式就是不要反序列化任何字节流,并且新的系统中没有任何理由使用 Java 本身的序列化。 JSON 和 Protobuf 阅读全文
posted @ 2024-02-21 16:18 code-blog 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第十一章 并发 第 78 条 同步访问共享的可变数据 多线程访问变量时,需要进行同步,否则就会产生并发问题。 同步代码块、加锁等 或者直接不共享变量,也就是将可变数据限制在单个线程内。 ThreadLocal这种 第 79 条 避免过度同步 为了避免活性失败和 阅读全文
posted @ 2024-02-21 16:18 code-blog 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第十章 异常 第 69 条 只针对异常的情况才使用异常 说白了就是不要吧你的业务逻辑用异常来写。 举个反例 比如用抛出异常来遍历一个数组: try { int i = 0; while(true) { range[i++].doSomething(); } } 阅读全文
posted @ 2024-02-21 16:17 code-blog 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第九章 通用编程 第 57 条 将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能。 将局部变量的作用域最小化,最好的办法就是在第一次使用变量的地方声明它。 几乎每一个局部变量都应该进行初始化。 第 58 条 阅读全文
posted @ 2024-02-21 16:17 code-blog 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第八章 方法 第 49 条 检查参数的有效性 基于“发生错误后应尽快检测出错误”这一通用原则,应对方法的参数进行检查。 Java 7 中增加了Objects.requireNonNull方法,可以很方便的对参数进行null检查并抛出异常: public voi 阅读全文
posted @ 2024-02-21 16:16 code-blog 阅读(6) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第七章 Lambda 和 Stream 第 42 条 Lambda 优先于匿名类 匿名类过于繁琐,使用 Lambda 可以使代码更清晰、更轻量。 但是,Lambda 没有名称和文档,如果一个实现过于复杂,那就不要放在 Lambda 中。 并且,Lambda 中 阅读全文
posted @ 2024-02-21 16:16 code-blog 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第六章 枚举和注解 第 34 条 用 enum 代替 int 常量 int 类型常量或者 String 类型常量作为参数的可读性和可维护性都比较差,甚至 IDE 都不好提示。 Java 中的枚举是完全单例,并且可以有字段、方法,以及实现接口(因为编译之后就是个 阅读全文
posted @ 2023-12-18 15:41 code-blog 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第五章 泛型 第 26 条 不要使用原生类型 随着泛型的普及,这条没什么可说的。 如果不知道具体类型,可以使用<?>来代替。 第 27 条 消除 unchecked 警告 原生类型到泛型转换时,编译会有警告,可以使用@SuppressWarnings("unc 阅读全文
posted @ 2023-12-12 16:26 code-blog 阅读(16) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第四章 类和接口 第 15 条 使类和成员的可访问性最小化 软件设计的基本原则之一:封装 第 16 条 使用 Getter/Setter 代替 public 字段 这书的翻译可真垃圾 第 17 条 使可变性最小化 标准库中有许多不可变类:String、基础类型 阅读全文
posted @ 2023-11-29 16:29 code-blog 阅读(18) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第三章 对于所有对象都通用的方法 第 10 条 重写 equals 时请遵守通用约定 重写 equals 方法很简单,但是很容易出现错误,最直接避免这种错误的方式就是不重写 equals, 当出现任意一下情况的时候,就不需要重写 equals: 类的每个实例在 阅读全文
posted @ 2023-11-29 14:05 code-blog 阅读(13) 评论(0) 推荐(0) 编辑
摘要:Effective Java 阅读笔记 第二章 创建和销毁对象 第 1 条:用静态工厂方法代替构造器 静态工厂方法优势: 静态工厂方法有名称 静态工厂方法可以详细的指定名称,而使用构造器时如果没有文档会难以区分不同构造器之间的区别。 不必每次调用的时候创建一个新对象 静态工厂方法可以缓存预先构建好的 阅读全文
posted @ 2023-11-28 16:29 code-blog 阅读(9) 评论(0) 推荐(0) 编辑
摘要:遇见的问题:做文件处理时,有两个工具类,一个是生成文件,需要一个OutputStream来写出,一个是上传文件,需要一个InputStream来读取 类似代码: // wordObj处理之后需要写出到一个输出流中 wordObj.write(OutputStream out); // ... // 阅读全文
posted @ 2023-01-06 17:10 code-blog 阅读(3761) 评论(0) 推荐(0) 编辑
摘要:最近学习了 sharding sphere 中的jdbc组件,此文作为学习记录方便以后复习。 中间件官网:Apache Sharding Sphere 学习准备 快速开始 分表 创建库表: CREATE DATABASE `db_device_0` DEFAULT CHARACTER SET utf 阅读全文
posted @ 2022-09-20 10:55 code-blog 阅读(310) 评论(0) 推荐(0) 编辑
摘要:Spring Data Jpa 动态表处理 Jpa 分表问题 现在有一张学生表t_stu按年份进行了处理,物理表分别是t_stu_2020、t_stu_2021、t_stu_2022这样 如果是mybatis,可以直接把表后缀传入sql,然后使用t_stu_${year}对表名进行拼接 但是对于Jp 阅读全文
posted @ 2022-07-19 10:54 code-blog 阅读(2286) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起