一、java的一些基本常用命令
Javac:将一个.java文件编译成.class文件 javac xxx.java
Java:将一个.class文件运行
Javadoc:将一个.java文件生成api似的文档:javadc xxx.Java
Jar:生成一个jar包
二、如何调用类方法
public class A {
Public static void main(String args【】){
B.method1();
//静态的东西是属于类的,因此要用: 类名.方法名()
B b = new B();
b.method2();
//非静态的东西是属性对象的,因此要用:对象名.方法名()
}
}
class B{
public static void method1(){
System.out.println("这是一个静态方法");
}
public void method2(){
System.out.println("这是一个非静态方法");
}
}
三、静态块,构造块的运行先后
public class A {
public static A a1 = new A();
public static A a2 = new A();
{
System.out.println("构造块");
}
static{
System.out.println("静态块");
}
public static void main(String args[]){
A a = new A();
if(args.length==0){
System.out.println("AAAAAAAAAAAAA");
}else{
for(int i=0; i<args.length; i++){
System.out.println( args[i] );
}
}
}
}
输出:
构造块
构造块
静态块
构造块
AAAAAAAAAAA
原因:
静态块:用static声明,jvm加载类时执行,仅执行一次,有多个静态块时,按声明的先后顺序执行
构造快:类中直接用{}定义,每一次创建对象时执行
执行的先后速度:静态块>main()>构造块>构造方法
args[]数组长度为0
四、自增、自减、数组定义,数据类型,复杂运算符
public class Hello {
public static void main(String args[]){
int i=5,j=5,c=6;
int s = (i++) + (i++) + (i++);
System.out.println("s="+ s);
s = (++j) + (++j) + (++j);
System.out.println("s="+ s);
i=j=5;
s = i+++j;
System.out.println("i="+ i);
System.out.println("j="+ j);
System.out.println("s="+ s);
c+=6;
System.out.println("c="+ c);
c/=2;
System.out.println("c2="+ c);
c-=2;
System.out.println("c3="+ c);
c*=5;
System.out.println("c4="+ c);
}
}
输出:
s=18
s=21
i=6
j=5
s=10
c=12
c2=6
c3=4
c4=20
原因:
i++:后自增:先赋值,后增
++i:前自增:先增,后赋值
同理可得:前自减,后自减
A+=3; 等价于a=a+3;
a/=3; 等价于a=a/3;
五、数组定义
int a[] = new int[5];
int a[]={1,2,3,4,5};
六、java中的数据类型
七、类中成员的访问权限
Public>protected>default>private
八、继承原则和继承时初始化过程
1.继承原则
子类继承父类的成员变量
子类继承父类除构造方法以外的成员方法
子类不能继承父类的构造方法
子类可以增加成员,可以重定义从父类继承来的成员,但不能删除它们。
2.初始化过程
- 初始化父类的静态成员变量和静态代码块
- 初始化子类的静态成员变量及静态代码块
- 初始化父类的普通成员变量和代码块,在执行父类的构造方法
- 初始化子类的普通成员变量和代码块,再执行构造方法
九、String对象
String对象是不是原生类型,为不可变对象,一旦被创建,就不能修改它的值,对于已经存在的String对象的修改都是重新创建一个新的对象,然后把值保存进去。
十、i++
i=i++;
等价于:
Temp = i;
i = i+1;
I = temp;
十一、普通类抽象类的区别
普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以含有构造方法,普通方法,static方法,常量和变量等内容。
抽象类:在普通类的结构里面添加抽象方法的组成部分,其可以包含抽象方法,也可不包含,但必须用abstract修饰
抽象方法:没有方法体,且必须要用abstract修饰
十二、ThreadLocal
ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的,其 存放的值是线程封闭,可共享线程内的一些数据
十三、异常
- throw用于抛出异常,用于方法内,异常对于对象只能为实体
- Throws可以在方法上声明要抛出的异常
- Try用于检测被包住的语句块是否出现异常
- Catch用于捕获try中抛出的异常,并作出处理
十四、多态的两种常见表现形式
1.重写
父类与子类之间多态的一种表现,即如果子类中定义某一种方法与 父类有相同的名称与参数,则该方法被重写
注意事项:
方法名与形参列表必须一致
子类的权限必须大于或等于父类的权限
子类的返回类型必须小于或等于父类的返回类型
子类抛出的异常必须小于或等于父类抛出的异常
2.重载
一个类中定义了多个同名的方法,他们有不同的参数或参数类型,则称为方法的重载
需求:函数名一致,形参列表不一致,与返回类型无关