Java基础-注解
参考文献
【对线面试官】今天来聊聊Java注解
玩转Java注解:元注解、内置注解、自定义注解的原理和实现
注解概念
Java注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制.重点:和javadoc不同,Java 标注可以通过反射获取标注内容.
在编译器生成类文件时,标注可以被嵌入到字节码中.Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容
注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解.它主要的作用有以下四方面:
生成文档,通过代码里标识的元数据生成javadoc文档.
编译检查,通过代码里标识的元数据让编译器在编译期间进行检查验证.
编译时动态处理,编译时通过代码里标识的元数据动态处理,例如动态生成代码.
运行时动态处理,运行时通过代码里标识的元数据动态处理,例如使用反射注入实例
注解是对代码的一种增强,可以在代码编译或者程序运行期间获取注解的信息,然后根据这些信息做各种事情。
Java自带的标准注解
@Override重写
概念:检查该方法是否是 ...
Java基础-基础理论
基础概念
Java和JVM的历史
1996年SUN JDK1.0 Classic VM
纯解释运行,使用外挂进行JIT
1997年 JDK1.1发布
AWT
内部类
JDBC
RMI
反射
1998年 JDK1.2 Solaris Exact VM
JDK1.2开始称为Java2,三个版本J2SE,J2EE,J2ME
JIT解释器混合
Accutane Memory Management 精确内存管理,数据类型敏感
提示GC性能
2000年 JDK1.3 Hotspot作为默认虚拟机发布
2002年 JDK1.4 Classic VM退出历史舞台
Assert
正则表达式
NIO
IPV6
日志API
加密类库
2004年 JDK1.5
泛型
注释
枚举
可变长的参数
装箱
Foreach循环
JDK1.6
脚本语言支持
JDBC4.0
Java解释器API
2011年 JDK7
延期项目推迟到JDK8
G1
动态语言增强
64位系统中的压缩指针
NIO2.0
泛型实例化简写
try-with-resource
2014年 JDK8
La ...
Java基础-内部类
参考文献
Java内部类详解
Java内部类以及使用场景
Nested Classes
8.1.3. Inner Classes and Enclosing Instances
Nested Classes
Terminology: Nested classes are divided into two categories: non-static and static. Non-static nested classes are called inner classes. Nested classes that are declared static are called static nested classes.
术语:嵌套类分为两类:非静态类和静态类.
非静态嵌套类称为内部类(inner class).
声明为static的嵌套类称为静态嵌套类(static Nested class).
123456789class OuterClass { ... class InnerClass { ... } ...
Java基础-异常Exception
参考文献
受检查异常和不受检查异常
受检查的异常(checked): 这种在编译时被强制检查的异常称为"受检查的异常",即在方法的声明中声明的异常,对于这种异常,方法强制处理或者通过 throws 子句声明,其中一种情况是Exception的子类但不是 RuntimeException 的子类
对于checked异常的处理方式
当前方法明确知道如何处理异常,程序应该使用try...catch块来捕获异常,然后在对应的catch中修复该异常;
当前方法不知道如何修复异常时,应该定义该方法声明抛出异常;
不受检查的异常(unchecked): 在方法的声明中没有声明,但在方法的运行过程中发生的各种异常被称为"不被检查的异常",这种异常是错误,会被自动捕获,非受检查是 RuntimeException 的子类,在编译阶段不受编译器的检查,
**Java中所有异常或者错误都继承Throwable,分为三类: **
Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等,程序无法处理;
Exception: ...