javac test.java 编译命令
java test 运行test的main方法
jar cf test.jar test 将test文件夹压缩为jar
【1】new实例一个对象
【2】反射机制创建对象
Class c=Class.forNmae(“MyClass”);
Base b=(Base) c.newInstance;
【3】clone()一个对象
【4】反序列化得到一个对象
【1】获取对象所属的类
【2】运行时创建对象。例如,用户输入类名参数,创建一个实例
【3】运行时获取对象的所有成员变量和方法
【4】运行时调用对象的方法。例如,用户输入方法名和参数,计算机执行对应方法
有,但是仅作为保留关键字,并没有被使用。
java使用 break mytab;跳出多重循环,”mytable:“定义目标位置
(2.3.5)java关键字
不存在,final不能被继承,abstract要求子类继承
java允许将数据成员声明为final,却不赋初值。但是,blank finals必须在使用之前初始化,且必须在构造函数中初始化
不可以,java规定不能再成员函数中定义静态变量
(1)finally是指即使出现异常,也会被执行的代码段
(2)finally之前有return,则finally代码段在return前执行
(3)finally前后都有return,则finally的return会覆盖其他的return
(4)finally前有exit,则finally不再执行
正确示例
Abc123、abc、¥m、¥kill、my_code、gα
错误示例
45m、my@email、int-1
单行注释:
//XXXXXX
多行注释:不能嵌套
/*XXXXXXX XXXXX XX*/
归档注释:会出现在最终生成的报告文档中
/**XXX XXXXXXXX XXX*/
java提供引用类型和原始类型两种不同数据类型。
同时java还为每个原始类型提供一个封装类,封装对应的一些方法。
Java编程语言为8个原始基本类型:
boolean,char,byte,short,int,long,double,flout
注意String是对象类型,不在原始类型范围内
char \u0061=’a’;
char a=’\u0061’
ch\u0061r a=’a’
(1)package
(2)import
(3)只能有一个公共public类,并和文件名一样
A,Thread可以被继承,用于创建新的线程
B,Number类可以被继承,Integer,Float,Double等都继承自Number类
C,Double类的声明为public final class Doubleextends Numberimplements Comparable不能被继承
D,Math类的声明为public final class Mathextends Object 不能被继承
E,ClassLoader可以被继承,用户可以自定义类加载器
int n=5;
System.out.println(n+(n++)+(++n));
n=5+(5)+(6+1)
system.out.println(1+2+"");//(1)3
system.out.println(""+1+2);//(2)12
system.out.println(5.4+"3.2");//(3)5.43.2,加号两边发现字符串类型的,都会强转为字符串类型
(1)
1. —-1、2为整形
2. —-1+2=3
3. —-3+‘’=’3’
(2)
1. —-“”+1=”1”
2. —“1”+2=“12”
Date mydate=new Date(0);
system.out.println(mydate);//the Jan01 08:00:00 1970
java统计从1970年1月1日期的毫秒时间,Date用long存储相差的毫秒数
int k=5;
try{
int kk=k/0;
}
catch(ArithmeticException e){
cout<<1;
}
catch(RuntimeException e){
cout<<2:
}
catch(Exception e){
cout<<3;
}
输出为1
class A{
public void fun(){}
}
Class B extends{
public void fun() thorws RuntimeException{}
}
虽然看似子类B跑出了父类方法没有的异常,但是需要注意RuntimeException异常是被默认隐式抛出的,也就是说其实父类A的方法默认会有对RuntimeException的抛出
class A{
public void A(int){}
}
Class B extends{
public void fun() {
//super(int)
}
}
以上代码报错,因为B会隐式的调用super()来执行父类的构造方法,如果父类没有的话,就报错。
除非显式定义super(int)
查看构造函数的执行顺序和意义
CallableState,emt