Java基础--常用API

String

字符串的介绍

String类表示字符串, 字符串就是由一串字符组成的数据。
字符串本质就是一个字符数组, 内部就是在使用一个字符数组保存数据。
扩展:
  在JDK8以及之前的版本,字符串是在用char[]保存数据.
  在JDK9以及之后的版本,字符串是在用byte[]保存数组.
  我们直接使用双引号写出来的字符串,都是字符串对象.  比如:“hello”, “你好”
  字符串具有不变性, 他们的值在创建后不能更改。
  字符串是可以被共享的

	//s1和s2共用一个"abc"常量
	String str1 = "abc";
	String str2 = "abc";

String所在的包是java.lang包,java.lang包下的东西都是非常常用的.
所以java有一个优化,java.lang包下的东西使用时不需要导包.

字符串的构造方法

字符串的构造方法:

    String() 创建一个空的字符串对象
    String(String original) 根据字符串来创建一个字符串对象
    String(char[] value) 通过字符数组来创建字符串对象
    String(char[] value, int offset, int count) 将字符数组的一部分来构造新的字符串对象
    String(byte[] bytes) 通过字节数组来构造新的字符串对象
    String(byte[] bytes, int offset, int length) 通过字节数组一部分来构造新的字符串对象

字符串new的方式创建对象和直接赋值的方式创建对象的区别:
  字符串是常量,会保存到常量池中.
  只有使用双引号直接写出来的字符串才是常量.
扩展:
  JDK6以及之前的版本,常量池在方法区;
  JDK7的时候,常量池在堆内存;
  JDK8的时候,常量池在元空间[方法区];
字符串常量是可以复用的,当我们使用到一个字符串常量时,会先看一下常量池有没有这个常量.
如果有,就直接使用常量池中的;如果没有,就创建一个该字符串常量放到常量池中.

字符串的判断方法

字符串的判断方法:

public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
public boolean contains (CharSequence s) :判断参数字符串在当前字符串中是否存在(区分大小写)。存在,返回true,否则,返回false。
public boolean endsWith(String suffix) :测试此字符串是否以指定的后缀结尾(区分大小写)。
public boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开始(区分大小写)

字符串的获取方法

字符串的获取方法:

public int length () :返回此字符串的长度。
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :返回指定索引处的 char值。
public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
public int lastIndexOf(String str) :返回指定子字符串最后一次出现的字符串中的索引。 如果不包含,则返回-1。
public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。

字符串的转换方法

字符串的转换方法:

public char[] toCharArray () :将此字符串转换为新的字符数组。
public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
public String toLowerCase() :使用默认语言环境的规则将此 String所有字符转换为小写。
public String toUpperCase() :将此 String所有字符转换为大写,使用默认语言环境的规则。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换

字符串的分割方法

字符串的分割方法:

public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
public String trim() :去掉当前字符串的前后空格,并返回一个新字符串,原字符串不变。

StringBuilder

字符串拼接的效率问题以及为什么会有StringBuilder

字符串具有不变性,所以每次使用字符串拼接,都会创建新的字符串,这样既耗时又浪费空间。
于是就有了StringBuilder, StringBuilder我们可以看成可变的字符串, StringBuilder是可以改变的,如果使用StringBuilder拼接是不会额外产生新的内容的,这样性能就高了。

StringBuilder的介绍以及和String的区别

StringBuilder是可变的字符序列, 我们可以把StringBuilder看成可变的字符串。
StringBuilder的本质和String是一样的,都是由一串字符组成的数组, 内部都是在使用字符数组保存数据。
StringBuilder和String的区别:
  StringBuilder: 可变的。
  String: 不可变的。

StringBuilder的构造方法

StringBuilder的构造方法:

StringBuilder(): 空参数的构造方法。使用该构造方法创建的StringBuilder里面没有任何内容。
StringBuilder(String str): 传递一个字符串。根据字符串的内容创建一个StringBuilder对象。

StringBuilder中常见的方法

StringBuilder的常见方法:

StringBuilder append(任何类型): 拼接(追加)任何类型的数据。返回值为调用者对象本身。
StringBuilder reverse(): 对StringBuilder的内容反转。返回值为调用者对象本身。
String toString(): 将StringBuilder转成一个String。

String和StringBuilder的相互转换

StringBuilder -> String
	调用StringBuilder中的toString方法即可
	String toString(): 将StringBuilder转成一个String。
String -> StringBuilder
	使用StringBuilder的带参数的构造方法创建一个StringBuilder对象。
	StringBuilder(String str): 参数要传递一个字符串。 会根据字符串的内容创建一个StringBuilder对象。

Object类

