JAVA常用类

1:API

JAVA API文档查看:

image

2:包装类

1:针对八种基本定义相应的引用类型—包装类(封装类)

2:有了类的特点,就可以调用类中的方法

                        基本数据类型                                                            包装类
                            boolean                              Boolean                                          
                             byte                              Byte
                            short                              Short
                             int                              Integer
                             long                              Long
                             char                              Char
                              float                              Float
                            double                              Double

把基本值=>对象 过程称为装箱(boxing)

对象 => 基本值, 过程称为拆箱(unboxing)


基本数据类型包装成包类的实例--装箱:

装箱 :

* Xxx xx = new Xxx(xxx);

* Xxx xx = new Xxx("xxx");

* Xxx xx = Xxx.valueOf(xxx);

* Xxx xx = Xxx.valueOf("xxx");

通过包装类的构造器实现:

Integer t1=new Integer(i);//手工装箱

Integer t2 = 500; //自动装箱

通过字符串参数构造包装类对象:

Float f = new Float(“4.56”);

Long l = new Long(“asdf”); //NumberFormatException

获得包装类对象中包装的基本类型变量 ---拆箱:

调用包装类的.xxxValue()方法

boolean b = Obj.booleanValue();//手动拆箱

boolean n = Obj;//自动拆箱

举例:

int i = 500;

Integer t = new Integer(i);

装箱:包装类使得一个基本数据类型的数据变成了类。

有了类的特点,可以调用类中的方法

String s = t.toString(); // s = “500“,t是类,有toString方法

String s1 = Integer.toString(314); // s1= “314“ 将数字转换成字符串。

String s2=“4.56”;

double ds=Double.parseDouble(s2); //将字符串转换成数字

拆箱:将数字包装类中内容变为基本数据类型

* 拆箱 :

* x x = xx.xxxValue();


int j = t.intValue(); // j = 500,intValue取出包装类中的数据

包装类在实际开发中用的最多的在于字符串变为基本数据类型。

String str1 = "30" ;

String str2 = "30.3" ;

int x = Integer.parseInt(str1) ; // 将字符串变为int型

float f = Float.parseFloat(str2) ; // 将字符串变为float型

例题:

image

image

* 单元测试 : @Test

* 测试类必须是公共的, 不可以有任何构造器

* 测试方法公共的,非静态, 无返回值, 无参.

image


————————————————————————————————————————————————————————————————


3:String

String 字符串,:内容不可改变的Unicode字符序列。

String s1=‘’aaaaa”;

String s1=”bbbb”;

s1指向的值aaaa并没有变而是或者说被覆盖掉而是,s1引用没有指向aaaa,而是指向了新创建的bbbb

和下图类似:

image

* 底层就是一个char[]. 有下标和索引的概念.

*

* 字符串字面量"abc", "134", 称为字符串常量

* 字符串常量在内存中有一块专门的空间, 用于保存常量, 称为常量区(是永久区的一部分).

*

* 字符串变量在拼接时会在GC区中创建新对象.

* 字符串常量在拼接时不会在GC区中创建, 而是常量区创建.

*

* 只要是new, 和变量参与的拼接都在GC区.

* 字面量, 和常量的拼接都在常量区.

**************************************************************************************************************************************************

   String string=”afdf51464556ghj”

* public int length() : 获取字符串长度(字符个数)

* string.length() –>15

* public char charAt(int index) : 获取参数index指定下标处的字符

* string.charAt(1) –>f

* public char[] toCharArray() : 获取字符串内部的char[]的复制品.

* char result[] = new char[value.length];

* // 第1个参数是源数组, 第2个参数是源数组开始复制的下标

* // 第3个参数是目标数组, 第4个参数是目标数组开始被复制的下标

* // 第5个参数是要复制的元素个数

* System.arraycopy(value, 0, result, 0, value.length);

*

* public boolean equals(Object anObject) 比较字符串内容是否相等, 大小写敏感
* public int compareTo(String anotherString) 比较字符串大小, 比较的是字符对应的unicode码值
* public int indexOf(String s) : 定位参数中的子串在当前字符串中首次出现的下标

string.indexOf(“d”)—>2

* public int indexOf(String s ,int startpoint) : 定位参数中的子串在当前字符串中首次出现的下标, 指定开始位置

string.indexOf("5", 0)—>4 从0位置开始查找

* public boolean startsWith(String prefix) : 判断当前字符串是否以参数中的子串为开始, 用于筛选一些数据
public String substring(int start,int end) : 从当前串中取子串, 从start开始(包含), 到end结束(不包含)

string.substring(1,3)—>fd;

public String replace(char oldChar,char newChar) : 把当前字符串中的所有oldChar字符替换为newChar
public String[] split(String regex) : 以参数中的子串为切割器把字符串分割成多个部分

image

运行:

image

* public boolean equalsIgnoreCase(String s) : 比较字符串内容是否相等, 忽略大小写

______________________________________________________________________________________________________________________________________________________________

************************************************************************************************************************************************************

4:StringBuffer类

StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且方法也一样.

StringBuffer:可变字符序列、效率低、线程安全

StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全


________________________________________________________________________________________________________________________

5:StringBuilder 类

StringBuilder :

内容可以改变的Unicode字符序列. 可以把它当成是一个char容器.

1:StringBuilder append(...)

//把任意数据追加到当前字符串的末尾,

2:StringBuilder insert(int index, ...);

//把任意数据插入到指定的index下标处.

3:StringBuilder delete(int startIndex, int endIndex)

//删除指定的区间.

4:void setCharAt(int n ,char ch)

image

运行:

image

[此外诸多方法可查询API文档](https://pan.baidu.com/s/1wxsTyDrmGp0KzvOfNW23tw )密码【api0】

______________________________________________________________________________________________________________________________________________________________________

6:System类,SimpleDateFormat类,Calendar

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

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

1:UTC(Universal Time Coordinated)

2:GMT(Greenwich Mean Time)

3:CST(Central Standard Time)

7:Data类

1: java.util.Date类

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

构造方法:

Date( )使用Date类的无参数构造方法创建的对象可以获取本地当前时间

Date(long date)

常用方法

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是时间标准

Data类:

创建对象不方便, 2) 显示的时候也不方便

改进版的Calendar好用一些.

缺点 : 内部使用数组, 没有体现面向对象.

所有的属性的获取和设置都必须依赖下标.月份数据有出入

最大的问题是 内部数据可以变化, 从而导致不安全. 原始数据无法找回.

任何的修改都会产生新的对象

日期类:

java.util.Calendar(日历)类

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

获取Calendar实例的方法

使用Calendar.getInstance()方法

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

image

运行截图:

image

JDK8中新时间日期API:

使用 LocalDate、LocalTime、LocalDateTime

image

运行实例图

image



7:math类

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

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

8:BigInteger类和BigDecimal类

image

image

************************************************************************************************************************************************

—————————————————————————————————————————————————————————————

posted @ 2020-11-13 20:37  叮叮不当!  阅读(112)  评论(0)    收藏  举报