JavaSE-常用API

本文详细介绍了JavaSE中的常用API,包括基本类型包装类、String类及其各种操作、日期和时间API、System类的使用、Math类功能、BigInteger和BigDecimal的处理,以及字符串类、StringBuilder和Calendar类的深入讲解。
摘要由CSDN通过智能技术生成

JavaSE-常用API

  1. 成员内部类概念及使用
  2. 局部内部类概念及使用
  3. 匿名内部类概念及使用

、本章任务

  1. 完成字符串类相关内容
  2. 完成日期和时间API
  3. 完成System类
  4. 完成Math类
  5. 完成BigInteger和BigDecimal

三、本章目标

  1. 掌握字符串相关类使用
  2. 掌握日期和时间API使用
  3. 掌握System类使用
  4. 掌握Math类使用
  5. 掌握BigInteger和BigDecimal使用
  • 知识点

1、基本类型包装类

【问】想要对基本类型数据进行更多的操作,怎么办? 
【答】最方便的方式就是将其封装成对象。因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。我们不需要自己去对基本类型进行封装,JDK已经为我们封装好了。

【概念】 
1. 装箱就是自动将基本数据类型转换为包装器类型 
2. 拆箱就是自动将包装器类型转换为基本数据类型

基本类型

封装类型

byte

Byte

char

Character

short

Short

int

Integer

long

Long

float

Float

double

Double

boolean

Boolean

1.1以Integer为例

类目

表示

描述

构造方法

public Integer(int value)
public Integer(String s)

常用属性

static int MAX_VALUE 
static int MIN_VALUE

返回int类型的最大值
返回int类型的最小值

常用方法
(基本类型之间转换)

byte byteValue()
int intValue()
… …

Integer类型转byte类型
Integer类型转int类型
… …

常用方法
(基本类型、字符串转换)

static int parseInt(String s)
static Integer valueOf(String s)

字符串类型转int类型
字符串类型转Integer类型

【示例】

public class TestInteger {

    public static void main(String[] args) {

        // 属性值

        System.out.println("Integer类型最大值:" + Integer.MAX_VALUE);

        System.out.println("Integer类型最小值:" + Integer.MIN_VALUE);

        // 构造方法

        Integer int1 = new Integer(123);

        Integer int2 = new Integer("123");

        System.out.println("构造方法传int参数:" + int1);

        System.out.println("构造方法传String参数:" + int2);

        // 类型转换

        // 基本类型之间转换

        System.out.println("Integer转byte类型:" + int1.byteValue());

        System.out.println("Integer转int类型:" + int1.intValue());

        // 基本类型与字符串之间转换

        System.out.println("字符串123转成int:" + Integer.parseInt("123"));

        System.out.println("字符串123转成Integer:" + Integer.valueOf("123"));

        // System.out.println("字符串abc可以转成Integer类型吗?" + Integer.valueOf("abc"));

    }

}

2、字符串类相关

2.1 String类
String特性:

String类:代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作 为此类的实例实现。

String是一个final类,代表不可变的字符序列。

字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。

String对象的字符内容是存储在一个字符数组value[]中的。

public final class String  implements java.io.Serializable, Comparable<String>, CharSequence {

/** The value is used for character storage. */

private final char value[];

/** Cache the hash code for the string */

private int hash; // Default to 0

字符串内存模型:

String对象创建:

String 常用方法:

  1. int length():返回字符串的长度: return value.length
  2. char charAt(int index): 返回某索引处的字符return value[index]
  3. boolean isEmpty():判断是否是空字符串:return value.length == 0
  4. String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写
  5. String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写
  6. String trim():返回字符串的副本,忽略前导空白和尾部空白
  7. boolean equals(Object obj):比较字符串的内容是否相同
  8. boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大

小写

  1. String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+”
  2. int compareTo(String anotherString):比较两个字符串的大小
  3. String       substring(int beginIndex): 返回一个新的字符串, 它是此字符串的从

beginIndex开始截取到最后的一个子字符串。

  1. String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字 符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
  2. boolean endsWith(String suffix):测试此字符串是否以指定的后缀结束
  3. boolean startsWith(String prefix):测试此字符串是否以指定的前缀开始
  4. boolean startsWith(String prefix, int toffset):测试此字符串从指定索引开始的
  5. 子字符串是否以指定前缀开始
  6. boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列 时,返回 true
  7. int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引
  8. int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中第一次出 现处的索引,从指定的索引开始
  9. int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引
  10. int lastIndexOf(String str, int fromIndex):返回指定子字符串在此字符串中最后 一次出现处的索引,从指定的索引开始反向搜索
  11. 注:indexOf和lastIndexOf方法如果未找到都是返回-1
  12. String replace(char oldChar, char newChar):返回一个新的字符串,它是
  13. 通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
  14. String replace(CharSequence target, CharSequence replacement): 使 用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
  15. String       replaceAll(String  regex,     String     replacement) : 使 用 给 定 的
  16. replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
  17. String       replaceFirst(String      regex,     String     replacement) : 使用给定的
  18. replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
  19. boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。
  20. String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。
  21. String[] split(String regex, int limit):根据匹配给定的正则表达式来拆分此 字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中

String与字符数组转换
  1. 字符数组 è 字符串
    • String 类的构造器:String(char[]) 和 String(char[],int offset,int  length) 分别用字符数组中的全部字符和部分字符创建字符串对象。
  2. 字符串 è 字符数组
    • public char[] toCharArray():将字符串中的全部字符存放在一个字符数组

中的方法。

