学习Java掌握这几个API就够了


Object类

java.lang.object类是Java语言中的根源类,简单来说就是所有类的父类。

他所描述的方法子类都可以使用。

Object类常用方法 (toString、equals和hashcode)

public String toString():
返回该对象的字符串表示,其实字符串内容就是对象的类型+@+内存地址
public class Dog {
String name;
String color;

@Override
public String toString() {
return "狗的名字" + name + "狗的颜色" +color;
}
}
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "豺狗";
dog.color = "黑色";
System.out.println(dog);
System.out.println(dog.toString());
}
}
equals()方法返回的是一个boolean类型的值,用来比较两个对象是否等价。
在比较一些特定的引用类型数据时,允许改变严格的等价性标准,只要两个对象等价就返回true
关系运算符中有一个==运算符,它可以对简单数据类型的值进行比较,也可以对引用数据类型进行
比较。==判断不存在任何变通的可能,只是比较是否同一个对象
public class Test {
public static void main(String[] args) {
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
s2 = s1;
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
public int hashCode();
返回当前对象的哈希码值。
哈希码值就是系统为每个对象自动创建的整数编号
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "豺狗";
dog.color = "黑色";
Dog d2 =new Dog();
dog.name = d2.name;
dog.color = d2.color;
System.out.println(dog.hashCode());
System.out.println(d2.hashCode());
}
}

封装类(包装类)

基本数据类型

包装类

boolean

Boolean

char

Character

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

包装类和基本数据类型的转换

public class Test {
public static void main(String[] args) {
//jdk5之前的手动装箱和手动拆箱
//手动装箱
long l1 = 30;
Long aLong = new Long(l1);
Long aLong1 = Long.valueOf(l1);
//手动拆箱
long l = aLong.longValue();

//jdk5之后就可以自动装箱和自动拆箱
//自动装箱底层调用的是valueOf方法,比如Long.valueOf()
double d1 = 21.4;
//自动装箱
Double double1 = d1;
//自动拆箱
double d2 = double1;
}
}

包装类转换字符串类型

//包装类转化成字符串
Integer v = 200;
//方式1
String str1 = v + "";
//方式2
String str2 = v.toString();
//方式3
String str3 = String.valueOf(v);

字符串类型转换包装类

//字符串转换成包装类
String str4 = "12346";
Integer i2 = Integer.parseInt(str4);//使用到自动装箱
Integer i3 = new Integer(str4);

Integer类和Character常用的方法

System.out.println(Integer.MIN_VALUE);//返回最小值
System.out.println(Integer.MAX_VALUE);//返回最大值

System.out.println(Character.isDigit('a'));//判断是不是数字
System.out.println(Character.isLetter('a'));//判断是不是字母
System.out.println(Character.isUpperCase('a'));//判断是不是大写
System.out.println(Character.isLowerCase('a'));//判断是不是小写

System.out.println(Character.isWhitespace('a'));//判断是不是空格
System.out.println(Character.toUpperCase('a'));//转换成大写
System.out.println(Character.toLowerCase('a'));//转换成小写

Integer的创建机制

//对象比较(简单算法:只要有一个new和==,它返回的真假必定是假)
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false
Integer i1 = 1;
Integer j1 = new Integer(1);
System.out.println(i1 == j2);//false
//这里比较主要看是范围-128 ————127 ,直接返回
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true
//看范围,如果超过范围,就是new Inter(128);
Integer x = 128;
Integer y = 128;
System.out.println(x == y);//false

Integer m2 = 127;
int n2 = 127;
System.out.println(m2 == n2);//true
//只要有基本数据类型,判断的是值是否相同

String类

理解

1.String对象用于保存字符串,也就是一组字符序列

2.字符串常量对象是用双引号括起的字符序列。例如:“你好”,“12.97”

3.字符串的字符使用Unicode字符编码,一个字符(不区分字母还是汉字)占两个字节

方法

