【DEBUG】什么是debug?
Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。
“Bug”的创始人赫柏的报告格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug” 这名字,正是由赫柏所取的。1947年9月9日,赫柏对Harvard Mark II设置好17000个继电器进行编程后,技术人员正在进行整机运行时,它突然停止了工作。于是他们爬上去找原因,发现这台巨大的计算机内部一组继电器的触点之间有一只飞蛾,这显然是由于飞蛾受光和热的吸引,飞到了触点上,然后被高电压击死。所以在报告中,赫柏用胶条贴上飞蛾,并把“bug”来表示“一个在电脑程序里的错误”,“Bug”这个说法一直沿用到今天。
与Bug相对应,人们将发现Bug并加以纠正的过程叫做“Debug”(中文称作“调试”),意即“捉虫子或“杀虫子”。
后来就直接用bug 在很多的软件测试中 都用Bug来说明那些问题。
Eclipse DEBUG操作
该操作也可以通过快捷键来完成,快捷键组合为 Alt + Shift + D, J。
2.泛型
泛型的优点: 1.可以在集合中规范的存储同一类对象,如果不一样编译报错,提高了代码 的安全性 2.省去了强转的操作 jdk1.5 出现的新特性
泛型的使用
自定义泛型类 在自定义泛型类的声明,是在类名后面加上 <T> 在类体中只能对这个 泛型进行声明,不能实现或赋值, 而且在静态成员 都不可以使用泛型 模拟List类仿写如何声明泛型
泛型方法
方法上面也可以声明泛型,静态方法也可以 泛型方法也可以定义多个
泛型上限与下限
限定通配符的上边界: extends 正确:Vector<? extends Number> x = new Vector<Integer>(); 错误:Vector<? extends Number> x = new Vector<String>();
上边界只能获取不能添加。
限定通配符的下边界 super 接收Integer 或者Integer的父类型 正确:Vector<? super Integer> x = new Vector<Number>(); 错误:Vector<? super Integer> x = new Vector<Byte>();
下边界只能添加,不能获取
3.枚举
枚举是JDK1.5版本新增的特性(泛型、For-each等如今被广泛应用的特性也是由JDK1.5时所新增的),另外到了JDK1.6后switch语句支持枚举类型。 在一些方法运行时候 他需要的固定的数据 不能随意构建 必须有固定的范围的值 我们就使用枚举
特性 1.枚举是1个特殊类 2.枚举默认修饰符是 public static final ; 3.枚举值是所属类的类型 4.构造方法 都是私有的 5.枚举可以实现抽象的方法,但是枚举值也要实现该方法 6.枚举的值必须要放在枚举类的第一行、 常用方法 int compareTo(E o) 比较此枚举与指定对象的顺序。 Class<E> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象。 String name() 返回此枚举常量的名称,在其枚举声明中对其进行声明。 int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 String toString() 返回枚举常量的名称,它包含在声明中 与常量的区别 枚举是在Java1.5版本后出现的,它与类常量和静态常量相比的有点主要表现在以下4各方面: 枚举常量更简单: 只需定义枚举项名称,无需定义其值,而接口常量或类常量必须定义其值; 枚举常量属于稳态型:枚举常量在使用时无需关注其值而直接调用,接口常量或类常量可能需要关注其值; 枚举具有内置方法:每个枚举都是java.lang.Enum的子类,该基类提供了诸如获得排序值得ordinal方法、compareTo比较方法等,大大简化常量的访问; 枚举可以自定义方法:枚举常量不仅可以定义静态方法,还可以定义非静态方法,而且还能从根本上杜绝常量类被实例化。 注意:每个枚举项都是该枚举的一个实例,那我们在枚举中定义的静态方法既可以在类中引用,也可以在实例中引用。枚举类不能有继承,无法做扩展,而接口常量和类常量可以通过继承进行扩展。
public enum Day2 {
MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");// 记住要用分号结束
private String desc;// 中文描述
/**
* 私有构造,防止被外部调用
*
* @param desc
*/
private Day2(String desc) {
this.desc = desc;
}
/**
* 定义方法,返回描述,跟常规类的定义没区别
*
* @return
*/
public String getDesc() {
return desc;
}
public static void main(String[] args) {
for (Day2 day : Day2.values()) {
System.out.println("name:" + day.name() + ",desc:" + day.getDesc());
}
}
}
- 点赞
- 收藏
- 关注作者
评论(0)