    • public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)提供了将指定索引范围内的字符串存放到数组中的方法

  1. 字节数组è字符串
    • String(byte[]):通过使用平台的默认字符集解码指定的 byte 数组,构 造一个新的 String。
    • String(byte[],int offset,int length) :用指定的字节数组的一部分,  即从数组起始位置offset开始取length个字节构造一个字符串对象。
  2. 字符串 è 字节数组
    • public byte[] getBytes() :使用平台的默认字符集将此 String 编码为

byte 序列,并将结果存储到一个新的 byte 数组中。

  • public byte[] getBytes(String charsetName) :使用指定的字符集将 此 String 编码到 byte 序列,并将结果存储到新的 byte 数组
2.2 StringBuffer类

java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符 串内容进行增删,此时不会产生新的对象。

很多方法与String相同。

作为参数传递时,方法内部可以改变值。

常用方法:

StringBuffer append(xxx):提供了很多的append()方法,用于进行字符串拼接

StringBuffer delete(int start,int end):删除指定位置的内容

StringBuffer replace(int start, int end, String str):把[start,end)位置替换为str

StringBuffer insert(int offset, xxx):在指定位置插入xxx  StringBuffer reverse() :把当前字符序列逆转

public int indexOf(String str)

public String substring(int start,int end)

public int length()

public char charAt(int n )

public void setCharAt(int n ,char ch)

2.3 StringBuilder类

StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器:

StringBuffer():初始容量为16的字符串缓冲区

StringBuffer(int size):构造指定容量的字符串缓冲区

StringBuffer(String str):将内容初始化为指定字符串内容

StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且 提供相关功能的方法也一样

面试题:对比String、StringBuffer、StringBuilder

String(JDK1.0):不可变字符序列

StringBuffer(JDK1.0):可变字符序列、效率低、线程安全

StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全

注意:作为参数传递的话,方法内部String不会改变其值,StringBuffer和StringBuilder  会改变其值。

3、System类相关

3.1、java.lang.System类

System类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。

此方法适于计算时间差。

  1. System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包。
  2. 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。
  3. 成员变量
    • System类内部包含in、out和err三个成员变量,分别代表标准输入流

(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。

  1. 成员方法
    • native long currentTimeMillis():

该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时

间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。

    • void exit(int status):

该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表

异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

3.2、计算世界时间的主要标准有:

UTC(Coordinated Universal Time)

GMT(Greenwich Mean Time)

CST(Central Standard Time)

4、时间类Date

4.1 java.util.Date类

表示特定的瞬间,精确到毫秒

4.2构造器:

Date():使用无参构造器创建的对象可以获取本地当前时间。

Date(long date)

4.3常用方法

getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象

表示的毫秒数。

toString():把此 Date 对象转换为以下形式的 String: dow mon dd  hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue,  Wed, Thu, Fri, Sat),zzz是时间标准。

其它很多方法都过时了。

5、SimpleDateFormat

5.1java.text.SimpleDateFormat类

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat

类是一个不与语言环境有关的方式来格式化和解析日期的具体类。

它允许进行格式化:日期à文本、解析:文本à日期

5.2格式化:

SimpleDateFormat() :默认的模式和语言环境创建对象

public SimpleDateFormat(String pattern):该构造方法可以用参数pattern

指定的格式创建一个对象,该对象调用:

public String format(Date date):方法格式化时间对象date

5.3解析:

public Date parse(String source):从给定字符串的开始解析文本,以生成

一个日期。

6、Calendar类

6.1 java.util.Calendar(日历)类

1、Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。

2、获取Calendar实例的方法

使用Calendar.getInstance()方法

调用它的子类GregorianCalendar的构造器。

3、一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想 要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、 MINUTE、SECOND

public void set(int field,int value)

public void add(int field,int amount)

public final Date getTime()

public final void setTime(Date date)

4、注意:

获取月份时:一月是0,二月是1,以此类推,12月是11

获取星期时:周日是1,周二是2 , 。。。。周六是7

7、Math类

java.lang.Math提供了一系列静态方法用于科学计算。其方法的参数和返回

值类型一般为double型。

abs     绝对值 acos,asin,atan,cos,sin,tan       三角函数  sqrt            平方根

pow(double a,doble b)     a的b次幂  log   自然对数

exp     e为底指数

max(double a,double b)

min(double a,double b)

random()    返回0.0到1.0的随机数

long round(double a)       double型数据a转换为long型(四舍五入)

toDegrees(double angrad) 弧度—>角度

toRadians(double angdeg) 角度—>弧度

8、BigInteger和BigDecimal类

8.1 BigInteger

1、Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。

2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供

所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。

3、构造器

BigInteger(String val):根据字符串构建BigInteger对象

4、常用方法

public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。

BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger

BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger

BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger

BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。

BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。

BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。

BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

8.2 BigDecimal
  1. 一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类。
  2. BigDecimal类支持不可变的、任意精度的有符号十进制定点数。
  3. 构造器
    • public BigDecimal(double val)
    • public BigDecimal(String val)
  4. 常用方法
    • public BigDecimal add(BigDecimal augend)
    • public BigDecimal subtract(BigDecimal subtrahend)
    • public BigDecimal multiply(BigDecimal multiplicand)
    • public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

五、总结

见:JavaSE-常用API总结.xmind

六、作业

1、String str1 = “abc”;String str2 = new String(“abc”);的区别?

2、字符串对象是如何存储的

String s1 = "javaEE";

String s2 = "javaEE";

String s3 = new String("javaEE");

String s4 = new String("javaEE");

System.out.println(s1 == s2);//true 

System.out.println(s1 == s3);//false 

System.out.println(s1 == s4);//false 

System.out.println(s3 == s4);//false

3、判断:

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值