//常用的构造方法
public String(): //初始化一个新建的String对象,表示空串。
public String(byte[] bytes)://使用当前平台的默认字符集解码指定的字节数组
//并将解析出来的字符按照原来的顺序构造一个String对象
public String(char[] value)://复制字符数组value的内容来构造新的String对象
//创建后对字符数组的修改不会影响新创建的字符串
public String(String original)//用已有的String对象original初始化一个新的String
//对象,实现类string对象的复制功能
public String(StringBuffer stringBuffer)://使用对象stringBuffer的内容来构造新的
//String对象,创建后对stringBuffer对象的修改不会
//影响新创建的字符串
//常用的成员方法
//1.提供字符串连接、转换、截断功能
public String concat(String str)://实现字符串连接
public String replace(char oldChar, char newChar)://实现字符串内容替换功能
public String substring(int beginIndex)//实现在字符串中提取子串的功能
public String substring(int beginIndex,int endIndex)
public String tolowerCase()://将字符串内容全部转换成小写,组成一个新的字符串
public String toUpperCase()://将字符串内容全部转换成大写,组成新的字符串
public String trim()://过滤掉字符串开头和结尾的空格

//2.检索和查找
public char charAt(int index)://返回指定索引位置的字符
public boolean endsWith(String suffix)://判断当前字符串是否以指定的子串结尾
public boolean startsWith(String prefix)://判断当前字符串是否以指定的子串开头
public int indexOf(int ch)
public int indexOf(String str)//查找指定的字符或者字符串在当前字符串中出现的索引位置(下标)
public int lastIndexOf(int ch)
public int lastIndexOf(String str)://查找指定的字符或字符串在当前字符串中最后一次出现的索引位置(下标)
public int length()://返回字符串长度,包含的字符个数

//3.内容比较功能
public boolean equals(Object anObject) :
//比较当前字符串与指定对象的等价性

public boolean equalsIgnoreCase(String anotherString):
//比较两个字符串的内容是否相同,忽略大小写

public int compareTo(String anotherString):
//按照字典顺序比较两个字符串的大小

//4.拆分字符串
public String[] split(String regex):
//该方法根据给定的表达式的匹配拆分字符串。

StringBuffer类

理解

该类表示内容可修改的Unicode编码字符序列,其对象创建后,所保存的字符串内容和长度均可修改

。实际上说每个StringBuffer对象都拥有一个可变的容量的字符缓冲区域,该缓冲区的容量缓冲区

的容量(缓冲区占用的内存空间大小,或者说可以容纳字符的数量)可以随着内容的增加自动扩充,也可以直接设定。

方法

//1.构造方法
public StringBuffer()://创建一个不带字符的字符缓冲区,初始容量为16个字符
public StringBuffer(int capacity)://制造一个不带字符,但具有指定初始容量的字符缓冲区
public StringBuffer(String str)://创建一个字符缓冲区,并将内容初始化为指定的字符串内容

//2.常用方法
append()://向字符缓冲区追加信息,可将任何类型的参数的值转换成String类型,追加到原有的字符序列的尾部
insert()://将参数的值转换成String形式插入当前指定字符序列中指定的位置。
public StringBuffer reverse();//将当前的字符序列进行反转处理
public void setCharAt(int index,char ch)://指定字符序列中指定索引处的字符

System类

理解

Java不支持全局函数和全局变量,设计者就将一些系统相关的重要函数和变量收集到System类中,

该类的所有成员全是动态的,当引用这些变量和方法时,直接以System为前缀即可使用,如:System.in、System.out等。

常用的静态方法

exit()://终止当前正在运行的Java虚拟机,参数表示状态码。根据惯例,非零的数字表示异常终止

currentTimeMillis()://该方法获得当前毫秒数,毫秒数是来自1970年1月1日0时为起点。

arraycopy(Obiect src,int srcPos,Object dest,int destPos,int length):
//从指定原数组中复制数组,复制从指定的位置开始,到目标数组的指定位置结束。其中,src表示原数组
//srcPos表示源数组中的起始位置;dest表示目标数组;destPos表示目标数组中的起始位置;lenght
//表示复制的数组元素的数量

数学相关类型(Math类)

介绍

他提供一个常用的数学运算功能和数学常量,其中的属性和方法均被定义为public和static的,

所以不需要创建Math类的实例即可直接调用。

方法

1.数据截断操作

public static double ceil(double a):
//向上取整,返回最小的double值,该值大于参数或等于参数,并等于某个整数

public static double floor(double a):
//向下取整,返回最大的double值,该值小于或等于参数,并等于某个整数。

