2017-08-02
java语言基础
• 分类:
java
• 标签:
java
理解了边界所在,你才能成为程序高手。 ——《Thinking in java》
概览
- java语言特性
- 数组与字符串
- 关键字
- static
- final——一般比较基本的类型或防止扩展类无意间破坏原来方法的实现的类型都应该是final的,在jdk中System,String,StringBuffer等都是基本类型。
- 重写与重载
- 泛型
- 集合类
- HashMap
- 冲突解决
- 线程不安全
- Collection
- ArrayList
- LinkedList
- HashMap
- 反射机制与注解
- 深入理解面向对象思想、面向接口编程
- 抽象类与接口
- java单一继承
- java虚拟机机制
- 运行时数据区
- 垃圾回收机制
- 类加载机制
- java高并发
- java内存模型
- 线程的状态
- 线程安全
- 异步编程
- NIO
- Java Web
- 熟悉 JSP 、 Servlet 等原理
- 熟悉 Tomcat 、 Apache 等 web 服务器工作原理
- 熟悉 Spring(IOC/AOP) 、Spring MVC 等开发框架
- 熟悉 Hibernate 、 MyBatis 等 ORM 框架
- 分布式与流处理
- 了解 ZooKeeper 、 Dubbo 等分布式处理框架
- 了解 Kafka、RocketMQ 等流处理框架
局部
泛型T
泛型在入门java的过程中很常见,在java中我们往往以泛型来称呼它,而在c++中则更多叫它模板。泛型出现的最引人注目的一个原因是为了创造容器类。
以下两个为经常在源码中看到的
1 | <? extends T> 与 <? super T> |
- ? <= T
- ? >= T
1 | <T extends Comparable<T>>与<T extends Comparable<? super T>> |
- 1 类型 T 必须实现
Comparable
接口,并且这个接口的类型是 T。只有这样,T 的实例之间才能相互比较大小。例如,在实际调用时若使用的具体类是 Dog,那么 Dog 必须implements Comparable<Dog>
- 2 类型 T 必须实现
Comparable
接口,并且这个接口的类型是 T 或 T 的任一父类。这样声明后,T 的实例之间,T 的实例和它的父类的实例之间,可以相互比较大小。例如,在实际调用时若使用的具体类是 Dog (假设 Dog 有一个父类 Animal),Dog 可以从 Animal 那里继承Comparable<Animal>
,或者自己implements Comparable<Dog>
反射与注解
反射
JAVA反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法,用类的全限定名就运行时动态获得java类的class对象,然后从class对象就可以得到这个类的所有信息。
包含以下几个功能:
- 在运行时判断任意一个对象所属的类
- 在运行时构造任意一个类的对象
- 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
包含四个核心类:
- Class
- Constructor
- Method
- Field
反射的作用:
- 操作引访问权限限制的属性和方法
- 实现自定义注解
- 动态加载第三方jar包,解决android开发中方法不能超过65536个的问题
- 按需加载类,节省编译个初始化apk的时间
反射的工作原理:
参考:
https://zhuanlan.zhihu.com/p/21423208?utm_source=qq&utm_medium=social
注解
Java源代码中的元数据,注解会影响源代码的行为(注解可能会被保存在字节码中),而注释不会。注解是描述Java代码的代码,它能够被编译器解析,注解处理工具在运行时也能够解析注解。首先要知道注解本身没有任何作用,但是它能够被获取,并在代码中根据注解做一些处理。
dzzxjl