标签:sys 不能 区分 结果 finally 加载类 其他 定时 进入
- static关键字修饰的变量,叫类变量或者静态变量。没有static修饰的为实例变量;
- 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问;
- 静态变量的生命周期取决于类的生命周期,实例变量的生命周期取决于类的实例,每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
- 抽象类中可以包含抽象方法和实例方法,而接口中只能定义抽象方法;
- 实现抽象类可以有选择地重写需要用到的方法,实现接口的类一定要实现接口里定义的所有方法。一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现;
- 继承只有单一继承性,一个类只内能继承一个抽象父类,但是可以实现多个接口;
- 抽象类中可以有构造方法,接口中不能定义构造方法;
- 接口中定义的变量都是静态常量。
//接口
public interface AbilityImpl {
public static final String MOUTH = "mouth";
public static final String HAND = "hand";
public static final String FOOT = "foot";
public abstract void read();
public abstract void write();
}
//抽象类
public abstract class Person implements AbilityImpl {
@Override
public void read() {
System.out.println(MOUTH + " read() ... ");
}
@Override
public void write() {
System.out.println(HAND + " write() ... ");
}
public void walk() {
System.out.println(FOOT + " walk() ... ");
}
}
//实体类
public class Student extends Person {
Student() {
System.out.println("Student()");
}
@Override
public void read() {
System.out.println("Student read() ... ");
}
public static void main(String[] args) {
Student student = new Student();
student.read();
student.write();
student.walk();
}
}
Student()
Student read() ...
hand write() ...
foot walk() ...
- Integer是int的包装类,是引用类型,变量必须实例化后才能使用;int是基本数据类型;
- Integer的默认值为null,而int的默认值为0,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer;
- 在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型;
- 在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0;
- Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
- try:指定一块预防所有“异常”的程序。
- catch:紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。
- throw:用来明确地抛出一个“异常”。
- throws:标明一个成员函数可能抛出的各种“异常”。
- finally:不管发生什么“异常”都被执行一段代码。
- sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,将执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
- wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
- 当i=2^32-1时,i+1数据溢出变成负数,就达成了条件i+1 < i,其他类型同理;
在JDK中,整形类型是有范围的,最大值为Integer.MAX_VALUE,即2147483647,最小值为Integer.MIN_VALUE即-2147483648,对整形最大值加1,2147483648(越界了),那么此时值为多少呢?结果是-2147483648,即是Integer.MIN_VALUE。
标签:sys 不能 区分 结果 finally 加载类 其他 定时 进入
原文地址:https://www.cnblogs.com/maxiaobing/p/11946288.html