第四章 核心类

将字符串的值转换为基本类型的值有两种方式: 

int num1=new Integer("10");

int num2=Integer.parseInt("123");

基本类型的值转换成字符串有三种方式:

String s1 = "" + 23;

String s2 = Integer.toString(100);

String s3 = String.valueOf(66);

基本类型与其对应封装类之间能够自动进行转换,其本质是Java的自动装箱和拆箱过程。 装箱是指将基本类型数据值转换成对应的封装类对象,即将栈中的数据封装成对象存放到堆中的过程。 拆箱是装箱的反过程,是将封装的对象转换成基本类型数据值,即将堆中的数据值存放到栈中的过程。

核心类

 Object 类  字符串类  Scanner类  Math类  Date类

Object对象类定义在java.lang包中,是所有类的顶级父类,在Java体系中,所有类都直接或间接的继承了Object类。因此,任何Java对象都可以调用Object类中的方法,而且任何类型的对象都可以赋给Object类型的变量。

public String toString()

返回当前对象的字符串表示

public boolean equals(Object obj)

判断指定的对象与传入的对象是否相等

 

当使用System.out.println(obj)输出语句中直接打印对象时,或字符串与对象进行连接操作时,例如:"info" + obj,系统都会自动调用对象的toString()方法。

Object类中的toString()方法返回包含类名和散列码的字符串,具体格式如下:类名@哈希代码值

Java提供了String、StringBuffer和StringBuilder三个类来封装字符串,并提供了一系列方法来操作字符串对象,三者区别如下:

String创建的字符串是不可变的,如果改变字符串变量的值,是在内存中创建一个新的字符串,字符串变量将引用新创建的字符串地址,而原来的字符串在内存中依然存在且内容不变,直至Java的垃圾回收系统对其进行销毁。

StringBuffer创建的字符串是可变的,当使用StringBuffer创建一个字符串后,该字符串的内容可以通过append()、insert()、setCharAt()等方法进行改变,而字符串变量所引用的地址一直不变,最终调用它的toString()方法转换成一个String对象。

StringBuilder与StringBuffer类似也是创建一个可变的字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全,因此性能较好。

 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。

线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。

 String字符串类常用的方法如下:

在Java程序中,经常使用“+”运算符连接字符串,但不同情况下字符串连接的结果也是不同的,如下述代码StringLinkDemo.java所示:

StringBuffer字符缓冲区类是一种线程安全的可变字符序列,常用的方法如下:

StringBuilder字符串生成器类与StringBuffer类似,也是创建可变的字符串序列,只不过没有线程安全控制,常用的方法如下:

Scanner扫描器类在java.util包中,可以获取用户从键盘输入的不同数据,以完成数据的输入操作,同时也可以对输入的数据进行验证,常用的方法如下:

通过运行结果可以看出,默认情况下next()方法只扫描接收空格之前的内容,如果希望空格一起接收,则可以使用useDelimiter()方法设置分隔符后再接收。

Math类包含常用的执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等。Math类提供的方法都是静态的,可以直接调用,无需实例化。常用的方法如下:

 

Math类除了提供大量的静态方法之外,还提供了两个静态常量:PI和E,正如其名字所暗示的,分别表示    和e的值。

Date类用来表示日期和时间,该时间是一个长整型(long),精确到毫秒。常用的方法如下:

 

本章总结

Java是为8个基本类型提供了对应的封装类

Java提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能,基本类型变量和封装类之间可以直接赋值

装箱是指将基本类型数据值转换成对应的封装类对象,即将栈中的数据封装成对象存放到堆中的过程

拆箱是装箱的反过程,是将封装的对象转换成基本类型数据值,即将堆中的数据值存放到栈中的过程

Object是所有类的顶级父类

equals()方法通常可以用于比较两个对象的内容是否相同

String创建的字符串是不可变的

StringBuffer字符缓冲区类是一种线程安全的可变字符序列

StringBuilder字符串生成器类也是创建可变的字符串序列,没有线程安全控制

Scanner扫描器类在java.util包中,可以获取用户从键盘输入的不同数据,以完成数据的输入操作,同时也可以对输入的数据进行验证

Math类包含常用的执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等

猜你喜欢

转载自blog.csdn.net/qq_45598881/article/details/115593447