T5 s2 Day 15
**********************************************************************
工具类 集合框架
**********************************************************************
1、作业讲解
打字游戏:
1.1、级别类(管卡):级别号 积分 时间限制 打印几个字符 打印的次数
1.2、游戏参数:6个级别 分别设置每个级别的属性
1.3、玩家类: 昵称 级别 积分 各级别开始时间 级别用时
方法: 输入打字内容
1.4、游戏类: 输出打字内容 :根据级别参数来输出 方法
判断输入对错方法
public final Student zhang=new Student();
zhang=new Student(); 不可以 因为zhang是常量不允许改变
zhang.setName("张学森"); 可以的
zhang.setName("董伟钰");
【注意】对于引用类型的常量,其地址不允许修改,但是地址所对应的属性值可以修改
public final int age=30;
age=40;
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
String str="abc";
String str2="abc";
str2="abc"+"d";
String str3=new String("abc");
str==str3 false
str.equals(str3) true
在频繁改变一个字符串的值时,不建议使用String ,使用
StringBuffer strb=new StringBuffer("abc");
strb.append("def");
字符串的常用方法在StringBuffer里仍然可以使用
append() 在原值的后面追加内容
insert(1, "fff"); 参数1:插入的位置 参数2:插入的内容
reverse() 将内容倒置
delete() 删除内容,参数1:删除的起始索引,参数2:删除的结束索引,但是不删除
删除参数1到参数2的连续索引内容,不包含参数2
StringBuffer是线程安全 效率低
StringBuilder 是非线程安全 效率更高
String StringBuffer StringBuilder 效率对比
Demo2.java
String 不可变字符串 耗内存 效率低
StringBuffer 线程安全
StringBuilder 非线程安全 效率最高
System类
currentTimeMillis() 到目前的毫秒数
exit(status); 结束JVM的运行
0 正常结束虚拟机的运行
非0 异常结束虚拟机运行
System.gc(); 目的:清除内存堆空间
调用gc();并没有立即释放所占用的堆内存空间,二是添加到计划删除列表
1、static :程序运行时就加载程序中所有的static成员到static中,
当程序运行结束后,static的内存才释放 最长
2、常量区域:当执行到常量的声明、赋值代码时,存在于常量区域中
程序结束后,释放
3、栈 :执行到局部变量时存在,执行到代码块的}释放 最短
4、堆:new时存在,不会自己消失 由Java的垃圾回收机制来回收
Java的垃圾回收机制 gc
当new出堆空间后, 如果堆地址有一处使用,Java会创建一个计数器 +1
当一处使用结束后 计数器 -1
Java的垃圾回收机制定期判断计数器的值 如果是0 那么把此对象添加到
计划清除列表中(栈) ,如果在清除列表时,又有对对象地址的使用,那么从
计划清除列表中移除
main(){
Student s=new Student(0)
Demo2 d2=new Demo2();
d2.test(s);
}
test(Student stu){
当方法执行过程中 count+1
}
count=0;
声明变量的原则:
1、局部变量 2、成员变量 3、静态变量
数学类Math:数学计算
MathDemo.java
日期类:
Date 绝大多数方法过时
DateDemo.java
日历类:
Calendar 日历类
CalendarDemo
作业:业务
工具类:String
StringBuffer/StringBuilder
Math
Date
SimpleDateFormat
Calendar
System
java垃圾回收机制的原理
明日:Java集合框架