java常用类的特征_JAVA常用类

1:API

JAVA API文档查看:

4e0ad052a5b8316543217f1eee4766d8.png

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型

例题:

3cba40a4d735582e577fa3e96e511675.png

d40a2441532d86764e705eb538df85cd.png

* 单元测试 : @Test

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

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

c29c77a3e1aec6697fe1503d3d4f346e.png

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

3:String

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

String s1=‘’aaaaa”;

String s1=”bbbb”;

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

和下图类似:

cc4bea2cb2eb792f7c1dfec1cbb29eee.png

* 底层就是一个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) : 以参数中的子串为切割器把字符串分割成多个部分

b6d87abc9b8e95a6e423b050dfe1375f.png

运行:

0e6022777de462f69f7b5b083a2296e1.png

* 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)

c648031a3ea7ff1434526770a7618228.png

运行:

b6618d98c7b2594b42d289f5120c5d6b.png

______________________________________________________________________________________________________________________________________________________________________

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的构造器。

2f462da2755370bfb469fb253a577452.png

运行截图:

0372c21d6a93ed16623172b435ac21f5.png

JDK8中新时间日期API:

使用 LocalDate、LocalTime、LocalDateTime

bdd0a8543b660785f2aa27f3879e8f2c.png

运行实例图

6174eae3bf3f2b6eaf2d0bbd60c97178.png

7:math类

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

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

8:BigInteger类和BigDecimal类

ff643d5d3213b8a0e886188c7c1e0bff.png

0aeca02dc5f6fb1d7c098cfe01bfe4ac.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值