基础
大约 2 分钟
可以说Java基础是每个开发者的必备知识,也是面试官必问的问题。例如:集合、多线程、IO、JVM等。 通过不同招聘平台上的岗位要求梳理后: 本目录以集合的HashMap、多线程的线程池及常用关键字、IO的网络协议及tcp/IP、JVM知识重点介绍。
Java基础
1. 反射
通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。
java的反射机制就是增加程序的灵活性,避免将程序写死到代码里
可以实现动态创建对象和编译,体现出很大的灵活性。让用户在不需要修改代码的情况下获得新增的类的对象。
2. 泛型
泛型类、泛型接口、泛型方法
类型安全。
- 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
消除强制类型转换。
- 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
潜在的性能收益。
- 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。
3. 自定义注解
定义注解类型(@interface ),@Retention(RetentionPolicy.RUNTIME) // 注解的保留策略
定义注解位置:@Target(ElementType.METHOD) // 注解的目标类型,类、方法
1、保存在 class 文件中,降低维护成本。 2、无需工具支持,无需解析。 3、编译期即可验证正确性,查错变得容易。 4、提升开发效率。便于封装框架和使用框架,扩展性好。
