当我们编写好一段程序后,会执行下面的cmd命令来运行java程序,以HelloWorld这个类为例
$ javac HelloWorld.java
$ java HelloWorld
Hello World
右击”我的电脑”->”属性”->”高级系统设置”,在”高级”选项卡中选择”环境变量”
添加两个新的环境变量和修改一个环境变量
注意:如果使用1.5以上版本的JDK,不用设置CLASSPATH环境变量,也可以正常编译和运行Java程序
类名、方法名、变量名都称为标识符
修饰符 | 当前类 | 同一包内 | 子孙类 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
简单的说:
需要注意:
1、static修饰符
2、final修饰符
3、abstract修饰符
4、synchronized修饰符
5、transient修饰符
6、volatile修饰符
1、变量和方法
2、构造方法
1、多态的伪代码表现形式
父类 a = new 子类;
a.doSometing();
编译器会寻找父类是否有doSometing方法,如果有,则执行子类的doSometing方法,如果没有,则编译报错
泛型是”参数化类型”,即可以确定参数的类型
1、泛型方法定义
public static T getMiddle(T... a){
return a[a.length/2];
}
2、泛型类定义
public class List{
}
3、泛型变量定义
public static void printArray(T[] inputArray){
}
注意:
4、泛型通配符
//无限定通配符
public static void getData(List> data){
}
//上限通配符
public static void getData(List extends Number> data){
}
//下限通配符
public static void getData(List super Number> data){
}
注意:(口诀:上get下add)
5、泛型的擦除
① 概念:虚拟机中没有泛型类型的对象,所有对象都是普通类,无论什么时候定义的泛型类型,在虚拟机中都自动转换成一个相应的原始类型(Object)
② 处理:编译器对泛型的处理
③ 规则:如果泛型存在限定,就用第一个限定替换,如果没有,就用Object替换
④ 例子:
//泛型擦除前
public class Person{
private T first;
private T Second;
}
//泛型擦除后
public class Person{
private Object first;
private Object Second;
}
-----------------------分割线------------------------
//泛型擦除前
public class Person{
private T first;
private T Second;
}
//泛型擦除后
public class Person{
private Comparable first;
private Comparable Second;
}
⑤ 注意:
1、什么是Annotation(注解)
Java提供的一种元程序中的元素关联任何信息和任何元数据(metadata)的途径和方法
2、什么是metadata
3、注解分类
4、android Support Annotation