Java.lang 包 (包装类、String类、Math类、Class类、Object类)

- Java 的核心 API(Application Programming Interface)是非常庞大的,这给开发者带来了很大的方便。
- java.lang 包是 Java 的核心类库,它包含了运行 Java 程序必不可少的系统类,系统会自动加载,并不需要 import 关键字引入。
包装类
Java 中的基本数据类型不是面向对象的,不能定义基本类型的对象。但是 Java 为每个基本类型提供了包装类,可以让我们像处理对象一样调用一些方法。
| 原始数据类型 | 包装类 |
|---|---|
| byte(字节) | Byte |
| char(字符) | Character |
| int(整型) | Integer |
| long (长整型) | Long |
| float(浮点型) | Float |
| double (双精度) | Double |
| boolean (布尔) | Boolean |
| short(短整型) | Short |
Integer 类
上表中的六种数字类型类都是 Number 类的子类,区别在于封装着不同的数据类型,但是其包含的方法基本相同。以 Integer 类为例。
Integer 类的构造方法有两种:
Integer(int value),例如:
Integer a = new Integer(10);。Integer(String s),例如:
Integer a = new Integer("10");。Integer 类的常用方法:
| 方法 | 返回值 | 功能描述 |
|------|:--------:|------|
| byteValue() | byte | 以 byte 类型返回该 Integer 的值 |
| CompareTo(Integer other) | int | 返回0:相等;负值:other 大;正值:other 小|
| equals(Object other) | boolean | 比较对象与指定对象是否相等 |
| toString() | Stirng | 返回一个表示该 Integer 值的 String 对象 |
| valueOf(String str) | Integer | 返回保存指定的 String 值的 Ingeter 对象|
| parseInt(String s) | int | 将字符串参数解析为 int 值 |
>
> 注:Long.toString(long i, int p),返回整数i的p进制表示字符串。
Character 类
Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
Character 包装类的常用方法:
| 方法 | 返回值 | 说明 |
|------|--------|------|
| isDigit(char ch) | boolean | 确定字符是否为数字 |
| isLetter(char ch) | boolean | 确定字符是否为字母 |
| isLowerCase(char ch) | boolean | 确定字符是否为小写字母 |
| isUpperCase(char ch) | boolean | 确定字符是否为大写字母 |
| isWhitespace(char ch) | boolean | 确定字符是否为空白字符 |
Boolean 类
Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类型的对象只包含一个类型为 boolean 的字段。
Boolean 类的构造方法也有两个:
Boolean(boolean value),例如:
Boolean b = new Boolean(true);。Boolean(String s),如果 String 参数不为 null 且在忽略大小写时等于 "true",创建一个表示 true 值的 Boolean 对象。例如:
Boolean b = new Boolean("ok");,为 false。Boolean 包装类的常用方法:
| 方法 | 返回值 | 说明 |
|------|:--------:|------|
| booleanValue() | boolean | 将 Boolean 对象的值以对应的 boolean 值返回 |
| equals(Object obj) | boolean | 判断调用该方法的对象与 obj 是否相等 |
| parseBoolean(String s) | boolean | 将字符串参数解析为 boolean 值 |
| toString() | String | 返回表示该 boolean 值的 String 对象 |
| valueOf(String s) | Boolean | 返回一个用指定的字符串表示值的 boolean 值 |
更多参见:JDK 1.6 在线中文手册。
String 类
我们经常使用 String 类来定义一个字符串。字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
- String 对象的常用初始化格式有如下两种:
```java
String s0 = "abc";
String s1 = new String("abd");
```
- String 类具有丰富的方法:
- length(),返回值为 int 类型,中文字符也是一个字符。
- equals(String s),返回值为 boolean 类型,区分大小写,比较引用指向的对象是否相同。equalsIgnoreCase()方法则忽视大小写。关系运算符“==” 比较的是引用是否相同,即引用指向的内存地址。
- startsWith(String s),返回值为 boolean 类型,判断前缀是否为s。类似的还有endsWith(String s)。
- String.valueOf(),返回值为 String 类型,支持六种整型数值转化为字符串。
- concat(),字符串连接,如
String s2 = s0.concat(s1);。还可以使用“+”,如Srting s = "Hello" + "World!";。使用“+”还可以连接其他类型,不过连接的内容至少有一个得是字符串类型。- charAt(),返回指定索引的字符,索引值从0开始。
- 常用提取方法:
| 方法 | 返回值 | 功能描述 |
|------|:--------:|----------|
| 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 | 返回前后不含任何空格的调用字符串的副本 |
StringBuffer
StringBuffer 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾,而且不会创建新的对象。String 类定义的字符串则是一个常量,对字符串的操作往往需要创建新的对象,再把引用指向新的对象。StringBuffer 的构造方法:
| 构造方法 | 说明 |
|----------|------|
| StringBuffer() | 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符 |
| StringBuffer(CharSequence seq) | 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符 |
| StringBuffer(int capacity) | 构造一个不带字符,但具有指定初始容量的字符串缓冲区 |
| StringBuffer(String str) | 构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容 |
>
>- StringBuffer类的常用方法:
>
| 方法 | 返回值 | 功能描述 |
|------|:-------:|----------|
| insert(int offsetm, Object s) | StringBuffer | 在 offsetm 的位置插入字符串s |
| append(Object s) | StringBuffer | 在字符串末尾追加字符串s |
| length() | int | 确定 StringBuffer 对象的长度 |
| setCharAt(int pos, char ch) | void | 使用 ch 设置 pos 上的字符 |
| toString() | String | 转换为字符串形式 |
| reverse() | StringBuffer | 反转字符串 |
| delete(int start, int end) | StringBuffer | 删除strat至end-1 |
| replace(int start, int end, String s) | StringBuffer | 替换 |
注:Java 5 中提出了StringBuilder,和StringBuffer一样支持可变字符串,而且具有速度上的优势,但是前者的方法不是线性安全的(不能同步访问)。所以多数情况下建议使用StringBuild类,然而在应用程序要求线性安全的情况下,则必须使用StringBuffer类。
更多参见:JDK 1.6 在线中文手册。
Math 类
Math 类包含用于执行基本数学运算的方法,下面列出一些常用的方法:
| 方法 | 返回值 | 功能描述 |
|---|---|---|
| pow(double a, double b) | double | 计算 a 的 b 次方 |
| sqrt(double numvalue) | double | 计算给定值的正平方根 |
| abs(int numvalue) | int | 绝对值,也接收 long、float、double |
| ceil(double numvalue) | double | numvalue 取上整 |
| floor(double numvalue) | double | numvalue 取下整 |
| max(int a, int b) | int | 也接收 long、float 和 double 类型的参数 |
| min(int a, int b) | int | 可接受 long、float 和 double 类型的参数 |
| rint(double numvalue) | double | 返回最接近 numvalue 的整数值 |
| round(T arg) | double 返回 long,float 返回 int | 返回最接近整数值 |
| random() | double | 返回值带正号,该值大于等于 0.0 且小于 1.0 |
更多参见:JDK 1.6 在线中文手册。
Class 类
Class 类的实例表示正在运行的 Java 应用程序中的类或接口。在 Java 中,每个 Class 都有一个相应的 Class 对象,即每一个类,在生成的.class文件中,就会产生一个 Class 对象,用于表示这个类的类型信息。当一个类被加载且创建对象时,和该类相关的一个类型为Class的对象就会自动创建。虚拟机利用运行时信息选择相应的方法执行。最常用的Class方法时getName,这个方法将返回类的名字。还有一个很有用的方法newInstance(),可以用来快速地创建一个类的实例。例如,
e.getClass().newInstance();,创建了一个与e具有相同类类型的实例。需要注意的是,这个方法调用无参的构造器,如果没有,则会抛出异常。我们获取 Class 实例有三种方法:
- 利用对象调用 getClass()方法获取该对象的 Class 实例。
- 使用 Class 类的静态方法 forName(String className),用类的名字获取一个 Class 实例。
- 运用.class的方式来获取 Class 实例,对于基本数据类型的封装类,还可以采用.TYPE来获取相对应的基本数据类型的 Class 实例。
更多参见:JDK 1.6 在线中文手册。
Object 类
Object 类是所有类的父类,所有对象(包括数组)都实现这个类的方法。所以在默认的情况下,我们定义的类扩展自 Object 类,那我们当然可以调用和重写 Object 类里的所有方法了。Object 类中的方法大致有:
| 方法 | 返回值 | 功能描述 |
|---|---|---|
| clone() | Object | 创建并返回对象的一个副本 |
| equals(Object obj) | boolean | 将当前对象实例与给定的对象进行比较,检查它们是否相等 |
| hashCode() | int | 返回该对象的哈希码值 |
| finalize() throws Throwable | void | 不存在对象的更多引用时,由对象的垃圾回收器调用 |
| getClass() | Class | 返回当前对象的 Class 对象 |
| toString() | String | 返回此对象的字符串表示 |
- equals(Object obj)方法在Object类中默认将判断两个对象是否具有相同的引用,这用于比较对象是否相等就完全没有意义。特别是自己写的类,要注意是否需要重写,当然具体怎么重写又是一件复杂的事,这里不展开,用到再说。
- clone()方法也是挺多内容,不展开讲,需要可以参考:详解 Java clone 方法。
- 建议为自定义的每一个类增加toString方法,它是一种非常有用的调试工具,使用户能够获得一些有关对象状态的必要信息。
更多参见:JDK 1.6 在线中文手册。
参考资料
- 实验楼:JDK 核心 API
- 菜鸟教程:Java StringBuffer
- Java核心技术 卷Ⅰ基础知识 原书第8版
- Java2实用教程 (第三版)_ 耿祥义,张跃平
Java.lang 包 (包装类、String类、Math类、Class类、Object类)的更多相关文章
- JDK框架简析--java.lang包中的基础类库、基础数据类型
题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...
- java.lang包【Object类】
基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...
- int是java.lang包中可用的类的名称
int是java.lang包中可用的类的名称(x) int为基本数据类型,不是类
- Java.lang 包 util 包等各个包详解
java.lang 该包提供了 Java 编程的基础类,例如 Object.Math.String.StringBuffer.System.Thread 等,不使用该包就很难编写 Java 代码了. ...
- JDK_API剖析之java.lang包
java.lang是Java语言的基础包,默认包中的所有来自动import到你写的类中.(按照字母排序) 1.AbstractMethodError 类.错误 自1.0开始有 继承自Incompati ...
- java.lang包
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.特性——不用import 2.String String x = "abc"; < ...
- Java.lang包的接口解读
Java.lang包中提供了八个接口: 1.Appendable 能够被追加 char 序列和值的对象.如果某个类的实例打算接收来自 Formatter的格式化输出,那么该类必须实现 Appendab ...
- 简单看看jdk7源码之java.lang包01
从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧....(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!) 在网上看了很多的教程,读源码有 ...
- java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法
描述 Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Cla ...
随机推荐
- 10种jquery选择器操作详解(转)
jquery选择器大体上可分为4 类: 1.基本选择器2.层次选择器3.过滤选择器4.表单选择器 其中过滤选择器可以分为:1.简单过滤选择器2.内容过滤选择器3.可见性过滤选择器4.属性过滤选择器5. ...
- WEB Front-end Development Technology
1.Einführung der HTML(Hypertext Markup Language) 1.1 Grundlegendes Label 1.1.1 Block Label <h1> ...
- Betriebssystem
1.Prozess 1.1 Das Begriff Der Prozess ist eine Entität der Aktivität,umfasst aktuell Aktivitäten,dur ...
- oracle建表时设置递增序列:序列,触发器
- bug: 1.eclipse 中tomcat server 变灰色 2.build path 添加的jar不识别
1.网上百度的方案试过,没有作用. 最后删掉tomcat重新解压配置解决. 确保工程属性栏中,server正确才可加载tomcat. 猜测可能原因,tomcat在eclipse有时崩溃,一般做法是将s ...
- [javaSE] 数据结构(栈)
栈(stack)是一种线性存储结构,有以下特点: 1.栈中数据是按照先进后出的方式进出栈的 2.向栈中添加删除元素时,只能从栈顶进行操作 使用数组实现栈 定义一个类ArrayStack 实现入栈方法p ...
- C#操作xml文件:使用XmlDocument 实现读取和写入
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- HTML标签类型
标签分类: 一.块标签:块标签是指本身属性为display:block;的元素. 1.默认占一行可以设置宽高, 2.在不设置宽度的情况下,块级元素的宽度是它父级元素内容的宽度 3.在不设置高度的情况下 ...
- js 控制页面跳转的5种方法
js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转. History是bom中的 History.back是回退一页 Histiory.go(1)前进一页 Hi ...
- git 远程代码回退
git reflog git reset --hard commitId git push -f