介绍

Object是所有类的父类,所有类都直接或者间接的继承自Object。
如果一个类我们没有使用extends关键字继承其他类,那么这个类会继承Object类。

toString方法

在Object中,有一个方法叫做toString,这个方法可以将对象转成字符串。

	String toString():返回对象的字符串表示形式。

当通过一个对象调用toString方法时,会先看一下自己有没有这个方法,如果自己没有,就会向上找父类,一直到Object。Object中的toString方法,是将对象转成了地址值的字符串。
当我们直接输出一个对象名时,内部会调用这个对象的toString方法,也就是这个对象调用toString方法的结果是什么,那么直接输出对象名输出的结果就是什么。
调用toString方法看到的是对象的地址值一般来说意义不大,我们更多情况想要看到的其实是对象的内容(属性)
如果想要调用toString方法得到对象的属性,那么需要对toString方法进行重写。

equals方法

在Object中,有一个方法叫做equals,可以比较两个对象是否相同。

	boolean equals(Object obj):比较两个对象是否相同。

当通过一个对象调用equals方法时,会先看一下自己有没有这个方法,如果没有,就会向上找父类,一直到Object。
而Object中的equals方法,是在使用==比较对象的地址值。
一般来说,根据地址值比较两个对象是否相同没有什么意义,更多情况我们是希望通过对象的属性比较两个对象是否相同。
如果两个对象的属性完全相同,那么我们可以把它们看成是相同的对象。
如果想要根据对象的属性比较对象是否相同,那么可以重写equals方法。

Date类

介绍

在Java中,有一个类叫做java.util.Date,这个类一般叫做日期类
虽然这个类叫做日期类,但是这个类表示的是特定的时间瞬间,精确到毫秒。

构造方法

构造方法:

Date():使用空参构造方法创建的Date对象表示的是当前操作系统(计算机)的时间
Date(long date): 参数要传递long类型的毫秒值,表示从1970年1月1日 0时0分0秒开始过了多少毫秒。

中国是东八区,时间比标准时间要快8个小时,所以时间是从1970年1月1日 8时0分0秒开始

其他方法

long getTime():获取Date对象对应的毫秒值。
void setTime(long time):参数是毫秒值,表示从1970年1月1日开始过了多少毫秒

DateFormat

介绍

如果我们希望将Date对象转成我们喜欢的格式然后进行输出,可以使用DateFormat进行格式化操作.
格式化操作指的是将Date对象转成指定格式的字符串.
DateFormat是一个抽象类,如果要用,需要使用子类.最常用的子类是SimpleDateFormat.
SimpleDateFormat的构造方法:

public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
        参数pattern是一个字符串,代表日期时间的自定义格式.
        模式就是转换的格式:
        例如最终要转换的格式: 2000年10月24日 14时12分23秒
        自定义格式:          yyyy年MM月dd日 HH时mm分ss秒
        其实就是用英文字母替换掉最终要转换的格式中的数字

SimpleDateFormat的其他方法:

public String format(Date date) :将Date对象格式化为字符串。
public Date parse(String source) :将字符串解析为Date对象

Date转String

Date -> String: 格式化。 使用SimpleDateFormat中的format方法完成。
Date对象转字符串的步骤:

  1. 创建SimpleDateFormat,并在构造方法中指定模式。
  2. 调用SimpleDateFormat的format方法,将Date对象转成字符串。
  3. 输出结果。

String转Date

String -> Date: 解析。 使用SimpleDateFormat中的parse方法完成。
字符串转Date对象的步骤:

  1. 定义字符串表示时间。
  2. 创建SimpleDateFormat对象,指定模式。
  3. 通过SimpleDateFormat对象调用parse方法, 将字符串转成Date对象
  4. 输出结果。
    注意:
  5. 在调用parse方法后,会有一个红线,原因是因为这个方法需要处理异常(过两天讲解)
    解决方式,将光标移动到红线上,然后按alt + 回车,选择第一个
  6. 在创建SimpleDateFormat对象时,如果指定的模式和字符串的格式不一致,那么会报错

Calender

介绍及获取

Calendar叫做日历类
虽然Calendar叫做日历类,但是他和Date类一样,可以表示特定的时间瞬间,精确到毫秒。
Calendar是一个抽象类,如果要用,需要使用子类。
由于时间地区的敏感性,Calendar子类对象不能由我们自己去创建,要通过Calendar的静态方法getInstance获取

static Calendar getInstance():获取一个日历对象(Calendar子类对象)

小结:
我们之间创建对象都是自己new,现在获取日历对象需要调用Calendar的静态方法getInstance获取。

其他方法

