- 博客(5)
- 收藏
- 关注
原创 哈希code为什么是31
66×321+66=66×32+6666×321+66=66×32+66 计算: 65×32+97=2080+97=217765×32+97=2080+97=2177 66×32+66=2112+66=217766×32+66=2112+66=2177 →。: 31=25−131=25−1 → 乘以31可转化为: hash×31=(hash≪5)−hashhash×31=(hash≪5)−hash (−1 的质数),此类质数在模运算中可进一步优化: x mod 31=(x & 31)
2025-09-16 21:07:32
532
原创 NIO BIO AIO
三种IO的区别BIO(Blocking I/O) :同步阻塞I/O模式 一个人只去厨房烧水且坐等烧水成功NIO(New I/O):同步非阻塞模式 一个人只去厨房烧水且不定期来查看(轮询)AIO (Asynchronous I/O):异步非阻塞 I/O 模型 一个人只去厨房烧水且去看电视且烧水成功之后有提醒// 使用 BIO 写入文件try {bufferedWriter.write("学编程就上技术派");System.out.println("写入完成");
2025-08-14 19:17:36
1463
原创 现代Java I/O
1.1 数据的两个世界:字节流与字符流在Java I/O的核心,“流”(Stream)是一个基础抽象,它代表了数据从一个源(Source)到目的地(Destination)的有序序列。
2025-07-25 20:25:32
1356
原创 现代Java中Lambda表达式和方法引用的系统性分析
编译器知道Comparator的compare方法有两个String参数,它会将第一个参数s1作为调用compareToIgnoreCase方法的对象,第二个参数s2作为该方法的参数。当一个Lambda表达式的主体仅仅是调用一个已经存在的方法,并且不进行任何其他操作时,就可以使用方法引用来代替,以达到极致的简洁和清晰。1.静态方法引用:当Lambda表达式的实现恰好是调用一个静态方法,并且Lambda的参数与该静态方法的参数列表完全匹配时,可以使用静态方法引用。:当抽象方法只有一个参数时,括号是可选的。
2025-07-23 22:42:25
1362
原创 浅谈Builder的学习
这是NyPizza中的代码,不要误以为this返回的不是子类类型了,这段代码也值得我目前阅读一下。pizza内部的静态抽象类Builder采用了泛型递归自引用(这也是今天学习最重要的部分,我是通过看效果才比较清楚的理解的)1.T是Builder的子类型 2.T又必须是Builder<T>的子类型——这样就创建了一个递归类型约束。抽象基类—不可变对象设计思想:final Set字段,构造器的防御性克隆,不提供setter方法。上述提到的NyPizza和Calzone只取NyPizza来分析。
2025-05-20 22:06:04
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