public static long round(double a)
public static int round(float a)://四舍五入

2.取最大、最小及绝对值

int max()、float max()、long max() double max():
//返回两个数中的最大值
int min()、float min()、long min()、double min():
//返回两个数中的最小值
int abs()、float abs()、long abs()、double abs():
//返回参数a的绝对值

3.三角函数

sin()、cos()、tan():
//返回角的正弦值、余弦值和正切值
asin()、acos()、atan():
//返回反正弦值,反余弦值和反正切值
double toDegress(double angrad):
//将弧度表示的角转换为近似相等的用角度表示的角

double toRadians(double angdeg):
//用角度表示的角转换成近似相等的用弧度表示的角

4.幂运算和对数运算

double pow(double a,double b):
//幂运算

double exp(double a):
//对欧拉数e进行指定次数的运算

double sqrt(double a):
//返回参数a的正平方根

double log(double a):
//自然对数运算

double log10(double):
//以10为底的对数运算

5、随机数

public static double random():
//用于生成double类型随机数,取值区间[0.0 , 1.0]

6.常量

double PI;//圆周率常量
double E; //欧拉数常量

日期时间类

Date类

public Date()://分配Date对象并初始化此对象,以表示他的时间(精确到毫秒)
//基准时间是从1970年1月1日8时0分0秒。使用无参构造,可以设置当前时间的毫秒时刻
常用方法
public long getTime()
//把时间转换成对应的时间毫秒值

DateFormat类

java.text.DateFormat是日期时间格式化子类的抽象类,它可以完成日期和文本之间的转换

就是在Date对象与String对象之间进行来回转换。

由于java.text.DateForma是抽象类,所以用到java.text.SimpleDateFormat,

这类需要一个格式来指定格式化或解析化的标准,构造方法为

格式化:按照指定的格式,从Date对象转换Strring对象

解析:只能指定的格式,从String对象转换为Date对象

public SimoleDateFormat(String pattern)
//获取端午节日期
String DragonString ="2021-06-14";
//将字符串日期转换成Date对象,创建SimpleDateFormat对象,写日期模式
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");//实例化日期格式类
Date DragonDate = sim.parse(DragonString); //调用方法parse,字符串转化成日期对象
格式规则

表示字母(区分大小写)

含义

y


M

月份

d


H

小时

m

分钟

s


//将Date对象格式化为字符串
public String format(Date date)

//将字符串解析为Date对象
public Date parse(String source)
public class DragonBoatFestival {

public static void main(String[] args) throws Exception {
//获取当前日期对象
Date date = new Date();
long nowTime = date.getTime();//获取现在距离1970年1月1日毫秒数

//获取端午节日期
String DragonString ="2021-06-14";
//获取用户输入的日期
//将字符串日期转换成Date对象,创建SimpleDateFormat对象,写日期模式
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd");//实例化日期格式类
Date DragonDate = sim.parse(DragonString); //调用方法parse,字符串转化成日期对象

//获取端午节日期距离1970年1月1日的毫秒数
long newDragonDate = DragonDate.getTime();
long cha = newDragonDate-nowTime;

//天数
long day = cha/1000/60/60/24;
//小时
long hour = cha/1000/60/60%24;
//分钟
long minute = cha/1000/60%60%24;
//秒
long s = cha/1000%60;
System.out.println("距离端午还有"+day+"天"+" "+hour+"小时"+" "+minute+"分钟"+" "+s+"s");

}
}

Calendar类

java.util.Calendar是日历类。该类将所有可能用到的时间信息封装为静态成员变量。日历类

方便获取各个时间属性

//使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance;
public int get(int field);//返回给定的日历字段的值

public void set(int field ,int value);//将给定的日历字段设置为定值

public abstarct void add(int field,int amount);
//根据日历的规则,为给定的日历字段添加或减去指定的时间量

public Date getTime();
//返回一个Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

字段值

含义

YEAR


MONTH

月(从零开始,可以+1使用)

DAY_OF_MONTH

月中的几天(几号)

HOUR

时(12小时制)

HOUR_OF_DAY

时(24小时制)

MINUTE


SECOND


DAY_OF_WEEK

周中的天(周几,周日为1,可以-1使用)