int get(int field): 获取指定字段的值。参数filed表示获取哪个字段的值。
void set(int field, int value):给指定日历字段设置值。
void add(int field, int amount):对指定字段的值进行计算。

Math类

Math是Java中的一个数学工具类,里面有很多用于数学运算的方法。
常见方法:

 public static int abs(int a):求绝对值。
 public static double ceil(double a):向上取整。
 public static double floor(double a):向下取整。
 public static long round(double a):四舍五入
 public static double pow(double a, double b):获取a的b次幂

System类

System可以看成系统类,里面定义了大量的静态方法
常见方法:

 static long currentTimeMillis():获取当前系统时间
 static void exit(int status):终止JAVA虚拟机。

BigInteger

一些特别大的数字不能用long进行存储,并且也不能进行计算。于是就有了BigInteger
BigInteger可以表示非常大【无限大】的数字。
构造方法:

BigInteger(String val):根据字符串的内容(内容必须是数字)创建一个BigInteger对象。

其他方法:

BigInteger add(BigInteger val):加法运算
BigInteger subtract(BigInteger val):减法运算
BigInteger multiply(BigInteger val):乘法运算
BigInteger divide(BigInteger val):除法运算

BigDecimal

在Java中,小数是不精确的,如果使用小数进行运算,有可能出现精度问题(比如:1.3加1.6结果是2.9000000000000004)
如果要对小数进行运算并且要保证运算精度,那么可以使用BigDecimal
我们可以将BigDecimal这个类看成小数,它可以表示精确的小数。
BigDecimal构造方法:

BigDecimal(double val):根据一个double小数创建BigDecimal对象。(不推荐,因为会损失精度)
BigDecimal(String val):根据一个字符串创建BigDecimal对象。(推荐)

BigDecimal的常见方法:

BigDecimal add(BigDecimal augend):进行加法运算。
BigDecimal subtract(BigDecimal subtrahend):进行减法运算
BigDecimal multiply(BigDecimal multiplicand): 进行乘法运算
BigDecimal divide(BigDecimal divisor):进行除法运算的方法,如果除不尽,那么会报错。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode):除法运算
	参数divisor:表示要相除的小数
	参数scale:保留几位小数。
	参数roundingMode:表示保留模式。 该参数位置我们可以传递BigDecimal中的静态常量,ROUND_HALF_UP表示四舍五入

Arrays工具类

在Java中,有一个类叫做Arrays,这个类是操作数组的工具类。

        static void sort(数组):对数组中的内容进行排序。
        static String toString(数组):将数组中的内容转成字符串并返回。

包装类

包装类的介绍

基本类型包装类
intInteger
charCharacter
shortShort
byteByte
longLong
floatFloat
doubleDouble
booleanBoolean

基本类型和对应的包装类使用方式基本一致。
基本类型就是一些简单的数据,只能进行运算或直接使用,不能调用方法,功能比较简单。
包装类是引用类型,可以创建对象,包装类不仅仅可以表示数据,也可以调用方法完成一些功能,功能强大。
包装类的功能比对应的基本类型要强大。

自动拆装箱

在JDK5的时候,多了一个新的特性,叫做自动拆装箱。
  拆箱: 包装类类型转成对应的基本类型。
  装箱: 基本类型转成对应的包装类类型。
有了自动拆装箱后,基本类型以及包装类类型可以自动转换。

手动拆装箱

在JDK5之前,如果基本类型和对应的包装类进行转换,需要使用手动拆装箱。
手动装箱(int -> Integer)

static Integer valueOf(int i):接受一个int类型的数据,返回Integer类型的结果。

手动拆箱(Integer -> int)

int intValue():将Integer对象转成int数字并返回

Integer中的其他方法

public Integer(int value):构造方法,根据一个int数字创建Integer对象(已过时)
public Integer(String s):构造方法, 根据一个String创建Integer对象(已过时)
public static Integer valueOf(int i):静态方法, 根据一个int数字获取Integer对象。
public static Integer valueOf(String s):静态方法, 根据一个String获取Integer对象。

字符串和基本类型相互转换

基本类型 -> 字符串
  1. 直接在这个基本类型的数据后面加上"" (推荐)
  2. 使用String的静态方法valueOf实现.

            static String valueOf(int i):将int数字转成字符串,并将字符串返回

字符串 -> 基本类型
我们可以使用基本类型对应包装类的静态方法parseXXX完成。
如果要将字符串转成int类型,那么就是Integer中的静态方法parseInt完成。
如果要将字符串转成double类型,那么就使用Double中的静态方法parseDouble完成。
如果要讲字符串转成long类型,那么就使用Long中的静态方法parseLong完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值