隔叶黄莺 Yanbin's Blog - 软件编程实践
open-menu closeme
Home
Archives
Links icon
LinkedIn X
留言
关于
github twitter linkedin rss
  • 《100 Java Mistakes and How to Avoid Them》笔记 3

    calendar Dec 28, 2023 · 4 min read · Java  ·
    Share on: twitter facebook linkedin copy
    本书的阅读又搁置了许久,虽然感觉 Manning 出版社的这一 100 Mistakes 系列从书的质量不是那么的高,但开了头还是继续从本书 40% 的位置往下。


    开始要讲述到异常了,异常还是有必要认真对待的,比如

    1. Java 中很容易被 CheckedException 弄得代码不整洁
    2. 缺少必要的参数检查,不舍得抛出异常,视异常为 Bug
    3. 不明确出现异常时后续如何处理,
    4. 或者是捕获而隐藏了异常致使定位错误变得更难。

    Java 的主要异常大分类是
    Throwable
    ├── Error
    └── Exception
              └── RuntimeException
    NullPointerException, 这恐怕是一个最常见的异常,Java 对一个对象是否能为 null 值没什么约束,甚至用 null 来表示业务上的空。比如说方法的参数与返回值,Java 都可以是 null 值,而在 Kotlin 中非明确可为 null 的时不能为 null Read More
  • 《100 Java Mistakes and How to Avoid Them》笔记 2

    calendar Oct 25, 2023 · 5 min read · Java  ·
    Share on: twitter facebook linkedin copy
    《100 Java Mistakes and How to Avoid Them》笔记 2
    继续阅读本书,编程语言处理数值都有可能出现问题,如溢出,整数的最大最小值不对称,Double.NaN 等。


    由于 Java 学了 C,也用 0 开始的数字来表示 8 进制数,如 037, 010 分别是十进制的 31 和 8,这与现实不相符。因为如果你在纸上写下 037, 010, 几乎所有人(除了某些程序员)都会认为它们就是十进制的 37 和 10。但是 Java 表示 2 进制, 16 进制的方式没有问题的,如 0b10, 0x37。IntelliJ IDEA 看到使用 0 开头的 8 进制数会不建议那么使用. 8 进制数字的范围是 0~8, 所以 09 是错误的, 但是 Java 编译器似乎对此很陌生.

    int a = 09;

    IntelliJ IDEA 会提示 Integer number too large, 编译器提示说 java: ';' expected, 有点驴唇不对马嘴.

    现在几乎没有必要使用 0 开始的 8 进制数的方式, 或许还有用的就是表示 Unix 下文件权限, 如

    int fileMode = 0644

    所以任何时候看到 0 开头的数字都必须仔细检视, 基本可以禁止使用这种方式 Read More
  • 《100 Java Mistakes and How to Avoid Them》笔记 1

    calendar Sep 17, 2023 · 8 min read · Notes  ·
    Share on: twitter facebook linkedin copy
    《100 Java Mistakes and How to Avoid Them》笔记 1
    这几日在阅读 Manning 出版社的 《100 Java Mistakes and How to Avoid Them》, 其中列举的确实是一些容易带入到代码中的错误,不少还是通过代码 Review 或单元测试很难发现的问题。也有些看似很弱智,却可能是隐匿许久的定时炸弹,只等某一特定条件出现时即爆。


    阅读的同时简单的作了笔记及少许联想,所以内容有些杂乱无条理。最前面介绍了一些静态代码分析工具,也有两个动态分析工具。本书目前还是 Manning 的 MEAP 体验版,未正式发售。一共讲了 100 个常见错误如何避免(例如,怎么用最新 Java(Java 9 -- Java 21) 语法, API 来改进),以及用静态分析工具,单元测试及早发现。

    这是读完了 1/4 数量的记录,笔记开始 Read More

Yanbin Qiu

长年奋斗在软件编程第一线的从业人员,以写日志的形式帮助自己记忆与深入探索,文章若对大家有所帮助,实属敝人之荣幸。
Read More

Featured Posts

  • Rust 调用 C/Rust 生成的动态库
  • AWS 上 Java Lambda 应用记要
  • Apache 配置 SSL(HTTPS) 并整合 Tomcat
  • My First Post
  • Markdown Syntax Guide

Recent Posts

  • 学习 Rust 的工作空间, 包, Crate 和模块管理
  • 《100 Java Mistakes and How to Avoid Them》笔记 3
  • 《100 Java Mistakes and How to Avoid Them》笔记 2
  • 《100 Java Mistakes and How to Avoid Them》笔记 1
  • AWS Lambda 中使用 Python 并发编程
  • AWS Lambda 重试与死信队列(DLQ)
  • AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
  • AWS Java Lambda 与环境变量

Categories

JAVA/JEE 11 AWS 6 CLOJURE 3 JVM 3 READINGNOTES 3 MID-WARE 2 RUST 2 SYNTAX 2 C++/VB 1 LINUX/UNIX 1 PYTHON 1 TECHNOLOGY 1 THEMES 1 WEB/JS 1

Series

THEMES GUIDE 2

Tags

JAVA 7 LAMBDA 5 ANT 4 CLOJURE 3 GC 3 JVM 3 HTTPS 2 JAVABEAN 2 MARKDOWN 2 RUST 2 TOMCAT 2 ANGULARJS 1 APACHE 1 AWS 1
All Tags
ANGULARJS1 ANT4 APACHE1 AWS1 CLOJURE3 COMPILE1 CSS1 DLQ1 EMOJI1 FEATURED1 GC3 HTML1 HTTPS2 HUGO1 INDEX1 JAVA7 JAVABEAN2 JAVASCRIPT1 JUNIT1 JVM3 KINESIS1 LAMBDA5 MARKDOWN2 NOTES1 PRIVACY1 PROCESS1 REPORT1 RUST2 SCP1 SHARED LIBRARY1 SHORTCODES1 SSH1 TAG_NAME11 TAG_NAME21 TEXT1 THEMES1 TOMCAT2 WEBSPHERE1 云服务1 自动化1
[A~Z][0~9]
Yanbin 隔叶黄莺

Copyright 2010-  YANBIN 隔叶黄莺. All Rights Reserved

to-top