ja.lang

注:文章内容全部摘自实验楼教程:【JDK核心API】(教程链接:https://www . shiyanlou . com/courses/109)。

本文带你了解ja.lang包中的包装器类,以及字符串类、数学类、类类、对象类的相关知识。

java.lang

Ja API 简介

Ja的核心API非常庞大,给开发者带来了极大的便利。所谓API,就是一些已经写好的,可以直接调用的类库。Ja里有庞大的API,有些是我们必须掌握的类库。只有掌握了Ja的一些核心API,才能更好的使用Ja。

Ja类库

在程序中,ja.lang包不需要像其他包一样引入import关键字。系统会自动加载,所以我们可以直接访问所有的类。下面我们来详细了解一下ja.lang包。

ja.lang 包装类

我们都知道ja是面向对象的语言,类封装了方法和属性,这样就可以创建和处理具有相同方法和属性的对象。但是ja中的基本数据类型不是面向对象的,不能定义基本类型的对象。如果我们想用处理对象和调用一些方法的方式来处理基本类型的数据呢?

事实上,ja为每种基本类型都提供了包装类:

原始数据类型包装类byte(字节)Bytechar(字符)Characterint(整型)Integerlong (长整型)Longfloat(浮点型)Floatdouble (双精度)Doubleboolean (布尔)Booleanshort(短整型)Short

八个类名中,除了整数类和字符类,其他六个类的类名与基本数据类型一致,只有类名的首字母大写。

1个整数类

ja.lang包中的Integer类、Long类和Short类都是Number的子类,它们的区别在于不同的子类封装了不同的数据类型,比如Integer类封装了一个基本类型int。涉及的方法基本相同。

我们以Integer类为例。有两种整数构造方法:

Integer(int value),它将一个int变量作为参数来创建一个Integer对象。比如整数a =新整数(10);

Integer(String s s),用字符串变量作为参数创建Integer对象,例如Integer a = new Integer(“10 “)。

下面是整型的一些常用方法。

方法返回值功能描述byteValue()byte以 byte 类型返回该 Integer 的值CompareTo(Integer anotherInteger)int在数字上比较 Integer 对象。如果这两个值相等,则返回0;如果调用对象的数值小于 anotherInteger 的数值,则返回负值;如果调用对象的数值大于 anotherInteger 的数值,则返回正值equals(Object IntegerObj)boolean比较此对象与指定对象是否相等intValue()int以 int 型返回此 Integer 对象shortValue()short以 short 型返回此 Integer 对象longValue()long以 long 型返回此 Integer 对象floatValue()float以 float 型返回此 Integer 对象doubleValue()double以 double 型返回此 Integer 对象toString()String返回一个表示该 Integer 值的 String 对象valueOf(String str)Integer返回保存指定的 String 值的 Integer 对象parseInt(String str)int将字符串参数作为有符号的十进制整数进行解析

让我们写一些代码来验证上面的方法。

输出结果:

我们自己试试吧。

二级字符

Character类将基本类型char的值包装在对象中。Character类型的对象包含一个char类型的字段。

字符打包类的常用方法:

方法返回值说明isDigit(char ch)boolean确定字符是否为数字isLetter(char ch)boolean确定字符是否为字母isLowerCase(char ch)boolean确定字符是否为小写字母isUpperCase(char ch)boolean确定字符是否为大写字母isWhitespace(char ch)boolean确定字符是否为空白字符isUnicodeIdentifierStart(char ch)boolean确定是否允许将指定字符作为 Unicode 标识符中的首字符

可以参考代码,验证上面的方法(学生必须亲自打字,学习代码最好的方法就是练习)

输出结果:

3布尔类

boolean类将基本类型Boolean的值包装在对象中。布尔类型的对象只包含一个布尔类型的字段。

还有两种构造布尔类的方法:

boolean(布尔值),创建一个表示value参数的Boolean对象,如Boolean b = new Boolean(true)。

Boolean(String s s),如果忽略大小写时字符串参数不为null且等于“true”,则创建一个表示真值的布尔对象,如Boolean b = new Boolean(“ok”),为true。

布尔包装类的常用方法:

方法返回值说明booleanValue()boolean将 Boolean 对象的值以对应的 boolean 值返回equals(Object obj)boolean判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,而且与调用该方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 trueparseBoolean(Strint s)boolean将字符串参数解析为 boolean 值toString()String返回表示该 boolean 值的 String 对象valueOf(String s)Boolean返回一个用指定得字符串表示值的 boolean 值

让我们写一些代码来验证上面的方法。

输出结果:

其他都差不多。可以自己验证和参考Ja类库的手册。

ja.lang 类 String

我们经常使用String类来定义一个字符串。字符串是常量,它们的值在创建后不能更改。Stringbuffer支持可变字符串。

字符串对象有两种初始化格式:

String s0 = ” abcString s1 =新字符串(” Abd “);String类有丰富的方法,比如计算字符串长度、连接字符串、比较字符串、提取字符串等等。

1计算字符串长度

Length()方法

//方法原型public int length(){}调用方法:字符串标识符。长度();

返回int类型的整数(字符串中的字符数,中文字符也是字符)。例如:

变量len1的值是3,变量len2的值是6。

2字符串比较

Equals()方法,用于判断两个string对象的内容是否相同。如果相同,则返回true,否则返回false。

equals()方法的比较从第一个字符开始,一次比较一个字符。

相等比较原则

那如果我想忽略大小写关系怎么办,比如ja和Ja是一样的?我们可以调用equalsIgnoreCase()方法,该方法与equals相同,但它忽略了大小写。

例如:

输出结果:

Equals()和equalsIgnoreCase()

与“= =”的比较是两个对象的内存中存储的地址是否相同。例如:

变量b的值为false,因为s1对象对应的地址是“abc”的地址,s2使用new关键字申请新的内存,所以内存地址与s1中“abc”的地址不同,所以得到的值为false。

3字符串连接

字符串串联有两种方法:

用+,比如字符串s = “Hello “+”World!”

使用String类的concat()方法。

代码示例:

而使用+连接,不仅可以连接字符串,还可以连接其他类型。但是,要求连接中涉及的内容至少有一个是字符串类型的。

4 charAt()方法

CharAt()方法用于根据索引值获取字符串中的指定字符(字符串中第一个字符的索引值为0,第二个字符的索引值为1,以此类推)。例如:

String s = ” abcchar c = s . charat(1);变量c的值是‘b’。

常用的5种字符串提取方法

方法返回值功能描述indexOf(int ch)int搜索字符 ch 第一次出现的索引indexOf(String value)int搜索字符串 value 第一次出现的索引lastIndexOf(int ch)int搜索字符ch最后一次出现的索引lastIndexOf(String value)int搜索字符串 value 最后一次出现的索引substring(int index)String提取从位置索引开始到结束的字符串substring(int beginindex, int endindex)String提取beginindex和endindex之间的字符串部分trim()String返回一个前后不含任何空格的调用字符串的副本

描述:在字符串中,第一个字符的索引为0,子字符串包含beginindex的字符,但不包含endindex的字符。

让我们写一些代码来验证上面的方法。

输出结果:

6 StringBuffer

同学们,String类的字符串一旦创建就不能更改了。有些同学不太明白。让我们看一下代码。

字符串不变性的机制显然会在字符串常量上有很多冗余。例如,如果我创建一个循环来依次连接字符‘1’到‘n’,那么系统将不得不创建n+(n-1)个字符串对象。有没有可变字符串类?

StringBuffer类是可变的(mutable)它是String的等价类,可以添加和写入可变的字符序列,可以将字符插入到字符串的中间或附加到字符串的末尾(当然,不需要创建其他对象,所以我建议你看一下String类和StringBuffer类的区别,了解它们在内存中的存储)。

一、StringBuffer的构造方法:

构造方法说明StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符StringBuffer(CharSequence seq)构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区StringBuffer(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容

StringBuffer类的常用方法:

方法返回值功能描述insert(int offsetm,Object s)StringBuffer在 offetm 的位置插入字符串sappend(Object s)StringBuffer在字符串末尾追加字符串slength()int确定 StringBuffer 对象的长度setCharAt(int pos,char ch)void使用 ch 指定的新值设置 pos 指定的位置上的字符toString()String转换为字符串形式reverse()StringBuffer反转字符串delete(int start, int end)StringBuffer删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列replace(int start, int end, String s)StringBuffer使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束

让我们选择上面的几种方法来编写代码:

输出结果是:我爱ja。

其他方法,请一定要自己验证!

这里只介绍String类的常用方法,其他方法可以参考JDK文档。

ja.lang 类 Math

在编程的过程中,我们经常会对一些数字进行数学运算,比如我们想求绝对值或者余弦。这些方法需要我们自己去实现吗?事实上,ja.lang中的Math类包含了执行基本数学运算的方法,例如初始指数、对数、平方根和三角函数。我们来学学吧!

先了解一些方法:

方法返回值功能描述sin(double numvalue)double计算角 numvalue 的正弦值cos(double numvalue)double计算角 numvalue 的余弦值acos(double numvalue)double计算 numvalue 的反余弦asin(double numvalue)double计算 numvalue 的反正弦atan(double numvalue)double计算 numvalue 的反正切pow(double a, double b)double计算 a 的 b 次方sqrt(double numvalue)double计算给定值的正平方根abs(int numvalue)int计算 int 类型值 numvalue 的绝对值,也接收 long、float 和 double 类型的参数ceil(double numvalue)double返回大于等于 numvalue 的最小整数值floor(double numvalue)double返回小于等于 numvalue 的最大整数值max(int a, int b)int返回 int 型 a 和 b 中的较大值,也接收 long、float 和 double 类型的参数min(int a, int b)int返回 a 和 b 中的较小值,也可接受 long、float 和 double 类型的参数rint(double numvalue)double返回最接近 numvalue 的整数值round(T arg)arg 为 double 时返回 long,为 float 时返回 int返回最接近arg的整数值random()double返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

以上是一些常用的方法。如果学生将使用极坐标,对数等。今后,请查阅手册。

让我们来看看一些方法的示例代码:

输入结果:

5 ja.lang 类 Class

Class类的实例表示正在运行的Ja应用程序中的类或接口。在Ja中,每个类都有一个对应的类对象,也就是每个类。在生成的。类文件中,将生成一个类对象来表示该类的类型信息。有三种方法可以获得类实例:

使用对象调用getClass()方法来获取对象的类实例。

使用类的静态方法forname (string Classname)获取具有该类名的类实例。

使用。类来获取类实例。对于基本数据类型的封装类,还可以使用。类型来获取相应基本数据类型的类实例。

类别类对象

类别类别对象访问

类别类别对象访问结果

Class class没有通用的构造函数,由JVM自动调用。上课的方法这里就不细说了,有兴趣的同学可以自己查一下。

ja.lang 类 Object

Object类是所有类的父类,所有对象(包括数组)都实现这个类的方法。所以默认情况下,我们定义的类是从Object类扩展而来的,所以我们当然可以调用并重写Object类中的所有方法。

让我们来看看Object类中定义的方法。

方法返回值功能描述equals(Objectobj)boolean将当前对象实例与给定的对象进行比较,检查它们是否相等finalize() throws Throwablevoid当垃圾回收器确定不存在对象的更多引用时,由对象的垃圾回收器调用此方法。通常被子类重写getClass()Class返回当前对象的 Class 对象toString()String返回此对象的字符串表示wait() throws InterruptedExceptionvoid在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,使当前线程进入等待状态

这个我就不细说了。学生可以自行验证以上几个方面。有兴趣的话还可以多了解一下里面的其他方法。

如果学生觉得Eclipse上的字体大小不合适,蒋木木会教他们在代码编辑框中定制文本样式和大小。

1.单击菜单栏下的窗口选择首选项。

2.下拉常规下的外观,并选择颜色和字体。

3.在不同的应用场景中,代码或系统日志有不同的字体样式和大小。我们可以选择ja来编辑字体样式。

4.选择好字体的应用场景后,选择右边的编辑,编辑字体和大小。

最后:

本文所有内容摘自实验楼教程第一节:【JDK核心API】(教程链接:https://www . shiyanlou . com/courses/109),共7节,主要学习包括ja.lang包、ja.util包、ja.io包、泛型等相关知识。其余6个部分的列表如下:

Ja.util包

Ja集合框架

Ja.io包-字节流

Ja.io包-字符流

文件操作/随机存取文件

无商标消费品

如果你想学习更多的Ja实战项目教程,可以在实验楼找到你想要的Ja实战教程;

也可以去实验楼查【Ja学习路径】,系统学习Ja;

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论