

2.Hierarchy 显示Java继承层次结构,选中类后F4


3.eclipse行号的显示与隐藏




7.继承抽象类,或者实现接口
a:以前做法 先写类,然后在类中在去继承类或者实现接口
b:现在做法 在创建类的时候,选择要继承的类或者实现的接口。
Object是所有类的父类,所有类都直接或者间接的继承自Object。

看到Override说说这是什么,有什么用。(起注解的作用)

一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
1 需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) 2 * 举例: 3 * "Hello123World" 4 * 结果: 5 * 大写字符:2个 6 * 小写字符:8个 7 * 数字字符:3个 8 * 9 * 分析: 10 * 前提:字符串要存在 11 * A:定义三个统计变量 12 * bigCount=0 13 * smallCount=0 14 * numberCount=0 15 * B:遍历字符串,得到每一个字符。 16 * length()和charAt()结合 17 * C:判断该字符到底是属于那种类型的 18 * 大:bigCount++ 19 * 小:smallCount++ 20 * 数字:numberCount++ 21 * 22 * 这道题目的难点就是如何判断某个字符是大的,还是小的,还是数字的。 23 * ASCII码表: 24 * 0 48 25 * A 65 26 * a 97 27 * 虽然,我们按照数字的这种比较是可以的,但是想多了,有比这还简单的 28 * char ch = s.charAt(x); 29 * 30 * if(ch>='0' && ch<='9') numberCount++ 31 * if(ch>='a' && ch<='z') smallCount++ 32 * if(ch>='A' && ch<='Z') bigCount++ 33 * D:输出结果。 34 * 35 36 */ 37 public class StringTest2 { 38 public static void main(String[] args) { 39 //定义一个字符串 40 String s = "Hello123World"; 41 42 //定义三个统计变量 43 int bigCount = 0; 44 int smallCount = 0; 45 int numberCount = 0; 46 47 //遍历字符串,得到每一个字符。 48 for(int x=0; x<s.length(); x++){ 49 char ch = s.charAt(x); 50 51 //判断该字符到底是属于那种类型的 52 if(ch>='a' && ch<='z'){ 53 smallCount++; 54 }else if(ch>='A' && ch<='Z'){ 55 bigCount++; 56 }else if(ch>='0' && ch<='9'){ 57 numberCount++; 58 } 59 } 60 61 //输出结果。 62 System.out.println("大写字母"+bigCount+"个"); 63 System.out.println("小写字母"+smallCount+"个"); 64 System.out.println("数字"+numberCount+"个"); 65 } 66 }
// char[] toCharArray():把字符串转换为字符数组。
// static String valueOf(char[] chs):把字符数组转成字符串。
5.StringBuffer的删除功能
(API)一个可变的字符序列。此类提供一个与 StringBuffer兼容的 API,但不保证同步(效率较高,安全性低)。该类被设计用作 StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
Integer iii = null;
1:要求必须是5-15位数字
2:0不能开头
=================================================================
不用正则表达式的做法
System.gc()可用于垃圾回收。当使用System.gc()回收某个对象所占用的内存之前,通过要求程序调用适当的方法来清理资源。在没有明确指定资源清理的情况下,Java提高了默认机制来清理该对象的资源,就是调用Object类的finalize()方法。finalize()方法的作用是释放一个对象占用的内存空间时,会被JVM调用。而子类重写该方法,就可以清理对象占用的资源,该方法有没有链式调用,所以必须手动实现。



从程序的运行结果可以发现,执行System.gc()前,系统会自动调用finalize()方法清除对象占有的资源,通过super.finalize()方式可以实现从下到上的finalize()方法的调用,即先释放自己的资源,再去释放父类的资源。
但是,不要在程序中频繁的调用垃圾回收,因为每一次执行垃圾回收,jvm都会强制启动垃圾回收器运行,这会耗费更多的系统资源,会与正常的Java程序运行争抢资源,只有在执行大量的对象的释放,才调用垃圾回收最好
15.System.exit(0)

divisor
- 此 BigDecimal 要除以的值。
scale
- 要返回的 BigDecimal 商的标度。(也就是保留多少位小数)
roundingMode
- 要应用的舍入模式。(一般用ROUND_HALF_UP----即四舍五入)
23.Date类一个综合案例----你来到这个世界多少天
附:接口 ListIterator<E>有如下几个方法(迭代器修改元素)

方法1如图








?表示任意的类型都是可以的

? extends E:向下限定,E及其子类

? super E:向上限定,E极其父类

(留意以上截图哪些行报错了)

增强for其实就是(用来替代)迭代器

重写equals方法

优化后(哈希值不再一样,通过哈希值与成员变量相加来重写hashCode方法避免不必要的比较)

但实际上,一般不自己想写这么麻烦,可以用代码自动生成功能来实现


以后解决HashSet 存储自定义对象时元素不唯一问题就可以用重写hashCode()方法和equals()方法解决






12.最后附上一个致命bug 关于eclipse:
eclispe 控制台光标位置bug
Eclipse控制台输入数据后光标直接回到行首不跳到下一行
留意光标位置,要手动移动至下一行

