1、JDK和JRE的区别
- JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。
- JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。
2、Java基础语法
对象、类、方法、实例变量
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
- 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
ava可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
- 访问控制修饰符 : default, public , protected, private
- 非访问控制修饰符 : final, abstract, static, synchronized
3、Java 对象和类
支持一下基本概念:多态、继承、封装、抽象、类、对象、实例、方法、重载
构造方法:每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。JVM会默认添加一个无参的构造器,但是如果手动定义了任何一个构造方法,JVM就不再提供默认的构造器,必须手动指定,否则会出现编译错误。
4、Java基本数据类型
- 内置数据类型:byte(8位)、short(16位)、int(32位)、long(64位)、float(单精度32位)、double(双精度64位)、boolean、char(16位unicode)
- 引用数据类型:对象、数组
- 常量:使用final字符修饰
5、Java异常


Error: 例如OutOfMemoryError和 StackOverflowError。Java内存模型

6、Java集合

Java集合实现类特征

7、Java反射
Java反射机制是在程序的运行过程中,对于任何一个类,都能知道它的所有属性和方法;对于任意一个对象,都能够知道调用它的任意属性和方法,这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
Java.lang.reflect
得到Class的3种方式
//1、通过对象调用 getClass() 方法来获取,通常应用在:比如你传过来一个 Object
// 类型的对象,而我不知道你具体是什么类,用这种方法
Person p1 = new Person();
Class c1 = p1.getClass();
//2、直接通过 类名.class 的方式得到,该方法最为安全可靠,程序性能更高
// 这说明任何一个类都有一个隐含的静态成员变量 class
Class c2 = Person.class;
//3、通过 Class 对象的 forName() 静态方法来获取,用的最多,
// 但可能抛出 ClassNotFoundException 异常
Class c3 = Class.forName(“com.test.reflex.Person”);
getName():获得类的完整名字。
getFields():获得类的public类型的属性。
getDeclaredFields():获得类的所有属性。包括private 声明的和继承类
getMethods():获得类的public类型的方法。
getDeclaredMethods():获得类的所有方法。包括private 声明的和继承类
getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
getConstructors():获得类的public类型的构造方法。
getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes 参数指定构造方法的参数类型。
newInstance():通过类的不带参数的构造方法创建这个类的一个对象。
Java注解(Annotation) 又称为元数据。共7个,3个在java.lang中,剩下4个在java.lang.annotation中
- @Override : 重写标记
- @Deprecated : 代码过时
- @Retention:标识如何存储;RetentionPolicy.SOURCE; RetentionPolicy.CLASS; RetentionPolicy.RUNTIME
- @Documented : 标记这些注解是否包含在JavaDoc中
- @Target : 标记这个注解说明了Annotation所修饰的对象范围
- @Inherited:标记这个注解是继承于哪个注解类的
- [1.7新增] @SafeVarargs
- [1.7新增]@FunctionalInterface
- [1.7新增]@Repeatable