02 2023 档案

摘要:1. 异常 1.1. 代码应该仅在发生意料之外的事情时抛出异常 1.1.1. 防御性编程性能好 1.2. 异常的处理成本未必很高 1.2.1. 应该只在适当的时候使用 1.2.2. 栈越深,处理异常的成本就越高 1.3. 对于频繁创建的系统异常,JVM会优化获取栈轨迹的性能开销 1.4. 在异常中禁 阅读全文
posted @ 2023-02-28 06:54 躺柒 阅读(64) 评论(0) 推荐(0) 编辑
摘要:1. 缓冲I/O 1.1. 对于文件和套接字,压缩和字符串编码的操作,必须适当地对I/O进行缓冲 1.1.1. 两个流操作的是字节块(来自缓冲流)而不是一系列的单字节(来自ObjectOutputStream),它们会运行得更好 1.2. InputStream.read() 1.3. Output 阅读全文
posted @ 2023-02-27 06:22 躺柒 阅读(77) 评论(0) 推荐(0) 编辑
摘要:1. 压缩字符串 1.1. Java 6 1.2. 实验性 1.3. compressed string 2. 字符串 2.1. Java 8 2.2. 所有都会编码为16位字符数组 3. 紧凑字符串 3.1. Java 11 3.2. compact string 3.3. 8位字节数组 3.3. 阅读全文
posted @ 2023-02-26 07:26 躺柒 阅读(77) 评论(0) 推荐(0) 编辑
摘要:1. JVM调优标志 1.1. 布尔标志和附带参数的标志 1.2. 布尔标志使用的语法 1.2.1. -XX:+FlagName表示开启 1.2.2. -XX:-FlagName表示关闭 1.3. 附带参数的标志使用的语法 1.3.1. -XX:FlagName=something,表示设置Flag 阅读全文
posted @ 2023-02-25 09:28 躺柒 阅读(73) 评论(0) 推荐(0) 编辑
摘要:1. Scala 1.1. 混合了面向对象和函数式编程的语言 1.2. 直接使用任何一个Java类库 1.3. 声明非递归的方法时,不需要显式地返回类型 1.3.1. 会自动地替你推断生成一个 1.4. 字符串插值 1.4.1. 在字符串的字面量中内嵌变量和表达式 1.5. 以使用val关键字替换v 阅读全文
posted @ 2023-02-24 06:48 躺柒 阅读(55) 评论(0) 推荐(0) 编辑
摘要:1. 编程语言 1.1. 仍然是一门语言 1.1.1. 以最清晰、最容易理解的方式传递信息 1.2. 代码的易读性和易理解性在软件中的重要性甚至更胜一筹 2. 领域特定语言DSL 2.1. 为了解决某个特定业务领域问题的一种自定义语言 2.1.1. 一种小型语言 2.1.2. 大多都不通用 2.1. 阅读全文
posted @ 2023-02-23 06:41 躺柒 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1. 再次出现在聚光灯下的原因 1.1. 基本思想已经有二三十年的历史 1.2. 大数据 1.2.1. 以PB计量的大数据 1.2.2. 当前互联网中流量最大的部分是移动流量 1.2.3. 物联网(Internet of things, IoT)流量取代移动流量成为互联网流量的主流,这种情况还会进一 阅读全文
posted @ 2023-02-22 08:16 躺柒 阅读(82) 评论(0) 推荐(0) 编辑
摘要:1. 同步API 1.1. 阻塞式调用 1.2. 调用了某个方法,调用方在被调用方执行的过程中会等待,被调用方执行结束返回,调用方取得被调用方的返回值并继续运行 2. 异步API 2.1. 非阻塞式调用 2.2. 会直接返回,或者至少在被调用方计算完成之前,将它剩余的计算任务交由另一个线程去做 2. 阅读全文
posted @ 2023-02-21 06:22 躺柒 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1. Stream 1.1. 允许你声明性地将顺序流转变成并行流 1.2. 能对这些集合执行操作流水线,可以充分利用计算机的多个核 2. 并行流 2.1. 把内容拆分成多个数据块,用不同线程分别处理每个数据块的流 2.2. 自动地把工作负荷分配到多核处理器的所有核 2.3. 内部迭代让你可以并行处理 阅读全文
posted @ 2023-02-20 06:50 躺柒 阅读(86) 评论(0) 推荐(0) 编辑
摘要:1. 潮流 1.1. 与应用程序运行的硬件平台相关 1.1.1. 编写能充分利用多核处理器能力的软件 1.2. 与应用程序的结构相关 1.2.1. 反映了互联网应用对可用性日益增长的需求 2. 聚合型应用(mashup) 2.1. 使用来自多个数据源的内容,将它们聚集在一起,从而简化我们的生活 3. 阅读全文
posted @ 2023-02-19 07:18 躺柒 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1. Nicolai Parlog编写的The Java Module System 1.1. 推荐阅读 2. Jigsaw项目 2.1. 开发持续了将近十年 3. 关注点分离 3.1. separation of concern,SoC 3.2. 将单体的计算机程序分解为一个个相互独立的特性 4. 阅读全文
posted @ 2023-02-18 06:59 躺柒 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1. 设计模式 1.1. 对设计经验的归纳总结 1.2. 一种可重用的蓝图 1.3. Java 5引入了for-each循环 1.3.1. 替代了很多显式使用迭代器的情形 1.4. Java 7推出的菱形操作符(<>) 1.4.1. 帮助大家在创建实例时无须显式使用泛型 1.4.2. 推动了Java 阅读全文
posted @ 2023-02-17 06:38 躺柒 阅读(72) 评论(0) 推荐(0) 编辑
摘要:1. 注解 1.1. 一种使用附加信息装饰程序元素的机制 1.2. Java 8之前,只有声明可以被注解 1.3. 一种语法元数据(syntactic metadata) 1.4. 可以用于文档编制 1.4.1. @Deprecated注解被广泛应用于说明某个方法不再推荐使用 1.5. 依据注解检测 阅读全文
posted @ 2023-02-16 06:40 躺柒 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1. 设计原则 1.1. 将所有你愿意接受的作为参数的函数可能带来的副作用以文档的方式记录下来 1.2. 最理想的情况下你接收的函数参数应该没有任何副作用 1.3. 延迟数据结构是强力武器 1.4. 所有使用持久化数据结构的用户都必须遵守“不修改”原则 2. 一等函数 2.1. first-clas 阅读全文
posted @ 2023-02-15 06:51 躺柒 阅读(97) 评论(0) 推荐(0) 编辑
摘要:1. 规则 1.1. 传递参数,返回结果 1.1.1. 异常和中断都不算返回结果 1.2. 减少共享的可变数据结构能帮助你降低维护和调试程序的代价 2. 耦合性 2.1. 软件系统中各组件之间是否相互独立 3. 内聚性 3.1. 系统的各相关部分之间如何协作 4. 无状态的行为 4.1. 流水线中的 阅读全文
posted @ 2023-02-14 06:37 躺柒 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1. 兼容性 1.1. 二进制级的兼容性 1.1.1. 只要不重新编译该类,即使不实现新的方法,现有类的实现依旧可以运行 1.1.2. 现有的二进制执行文件能无缝持续链接(包括验证、准备和解析)和运行 1.1.3. 如果新添加的方法不被调用,接口已经实现的方法就可以继续运行,不会出现错误 1.2.  阅读全文
posted @ 2023-02-13 07:10 躺柒 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1. null的由来 1.1. 历史上被引入到程序设计语言中,目的是为了表示变量值的缺失 1.2. 包括Java在内的大多数现代程序设计语言为了与更老的语言保持兼容 2. null带来的问题 2.1. 错误之源 2.1.1. NullPointerException是最典型的异常 2.2. 代码膨胀 阅读全文
posted @ 2023-02-12 07:04 躺柒 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1. 基本信息 Java 8函数式编程 Java 8 Lambdas: Functional Programming for the Masses [英] Richard Warburton 著 ; 王群锋 译 人民邮电出版社,2015年3月出版 1.1. 读薄率 书籍总字数191千字,笔记总字数8 阅读全文
posted @ 2023-02-11 07:12 躺柒 阅读(79) 评论(0) 推荐(0) 编辑
摘要:1. Java 8之前的库对日期和时间的支持非常不理想 2. TemporalField接口 2.1. 定义了如何访问temporal对象某个字段的值的接口 2.2. ChronoField枚举 2.2.1. 实现TemporalField接口 3. LocalDate类 3.1. 实例是一个不可变 阅读全文
posted @ 2023-02-10 06:59 躺柒 阅读(76) 评论(0) 推荐(0) 编辑
摘要:1. 集合工厂 1.1. Arrays.asList() 1.1.1. 创建了一个固定大小的列表 1.1.2. 列表的元素可以更新 1.1.3. 不能增加或者删除 1.1.4. 大小固定的可变数组 1.2. 没有Arrays.asSet() 1.2.1. 可以向HashSet的构造器传递一个列表实现 阅读全文
posted @ 2023-02-09 07:11 躺柒 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1. 方便程序员和可读性是头等大事! 1.1. 函数式API设计更易复合和重用 2. 归约和汇总为一个值 2.1. counting() 2.1.1. 计数 2.2. maxBy 2.2.1. 查找流中的最大值 2.3. minBy 2.3.1. 查找流中的最小值 2.4. summingInt 2 阅读全文
posted @ 2023-02-08 07:49 躺柒 阅读(80) 评论(0) 推荐(0) 编辑
摘要:1. 流 1.1. 以声明性方式处理数据集合 1.2. 通过查询语句来表达,而不是临时编写一个实现 1.3. 遍历数据集的高级迭代器 1.4. 透明地并行处理 1.5. 从支持数据处理操作的源生成的元素序列 1.5.1. 元素序列 1.5.1.1. 从有序集合生成流时会保留原有的顺序 1.5.2.  阅读全文
posted @ 2023-02-07 08:47 躺柒 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1. 行为参数化 1.1. 处理频繁变更的需求的一种软件开发模式 1.1.1. 不管你做什么,用户的需求肯定会变 1.1.2. 可让代码更好地适应不断变化的要求,减轻未来的工作量 1.2. 一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力 1.2.1. 类似于在内联“传递代码 阅读全文
posted @ 2023-02-06 07:37 躺柒 阅读(82) 评论(0) 推荐(0) 编辑
摘要:1. 语言的演变 1.1. C和C++仍然是构建操作系统和各种嵌入式系统的流行工具 1.2. Java和C#等安全型语言在诸多运行资源不太紧张的应用中已经取代了C和C++ 1.3. Java可能会被同样运行在JVM上的竞争对手语言(如Scala或Groovy)取代 1.4. Ada、Algol、CO 阅读全文
posted @ 2023-02-05 10:38 躺柒 阅读(76) 评论(0) 推荐(0) 编辑
摘要:1. 回头看 日更坚持了31天,精读了《C#代码整洁之道》《编程与类型系统)《函数式编程思维》《Java8函数式编程》这四本书,当月累积码字43690字。 看了大热的电视剧《狂飙》。 2. 感受 保持千字左右非水贴型日更还是很考验人的。 即使是读书笔记,按照读记比例15:1到25:1折算,每天也要读 阅读全文
posted @ 2023-02-04 07:20 躺柒 阅读(156) 评论(11) 推荐(1) 编辑
摘要:1. 基本信息 函数式编程思维 Functional Thinking [美] 福特(Neal Ford) 著,郭晓刚 译 人民邮电出版社,2015年8月出版 1.1. 读薄率 书籍总字数242千字,笔记总字数9983字。 读薄率9983÷242000≈4.13% 统计口径恢复到版权页书籍总字数,读 阅读全文
posted @ 2023-02-03 08:52 躺柒 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1. Lambda表达式的单元测试 1.1. 单元测试是测试一段代码的行为是否符合预期的方式 1.2. Lambda表达式没有名字,无法直接在测试代码中调用 1.2.1. 将Lambda表达式放入一个方法测试,这种方式要测那个方法,而不是Lambda表达式本身 1.2.2. 请用方法引用。任何Lam 阅读全文
posted @ 2023-02-02 09:10 躺柒 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1. SOLID原则 1.1. 开发良好面向对象程序的准则 1.2. Liskov substitution里氏替换 1.3. Interface segregation接口隔离 1.4. Single responsibility单一功能原则 1.4.1. 程序中的类或方法只能有一个改变的理由 1 阅读全文
posted @ 2023-02-01 12:08 躺柒 阅读(74) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示