1.Object类里面的方法
a.toString()方法
1.Object类中原始的toString(),打印语句当打印对象的时候默认调用toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
//例如打印Object对象:
//hashCode():根据对象的内存地址值以及哈希算法得出一个哈希值
//Integer.toHexString:再将十进制的哈希值转成十六进制
//java.lang.Object@2f327c02
}
2.开发中我们一般自定义类重写Object类中原始的toString(),返回该类中所有成员变量的拼接形式
class User extends Object{
private String name;
private int age;
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
//重写Object类中的toString
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
User user = new User("angellababy",27);
System.out.println(user.toString());//User [name=angellababy, age=27]
b.equals():
1.Object类中原始的equals(),比较的两个对象的地址值
public boolean equals(Object obj) {
return (this == obj);
// user==user2
}
User user = new User("angellababy",27);
User user2 = new User("angellababy",27);
System.out.println(user.equals(user2));//如果User类不重写Object类里面的equals
//比较user和user2指向的对象的地址
2.我们一般不适用Obejct类中原始的equals方法而是,重写equals
我们去比较该类的属性值,只有属性值全部相同才返回true,只要有一个不同,就返回false
例如:人有姓名,年龄,身高,性别 这个人具有所有属性都相同才认为是同一个人,否则就不是同一个人
public boolean equals(Object obj) {
// 将传入的对象,向下转型为User以便于与User对比
User otherUser = (User) obj;
// 获取传入对象的属性值
String oName = otherUser.getName();
int oAge = otherUser.getAge();
// 使用传入对象的属性值,依次与本对象的属性值做比较,如果有不相同的,直接返回false
if (!this.name.equals(oName)) {
return false;
}
if (!(this.age == oAge)) {
return false;
}
// 如果所有属性判断均相同,则返回true
return true;
}
开发中toString()和equals()方法都需要被重写
2.java.util.Date
a.构造方法:
Date()//将电脑系统当前时间封装成Date对象
Date(long time)//将指定毫秒值封装Date对象
b.getTime()//自1970年1月1日零时零分零秒到系统当前时间所经过毫秒值
(重点)c.日期对象<->日期字符串
构造方法:
public SimpleDateFormat(String pattern) 使用指定格式创建日期格式化对象
转换方法:
public final String format(Date date) 日期转字符串
public Date parse(String source) 字符串转日期
throws ParseException
转换代码:
/*日期对象转换为日期字符串*/
//创建日期格式化对象
Date date=new Date();
String myPattern = "yyyy年MM月dd日 HH:mm:ss";
DateFormat df = new SimpleDateFormat(myPattern);
//将日期对象date变为xxxx年xx月xx日 xx:xx:xx
String sDate = df.format(date);//重点记忆
System.out.println(sDate);
/*日期字符串转换为日期对象*/
String myPattern = "yyyy年MM月dd日 HH:mm:ss";
DateFormat df = new SimpleDateFormat(myPattern);
//将格式为2088年02月18日 10:50:28的字符串 转成Date对象
String sDate2 = "2088年02月18日 10:50:28";
Date parse = df.parse(sDate2);//按照myPattern指定的格式解析sDate2中的日期字符串
//myPattern中指定的格式和要解析的日期字符串必须保持一致
System.out.println(parse);
3.字符串缓冲区:StringBuilder/StringBuffer:以后用到拼接字符串全部使用StringBuilder完成,为了节约内存
对比:StringBuffer 安全,效率低
StringBuilder 不安全,效率高
方法:
append(XXX xx)//向缓冲区中追加任意类型的数据
toString()//把缓冲区的内容拼接成一个字符串返回
用+=的缺点:
每次+=拼接数据,底层都会new一个新的StringBuidler对象,浪费内存
4.日历类:Calendar 取代了 Date,Calendar 不能直接创建对象需要通过 Calendar 类的静态方法getInstance()获取其子类对象
方法:
get(int field);//根据Calendar的常量字段获取指定日期
Calendar now = Calendar.getInstance();
System.out.println(now.get(Calendar.YEAR));
System.out.println(now.get(Calendar.MONTH));
System.out.println(now.get(Calendar.DAY_OF_MONTH));//现实中的1~12,获取的月是0~11
System.out.println(now.get(Calendar.DAY_OF_WEEK));//周日~周六代表1~7 例如:今天周日,返回1
set(int field,int value)//为指定的字段设置指定值
now.set(Calendar.YEAR,2017);
5.正则表达式:正则表达式也是一个字符串
专门用来匹配字符串
Pattern类有对应的规则
正则表达式不要求会写,知道正则表达式含义
String的功能:
matches(String regex)//传一个规则(正则表达式)匹配返回true,不匹配返回false
String[] split(String regex)//按照指定的规则切割字符串
replaceAll(String reagex,String replaceStr)//只要符合规则就把符合规则的所有子串都替换成repalceStr
匹配手机号:
String str="15836603988";
String regex="[1][34578][0-9]{9}";
str.matches(regex);//true
匹配邮箱
String email="zhanghongqian@itcast.cn";
email.matches("\\w+@\\w{2,7}\\.\\w{2,3}");//\\w [a-zA-Z_0-9] true
6.System类
getCurrentMillis();//Date类的getTime(),Calendar类的 getTimeInMillis()
exit()//一旦调用该方法System.exit(0)就直接结束程序(关闭JVM)
|
|