(毕竟是自己写的欢迎来纠错)
JDK,JRE,JVM
JDK:Java开发工具包(Java Development Kit),给开发人员用的。
JRE:Java运行环境(Java Runtime Environment),运行Java程序用的。
JVM:Java虚拟机(JVM Java Virtual Machine),对于不同的平台,有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
final:
常量,可以跟static一起使用。也可以修饰对象(修饰对象时栈的地址不可以修改,但是与堆中的数据无关),方法(这个方法就不可以修改了)
static:
静态,可以声明方法,变量,代码块,内部类,其中由static修饰的方法和变量,常量可以用类名直接调用,static修饰的代码块,只初始化一次,
abstract:
抽象类,有abstract修饰的类中可以出现由abstract修饰的方法签名(没有方法体),且其他类继承时必须重写了abstract类的抽象方法。在抽象类除了抽象方法之外,有类的通用属性,即普通类有的他都有。
interface:
注意接口中初方法外只有常量,在接口这里还有一点特殊,java的继承是单继承的,但是在接口的继承上却不是(总有特例emmmmm)接口可以多继承
,接口亦可以说不算类
extends:
继承,只支持单继承(接口继承接口除外),但是可以多层继承,再者就是类型转换的问题了 强制类型转换是注意父类必须是子类的对象或者是子类的子类对象才可以,
enum:
枚举,是一种特殊类型的类,枚举的首行必须是枚举的常量对象列表,枚举的构造器都是私有的,枚举的直接父类是java.lang.Enum,所以他不能再继承其他的类了
annotation
注解(先写javaSE阶段我用到的注解)
@Override //重写
@SuppressWarnings(...) //消除警告
@Deprecated //方法过时
@Test //测试
@WebServlet(...) //这个是web阶段的加在servlet上面的表示他是一个servlet配置了参数就可以不再xml中再配置了
@Table(...) //表
@Transactional(...) //解释吗???
@Target(...) //自定义注解用到的位置,定义注解所作用的范围,(方法,类,变量)
@Retention(...) //生命周期,即注解可以作用的生命周期(源代码(被编译器读到),编译时(被类加载器),运行时(jvm读取到))
@Documented //表明这个注解应该被 javadoc工具记录
@Inherited //允许子类继承父类中的注解
interface和extends同时使用的问题:
1.接口和父类中同时存在 相同的方法签名问题,这个时候,子类默认使用父类的方法,(接口名.super.方法名)可以调用接口的方法,你也可以在子类重写这个方法。
2. 接口和父类中同时出现相同的成员变量时(接口里面是常量,反正就是名称相同)这个时候必须明确到底是使用哪个,没有默认。接口名.常量的名称(他就是个static的嘛), super.变量名称 父类的