键盘输入 Scanner
Scanner sc=new Scanner(System.in); //生成键盘输入的对象
int age=sc.nextInt(); //接受年龄,即接受键盘输入
StringBuffer
StringBuffer创建的的字符串可以改变
例如:
SrtingBuffer sb=new SrtingBuffer(“adc”);
Sb.append(“def”); //连接字符串,在sb的后面加”def”,(称为追加)
M=Sb.toString(); //将sb的值赋给M
SrtingBuffer与String的区别:
SrtingBuffer 比String的性能比较好,速度快,因为它创建的字符串可以在原有的基础上改变
Math
Math类中没有一个构造函数,且方法都是static,可以直接类名Math调用
例如:
//返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
System.out.println(Math.ceil(6.1)); //输出7.0
//返回第一个参数的第二个参数次幂的值。
System.out.println(Math.pow(2,32)); //输出2的32次幂
Object
Object是所有类的父类,属于超类
Finalize
Object中的Finalize方法:
是Java虚拟机调用,回收垃圾的
特点:
任何其它类都可以调用Object里的方法,且不用写extends
(JAVA 本身定义的类,存在继承关系,在使用时不用写extends)
例子分析:
package day6;
import day3.jicheng.Person;
publicclass ObjectTest {
publicstaticvoid main(String[] args) {
//Object:所有类的父类
Person p=new Person("aa",22);
//Object中的toString(),返回对象的类名@对象所在的内存地址
à①System.out.println(p.toString());
à②System.out.println(p);
Person p1=new Person("aa",22);
//Object中的equals(),比较对象是不是同一内存空间,跟==作用相同
//java推荐:equals()比较对象属性是不是相同
à③ if(p.equals(p1)){
System.out.println("a");
}else{
System.out.println("b");
}
}
}
à子类Person中重写Object中的方法toString():
à public String toString() { //覆盖Object中的toString方法
à returnname+":"+age;
à }
分析1: 返回该对象的字符串表示调用方法toString()
当子类Person中有重写Object中的方法toString()时,①②的输出的结果是一样的:
à①aa:22
à②aa:22
à③a
当子类Person中没有重写Object中的方法toString()时,①②输出的为:
返回对象的类名@对象所在的内存地址
à①day3.jicheng.Person@12b6651
à②day3.jicheng.Person@12b6651
à③a
分析2:equals()方法
Object中的equals()方法,不同于String里的,因为在String里重写了Object中的equals()方法
区别:
Object中的equals(),比较对象是不是同一内存空间,跟==作用相同
String 中的 equals(),比较对象里的内容,不是内存空间
Java.util 里的类
Date
1. 可以输出当前时间
例如:
Date d=new Date();
System.out.println(d);è①
System.out.println(new Date());è②
注:new Date()输出的是当前时间
è①②功能是一样的
2.Date基本上已经过时了,但常用Date可以格式化输出日期
//"yyyy-MM-dd HH:mm:ss”è年-月-日时:分:秒
DateFormatdf=new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(df.format(new Date()));
注:
格式化输出日期使用DateFormat的直接子类SimpleDateFormat来实现
SimpleDateFormat的构造函数èpublic SimpleDateFormat(String pattern)
3.格式化数字
DecimalFormat numF=new DecimalFormat("#.000");
double f=5.55555555;
System.out.println(numF.format(f));
结果:
5.556
4. Date 与 String 的格式转换
à① // date->String
String str=df.format(new Date());
System.out.println(str);
String str1="2000年1月2日";
à② try {
// String->date
Date d2=df.parse(str1);
} catch (ParseException e) { //一定要用异常么 ?
e.printStackTrace();
}
Calendar
Calendar的变量几乎都是是static的
1.Calendar创建有别与其它类, Calendar不使用new
Calendar cal=Calendar.getInstance();
2. 设置日历的时间年/月/日
cal.set(Calendar.YEAR,int m); //设置年
cal.set(Calendar.MONTH,int n); //设置月
cal.set(Calendar.DAY_OF_MONTH,int k); //设置日❤★
注:
电脑系统的月份是0到11,而现实中的时间是1到12
例如:
当为0时表示现实是1月份
3.取日期
int year=cal.get(Calendar.YEAR);
int month=cal.get(Calendar.MONTH)+1; ★
intday=cal.get(Calendar.DAY_OF_MONTH);
intweek=cal.get(Calendar.DAY_OF_WEEK);❤
注:
❤DAY_OF_WEEK一般获取❤★设置的日期是星期几
★ 系统月份与现实月份不同
4.加时间
cal.add(Calendar.DAY_OF_MONTH, -100);
5.得到某个月份的最大值
int dayMax=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
6. Calendar与Date类型转换, Date是Calendar的父类
Calendar->Date:
Date d=cal.getTime();
Date->Calendar:
Date d2=new Date();
cal.setTime(d2);
7.取当前时间,并打印
ArrayList
一般定义的数组 Array在定义时必须规定大小,且长度不可变
int[]iA={1,2,3};
但ArrayList创建的数组,长度是可变的
1.创建ArrayList数组,且数组下标从0开始
ArrayList al=new ArrayList();
2.使用add() 方法添加元素
al.add(1);//向下标为0的单元,添加数字1
al.add(2);//向下标为1的单元,添加数字2
3.Size() 方法显示当前元素的个数,即数组长度
int size=al.size();
4.Remove() 方法删除元素
删除下标为2的元素,2后面的元素自动上移
al.remove(2);
5.get() 方法取元素
取下标为2元素
int i=(Integer)al.get(2);
System.out.println(i);
6.访问每一个元素,两种方法
à①for(i=0;i<al.size();i++){
à int m=(Integer)al.get(i);
à System.out.println(m);
à }
à②for(Object obj:al){
à int m=(Integer)obj;
à System.out.println(m);
à }
注:
本次举类中,数组元素都是整型,所以采用强制转换将数组转换成整型
如果是student类就强制转换成student类:
student k3=new student("wo3",23,78);
ArrayList al=new ArrayList();
al.add(k3); //k3元素的下标为0
studentp=(student)al.get(0);
HashMap
类似于ArrayList
特点:
本身没有下标,把key当成下标(key,value)且key不能重
使用HashMap要引用包:
import java.util.HashMap;
1. 创建HashMap
HashMap hm=new HashMap();
2.使用put() 方法添加元素
Personp1=new Person("p1",22);
Personp2=new Person("p2",22);
hm.put("001",p1);
hm.put("002",p2);
3.Size() 方法显示当前元素的个数
intsize=hm.size();
System.out.println(size);
4.Remove() 方法删除元素
hm.remove("003");
5.get() 方法取元素
Personp=(Person)hm.get("002");
p.getInfo();
6.访问每一个元素
for(Objectkey:hm.keySet())
{
Stringk=(String)key;
Personpp=(Person)hm.get(k);
System.out.print(k+"-----");
pp.getInfo();
}