摘要:
1 作用 一旦类的某个成员变量被transient修饰,该变量将不再是对象持久化的一部分,即无法被序列化和反序列化。 2 注意事项 transient关键字只能修饰类的成员变量,而不能修饰本地(即局部)变量,也不能修饰方法和类。 并且transient生效的一个隐含前置条件是 对象可序列化,那么,类 阅读全文
摘要:
1 背景 java的for循环遍历元素的方法中,有一种增强for循环(Java's enhanced for loop)。这个是Java中的一个语法糖。目的是为了让代码更简洁优雅。今天我们探讨一下,它背后的原理是什么? 2 原理 使用条件 首先,当且仅当 一个类实现了 Iterable 接口时,它才 阅读全文
摘要:
在Java中,静态(static)方法,是属于类方法,可以通过类直接调用,当然也可以通过实例对象进行调用,但不建议,也没必要。 相应的,有静态变量,属于类变量。 注意: 静态方法是无法被重写(Override)的,如果强行加上 @Override 注解,编译时会报错 “java: 方法不会覆盖或实现 阅读全文
摘要:
Head First Design Patterns 最近看完了 Head First Design Patterns 2nd Edition,过程中做了一些笔记。 1 设计原则(Design Principles) 设计原则比设计模式更高一层,是站在更高的层次来指导我们的程序设计和编写。 当我们无 阅读全文
摘要:
1 并发问题产生的根本原因 是因为并发程序中存在可变共享状态(的变量)。 另外,该可变共享状态的发现和管理有时非常困难,无法预料,所以使用Java并发特性时,一定要小心小心再小心,能不用就千万不要用。 注:可变共享状态:mutable shared state 2 CompletableFuture 阅读全文
摘要:
直达顶部 直达底部 疫情实时大数据报告: 上海-上海: https://voice.baidu.com/act/newpneumonia/newpneumonia/?from=osari_aladin_banner&city=%E4%B8%8A%E6%B5%B7-%E4%B8%8A%E6%B5%B7 阅读全文
摘要:
1 类型擦除 于Java的设计是受C所启发,所以泛型的实现也是参考了C。但是,Java泛型是通过类型擦除实现的。 泛型类型参数会被擦除为其第⼀个边界(多重边界也是可以的),编译器实际上会将类型参数替换为其被擦除后的类型(这也说明了类型擦除是在编译时进行的(而不是运行时))。 类型擦除的原因: C++ 阅读全文
摘要:
1 反射使java中的所有访问权限控制失去了作用! 通过反射,我们能访问任何类的任何成员(包括成员变量和成员方法),能修改任何类的任何成员变量(final变量除外),也能执行任何类的成员方法。 2 反射中Class类对象的创建方式 在使用反射的过程中,我们往往要创建某个类型的Class类的对象,有3 阅读全文
摘要:
目前我接触到的编程类型 1 面向过程编程(procedure-oriented programming) 编程语言:C,Fortran,PHP 2 面向对象编程(OOP object-oriented programming) 编程语言:Java,C++,C#,Python,Go,PHP 3 ⾯向切 阅读全文
摘要:
1 Throwable类 它是所有异常类型的根类。 其下有2个直接子类:Exception 和 Error。 注意:别看 Throwable 处于异常树形结构的最顶部,但它并不是一个接口,也不是一个抽象类,它是一个具体类。不信大家可以去看源码或JDK文档。 它的类声明是这样的: public cla 阅读全文