java基础知识小结

一、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.初始化过程

  1. 初始化父类的静态成员变量和静态代码块
  2. 初始化子类的静态成员变量及静态代码块
  3. 初始化父类的普通成员变量和代码块,在执行父类的构造方法
  4. 初始化子类的普通成员变量和代码块,再执行构造方法

九、String对象

    String对象是不是原生类型,为不可变对象,一旦被创建,就不能修改它的值,对于已经存在的String对象的修改都是重新创建一个新的对象,然后把值保存进去。

十、i++

i=i++;

等价于:

Temp = i;

i = i+1;

I = temp;

十一、普通类抽象类的区别

    普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以含有构造方法,普通方法,static方法,常量和变量等内容。

    抽象类:在普通类的结构里面添加抽象方法的组成部分,其可以包含抽象方法,也可不包含,但必须用abstract修饰

抽象方法:没有方法体,且必须要用abstract修饰

十二、ThreadLocal

    ThreadLocal用于创建线程的本地变量,该变量是线程之间不共享的,其 存放的值是线程封闭,可共享线程内的一些数据

十三、异常

  1. throw用于抛出异常,用于方法内,异常对于对象只能为实体
  2. Throws可以在方法上声明要抛出的异常
  3. Try用于检测被包住的语句块是否出现异常
  4. Catch用于捕获try中抛出的异常,并作出处理

 十四、多态的两种常见表现形式

1.重写

    父类与子类之间多态的一种表现,即如果子类中定义某一种方法与 父类有相同的名称与参数,则该方法被重写

注意事项:

方法名与形参列表必须一致

子类的权限必须大于或等于父类的权限

子类的返回类型必须小于或等于父类的返回类型

子类抛出的异常必须小于或等于父类抛出的异常

2.重载

    一个类中定义了多个同名的方法,他们有不同的参数或参数类型,则称为方法的重载

需求:函数名一致,形参列表不一致,与返回类型无关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值