Throwable 可以用来表示任何可以作为异常抛出的类,分为两种: Error 和 Exception。其中 Error 用来表示 JVM 无法处理的错误,Exception 分为两种:
受检异常 :需要用 try...catch... 语句捕获并进行处理,并且可以从异常中恢复;
非受检异常 :是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序崩溃并且无法恢复。
Java 入门之异常处理
Java 异常的面试问题及答案 -Part 1
泛型 public class Box<T> { // T stands for "Type" private T t; public void set(T t) { this.t = t; } public T get() { return t; } }Java 泛型详解
10 道 Java 泛型面试题
注解Java 注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。
注解 Annotation 实现原理与自定义注解例子
特性 Java 各版本的新特性New highlights in Java SE 8
Lambda Expressions
Pipelines and Streams
Date and Time API
Default Methods
Type Annotations
Nashhorn JavaScript Engine
Concurrent Accumulators
Parallel operations
PermGen Error Removed
New highlights in Java SE 7
Strings in Switch Statement
Type Inference for Generic Instance Creation
Multiple Exception Handling
Support for Dynamic Languages
Try with Resources
Java nio Package
Binary Literals, Underscore in literals
Diamond Syntax
Difference between Java 1.8 and Java 1.7?
Java 8 特性
Java 与 C++ 的区别Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C++ 为了兼容 C 即支持面向对象也支持面向过程。
Java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。
Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。
Java 支持自动垃圾回收,而 C++ 需要手动回收。
Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。
Java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。
Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。
Java 不支持条件编译,C++ 通过 #ifdef #ifndef 等预处理命令从而实现条件编译。
JRE or JDKJRE is the JVM program, Java application need to run on JRE.
JDK is a superset of JRE, JRE + tools for developing java programs. e.g, it provides the compiler "javac"
参考资料Eckel B. Java 编程思想[M]. 机械工业出版社, 2002.
Bloch J. Effective java[M]. Addison-Wesley Professional, 2017.
进阶指南https://github.com/CyC2018/Backend-Interview-Guide