因为最近要参加csp,所以先刷三天的题,就先不学习了,而且根据辅导员的说法也不让去实习,所以java学习就不赶进度了,每天按计划来,剩下时间刷数据结构去了,Eclipse真烂
Object类
Object是所有类的直接父类或者间接父类,所以所有类都可以使用Object的toString()方法和equals(Object obj)方法
基本数据类型比较的是数值,引用数据类型比较的是方法,因此对toString()和equals()方法进行覆盖重写可以达到对比和显示类的效果
使用快捷键也可以达到对toString和equals方法重写的效果
放一段重写后的个人类,其中包括了覆盖重写的toString()和equals()方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
学习此类的目的是在代码中能够快速的展示类的成员变量,用快捷键也可以实现该效果。
除此之外,还学习了Objects类中的Object.equals(q1,q2)的方法,该方法不需要重写,可对任何类型的数值进行比较,使用前学需要导入import java.util.Objects;包
Person p1=new Person("古力娜扎",18);
Person p2=new Person("古力娜",18);
System.out.println(Objects.equals(p1,p2));
Date类
Date date=new Date();无参情况可以显示此时标准时间
Date date=new Date(long);有参情况可表示参数所表示的毫秒数是何年何月何日以及具体某时某分精确到毫秒
Date类中的getTime()成员方法可以得到标准时间距离”0时间“有多少毫秒
使用该包,需导入import java.util.Date类
Date d1=new Date(0L);
System.out.println(d1); //表示参数表示的毫秒的标准时间
Date date=new Date();
System.out.println(date); //表示离此时此刻的标准时间
System.out.println(date.getTime()); //展示的是标准时间离零时间的毫秒数
成员方法:
String format(Date date),可以将标准时间化为字符串,并且以特定的格式输出
Date parse(String sourse),可以将符合模式的字符串转化为标准时间,但是使用的时候必须要抛出异常
构造方法:SimpleDateFormat(String pottern),在调用此类时必须在参数位置输入特定的模式
模式:区分大小写
y 年 M 月 d 日 H 时 m 分 s秒
SimpleDateFormat sdf=new SimpleDateFormat("yyy-MM-dd HH:mm:ss"); //创建SimpleDateFormat类,创建时参数位置要输入一定模式
String next=sdf.format(date); //将此时的标准时间转化为字符串类型,返回值为String类型
Date date1=sdf.parse(next); //将传入的字符串类型转化为标准时间,但是子啊使用时需要抛出异常
public static void demo01() throws ParseException //抛出异常
public static void main(String[] args) throws ParseException
Calendar类
Calendar类是一个日历抽象类,里面提供了很多操作日历字段的方法
Calendar类无法直接创建使用,里面有一个静态类叫getIntance()类的子对象
因为是抽象类中的静态方法,所以getinstance()方法可以直接使用
Calendar c=Calendar.getInstance(); //返回Canlendar具体年月日
方法get(Calendar.YEAR)等方法可以得到现在的年份以及月份
所涉及的YEAR,MONTH,DATE必须大写
int year = c.get(Calendar.YEAR);
System.out.println(year);
int mouth = c.get(Calendar.MONTH) + 1;
System.out.println(mouth);
int date1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
int hour = c.get(Calendar.HOUR);
System.out.println(hour);
Calendar类可以转化为Date类
Date date=c.getTime(); //用getTime方法可以将日历类转化为标准时间
System类
Arrays.toString(数组名) //可以输出整个数组
因为System类输入lang包,所以在使用时不需要导包
System.currentTimeMillis()可以表示从0时刻到此刻的毫秒数,常用来计算程序运行时间来检验代码的优劣性
long s = System.currentTimeMillis();
for (int i = 1; i <= 999; i++) {
System.out.println(i);
}
long m = System.currentTimeMillis();
System.out.println(m - s);
System.arraycopy();可以在数组中来复制内容
System.arraycopy(src,0,dest,0,3); //src表示原数组,dest表示目标数组,第一个0表示从原数组的0开始复制 第二个0表示复制到目标数组的0位置 3表示复制的长度
StringBuilder类
StringBuilder()类型可以创建可变长度的字符串,其中构造方法有有参的和无参的
StringBuilder bu1 = new StringBuilder(); //无参构造
StringBuilder bu2 = new StringBuilder("abc"); //有参构造
append()方法可以用来向字符串添加任何类型的数据
bu2.append(true).append("中").append(3123); //加长字符串的长度
StringBuilder和String可以相互转化
String->StringBuilder可以使用StringBuilder的构造方法,StringBuilder(String str)构造一个字符串产生器,并且初始化为指定字符串
String str="sad";
StringBuilder bu1 = new StringBuilder(str); //StringBuilder->String
可变长字符串.toString()可以将StringBuilder转化为String类型
System.out.println(bu1.toString());
包装类
基本数据结构的包装类:Integer,Float,Double,Character,Byte
例如:Integer类型
构造方法:
Integer(int value)构造一个新分配的Integer对象,它指定int值
Integer(String s)构造一个新分配的Integer对象,他表示String参数指示的必须是int类型的字符串,必须是基本型,否则会抛出异常
Integer in1 = new Integer(1);
Integer in2=new Integer("45");
静态方法:(也可以永安里创建包装类)
static Integer valueof(int i)返回一个表示指定的int值的Integer实例
static Integer valueof(String s)返回保存指定的String值的Integer对象
Integer in3 = Integer.valueOf(312);
Integer in3 = Integer.valueOf(“321”);
int intvalue()以int类型返回值返回Integer的值
int i=in1.intValue(); //用来输出Integer包装类
自动拆箱和装箱
就是直接将Integer包装类当作int类型来使用
Integer in=1;
in+=1;
基本类型和字符串之间的相互转换
基本类型->字符串类型
int i1=100;
String s1=i1+""; //基本类型+“”(最简单的方法)
String s3 = String.valueOf(100);
System.out.println(s3); //String类的静态方法
String s2 = Integer.toString(100);
System.out.println(s2+200); //包装类的静态方法
字符串类型->基本类型
使用包装类的静态方法parseXXX
Integer类 static int.parseInt(String s)
t i=Integer.parseInt("421412"); //字符串类型->基本类型