列举在开发中常用到的 API
Object 类是所有类的父类,若一个类没有指定继承的类则继承Object。任一类都直接或间接继承于Object。
源码:
public String toString() { return getClass().getName() + '@' + Integer.toHexString(hashCode()) }
注意: 若不重写 toString 则返回 对象类型 + @ + 地址的哈希值
重写 toString 方法
@Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; }
源码:
public boolean equals(Object obj) { return (this == obj); }
注意: 若不重写 equals 则比较两个对象的地址值
重写 equals 方法
@Override public boolean equals(Object o) { //判断是否为同一个对象 if (this == o) return true; //判断是否为空,是否为同一引用类型 if (o == null || getClass() != o.getClass()) return false; //向下转型 Student_equals that = (Student_equals) o; //返回内容的比较结果 return age == that.age && Objects.equals(name, that.name); }
源码:
public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b)); }
注意: Objects.equals(a, b) 容忍空指针
一个可以解析基本类型和字符串的文本扫描器。
// import 包名.类名; import java.util.Scanner;
// 类名 对象名 = new 类名( 参数列表 ); // System.in系统输入指的是从键盘输入 Scanner sc = new Scanner(System.in);
它从遇到的第一个有效字符(非空格、非换行)开始扫描,以空格或者换行符为终点,返回字符串。
以换行符为终点,获取一整行数据。
以空格或者换行符为终点,返回整数(实际是获取的字符串,只是将其转为了整数)。
判断输入流中是否还有数据,有则返回 true。
import java.util.Scanner; public class Demo_Scanner { public static void main(String[] args) { // 创建 Screen 对象 Scanner sc = new Scanner(System.in); // 使用 nextInt() 方法 int i = sc.nextInt(); System.out.println(i); } }
用于生成一个伪随机数。
import java.util.Random;
Random r = new Random();
nextInt() 生成一个随机数 nextInt(int b) 生成一个 [0, b) 的随机数
import java.util.Random; public class Demo_Random { public static void main(String[] args) { Random r = new Random(); // 生成一个 [0, 10) 的随机数 int i = r.nextInt(10); System.out.println(i); } }
String 代表字符串,java中的字符串常量都可以看为 String 的实例,例如:“abc”
String 类在 java.lang 包中,所以不需要导包
// 形式一 String str = new String("string"); // 形式二 String str = new String(char[] chars); // 形式三 String str = new String(byte[] bytes); // 形式四 String str = "abc"
String 对象在创建后不能更改,所以可以被共享。例如:String s = “abc” 是 “abc” 不能更改,而不是变量 s 。
String s1 = "Hello World"; String s2 = new String("Hello World"); // 此时比较的是两个字符串的地址值是否一致,而不是内容。 System.out.print(s1 == s2); // equals 才是两个字符串的内容是否一致。s1 == null 会报 空指针 s1.equals(s2);
// 获取索引值对应的字符 char charAt( index) // 获取字符串的长度 int length() // 获取第一次出现该字符串的索引值 int indexOf( String str ) // 截取字符串 String subString( beginIndex, endIndex)
// 转为字符数组 char[] toCharArray() // 转为字节数组 byte[] getBytes()
// 按照给定规则分割字符串 String[] split(String regex)
// 将某一字符串替换为新的,只替换第一个 String replace(String oldStr, String newStr) // 替换所有 String replaceAll(String oldStr, String newStr)
创建时间对象
格林威治:1970-01-01 00:00:00 北京:1970-01-01 08:00:00
public Date() 分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 public Date(long date) 分配Date对象并初始化此对象,以表示自从原点以来经过的毫秒数。
getTime() 把日期对象转换成对应的时间毫秒值。
import java.util.Date; public class DemoDate { public static void main(String[] args) { Date date1 = new Date(1000 * 60 * 2); Date date2 = new Date(); //无参构造。表示当前时间L Date date3 = new Date(); //将日期对象转为毫秒值 long m = date3.getTime(); System.out.println(date1); System.out.println(date2); System.out.println(date3); } }
DateFormat 是一个抽象类,不能直接 new 对象,需要使用子类
// 用给定的模式和默认语言环境的日期格式符号创建SimpleDateFormat对象 // y ---> 年 // M ---> 月 // d ---> 日 // H ---> 时 // m ---> 分 // s ---> 秒 SimpleDateFormat sdf = new SimpleDateFormat(pattern);
format() 格式化,按照指定的格式,从Date对象转换为String对象。 parse() 解析,按照指定的格式,从String对象转换为Date对象。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class DemoDateFormat { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); System.out.println("请输入出生日期(格式:xxxx-xx-xx xx:xx:xx)"); String s = sc.nextLine(); //日期对象 Date date = new Date(); //格式化对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化当前日期 String format = sdf.format(date); System.out.println(format); //解析传入日期 Date parse = sdf.parse(s); //计算出生毫秒数 long l = date.getTime() - parse.getTime(); //输出毫秒 System.out.println(l); //输出年龄 System.out.println(l / 1000 / 60 / 60 / 24 / 30 / 12); } }
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。 StringBuilder 会自动维护数组的扩容。(默认16字符空间,超过自动扩充)
public StringBuilder() 构造一个空的 StringBuilder 容器。 public StringBuilder(String str) 构造一个 StringBuilder 容器,并将字符串添加进去。
append(String str) 添加任意类型数据的字符串形式,并返回当前对象自身。 toString() 将当前StringBuilder对象转换为String对象。
public class DemoStringBuilder { public static void main(String[] args) { //使用有参构造创建 StringBuilder 对象 StringBuilder sb = new StringBuilder("中国"); //将字符追加到sb后 sb.append("©"); sb.append(2019); //将StringBuilder转为字符串 String s = sb.toString(); System.out.println(s); } }
ArrayList 是一个集合,数组是定长的,当我们要改变数组长度是需要创建新的数组,ArrayList不同他的长度是可以改变的。
// 泛型指定什么数据类型,集合中就存什么数据类型,需要使用引用类型。 // 第二个<>内可以不写,第一个是什么第二个就默认是什么。 import java.util.ArrayList<E>;
// 泛型指定什么数据类型,集合中就存什么数据类型,需要使用引用类型。 // 第二个<>内可以不写,第一个是什么第二个就默认是什么。 类名<泛型> 集合名 = new 类名<> ();
add( E e ) 添加新的数据到集合中 remove( index ) 删除索引为 index 的元素 get( index ) 获取索引为 index 的元素 size() 获取 list 集合的长度
import java.util.ArrayList; public class Demo_ArrayList { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); list.add(20); list.add(8); list.add(16); list.add(1818); Integer remove = list.remove(1); Integer integer = list.get(1); int size = list.size(); } }
// 将一个字符数组升序排列 sort()
// 生成一个[0,1)的伪随机数 random() // 向上取整 ceil() // 向下取整 floor() // 四舍五入 round() // 取绝对值 abs()
基本数据类型方便、简单、高效,但泛型、集合等不支持使用基本数据类型且不符合面向对象的思想,所以在 Java 中引入了包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
【装箱】基本数值 —> 包装对象
//使用构造函数函数 Integer i1 = new Integer(int i); //使用包装类中的valueOf方法 Integer i2 = Integer.valueOf(int i);
【拆箱】包装对象 —> 基本数值
int num = i.intValue();
注意
// 从 JDK 1.5 开始,基本类型与包装类的装箱、拆箱动作可以自动完成。 Integer i = 1; // 自动装箱 相当于 Integer i = Integer.valueOf(1); int a = i + 2; // 自动拆箱 相当于 i.intValue() + 2;
除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可以将字符串参数转换为对应的基本类型
// 将字符串参数转换为对应的 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) // 将字符串参数转换为对应的 boolean 基本类型。 Boolean parseBoolean(String s)
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句