Object类和常用的API
Posted hbwyh-myworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object类和常用的API相关的知识,希望对你有一定的参考价值。
第一章Object类
1.1 概述
1),Object 类是Java语言所有“引用类型”的父类,括我们自定义的类、类库中的类,数组,集合,字符串。
2),所有的的引用类型都从Object类继承了一些方法:
如,1).toString() 2).equals()方法
1.2 toString方法
1),(由于Object类中toString方法返回的结果是内存地址,因此)需要重写toString方法。重写后的toString()方法,打印所有的属性值。
2) (1),在我们直接使用输出语句输出对象名(stu)的时候,其实通过该对象调用了其toString()方法。(输出结果为:Person{name=‘张三‘, age=19} )
println(Object obj)隐式的内部调用stu.toString()方法。
public class Demo {
public static void main(String[] args) {
Student stu = new Student("张三", 19);
System.out.println(stu);
}
}
(2)而我们常用的是,println(String s)
1.3 equals方法
1)(如果没有覆盖重写equals方法,那么Object类中默认进行 == 运算符的对象地址比较,只要不是同一个对象,结果必然为false。)需要重写equals方法,比较“两个对象”的所有属性值是否完全相同。
2)重写equals()方法时,快捷键:generate—>equals() and hashCode()—>next,next. 自动生成。
1.4 Objects类
1)Objects类是Object类的子类,是一个工具类,由一些静态的实用方法组成。
2)其中一个方法:equals(Object o1,Object o2)。 此方法可以比较两个对象“是否完全相同”。(需要重写equals方法,如上)
注意:此方法也是基于我们对象的equals()方法进行判断的。对于“空引用”,Objects的equals()方法更安全。
第一章 日期时间类
2.1 Date类
1).java.util.Date(类):代表了一个特定的时间,精度:毫秒(1000毫秒=1秒);
2).构造方法:
1).Date():使用当前系统时间构造一个Date对象。
2).Date(long m):使用一个“毫秒值”构造一个Date对象。(表示自从标准基准时间,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。)
3).成员方法:
1).public long getTime():获取此Date对象代表的毫秒值;
2).public void setTime(long m):设置此Date对象的毫秒值;此Date对象所表示的日期会被更改;
2.2 DateFormat类
1).java.text.DateFormat(抽象类):可以对Date进行“格式化显示”的一个工具类。
注:此类是一个“抽象类”,不能直接创建对象,可以使用它的子类:
2).java.text.SimpleDateFormat(子类):
3).构造方法:
1).SimpleDateFormat?(String pattern):
DateFormat format = new SimpleDateFormat("yyyy‐MM‐dd HH:mm:ss")
4).常用方法:
1).public String format(Date date):将一个date对象按照指定的格式转换为一个string.
2).public Date parse(String str):将一个字符串的日期转换为Date对象。
2.3 Calendar类
1)概念:Calendar为抽象类,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象GregorianCalendar,格式:Calendar c = Calendar.getInstance();
2).常用方法:
1).public int get(int field):获取某个字段的值;
2).public void set(int field,int value):设置某个字段的值;
3).public void add(int field,int value):为某个字段增加指定的值;
4)Calendar中的getTime方法并不是获取毫秒时刻,而是拿到对应的Date对象。
3)注意:月从0开始,可以+1使用;周中的天(周几,周日为1,可以-1使用)
第二章 System类(arraycopy,currentTimeMillis)
1).java.lang.System(类):包含了一些实用的静态方法:
2).常用方法:
1).public static void arraycopy?(Object src, //原数组
int srcPos,//原数组的起始位置
Object dest, //目标数组
int destPos, //目标数组的索引位置
int length) //复制的数量
2).public static long currentTimeMillis?():获取当前系统时间的毫秒值;
常用来计算代码的执行时间。
相当于:Date date = new Date();
long m = date.getTime();
3) .public static void exit (int status):结束JVM。也就是结束程序。
第三章 StringBuilder类
4.1 StringBuilder概述
(由于String的不可变性,导致做“字符串连接”时,效率低下。)所以,java.lang.StringBuilder(类):专门做“字符串连接”。
4.2 构造方法
StringBuilder():构造一个有16个空位置的StringBuilder对象。
4.3 常用方法
1).public StringBuilder append(各种类型):向StringBuilder中添加数据;
对象名.append("Hello")..append(10).append(3.14);//方法链
可以添加任意类型(可无双引号)
2).public StringBuilder reverse():将StringBuilder中的数据反转;
第四章 包装类
5.1 概念
1).基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
2).每个包装类中都包含很多对此种类型数据进行操作的一些方法:
例如:
将某种类型转换为字符串;
将字符串转换为某种类型;
5.2 常见应用
1).将某种类型转换为字符串:
int a = 24;
String s = Integer.toString(a);
//其它方法:
int a = 24;
String s = a + "";
2).将字符串转换为某种类型:
String a = "24";
int age = Integer.parseInt(a);
=====================================================
任何包装类(除Character)都有parseXxx(String s):可以将字符串转换为自己的那种类型:
byte Byte parseByte(String s)
short Short parseShort(String s)
int Integer·parseInt(String s)
long Long parseLong(String s)
float Float parseFloat(String s)
double Double parseDouble(String s)
char Character .......
boolean Boolean parseBoolean(String s)
5.3 装箱和拆箱
1).装箱:将"基本类型"赋值给"包装类型";
2).拆箱:将"包装类型"赋值给"基本类型":
3).好处:将"包装类型"与"基本类型"可以等同看待,操作起来比较方便。
注意:
1,字符串地址比较
(1)
String s1 = new String("abc");
String s2 = "abc";
System.out.println(s1 == s2); //false
System.out.println(s1.equals(s2)); //true
(2)
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); //true
System.out.println(s1.equals(s2)); //true
(3)
String s1 = "a" + "b" + "c";
String s2 = "abc";
System.out.println(s1 == s2); //true
System.out.println(s1.equals(s2)); //true
(4)
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2); //false
System.out.println(s3.equals(s2)); //true
注意:直接赋值时,字符串在常量池;new一个String字符串时,字符串在堆里。
以上是关于Object类和常用的API的主要内容,如果未能解决你的问题,请参考以下文章