• 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类)的更多相关文章

  1. JDK框架简析--java.lang包中的基础类库、基础数据类型

    题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...

  2. java.lang包【Object类】

    基本描述: (1)Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: (2)Object类是所有Java类的祖先.每个类都使用 Obje ...

  3. int是java.lang包中可用的类的名称

    int是java.lang包中可用的类的名称(x) int为基本数据类型,不是类

  4. Java.lang 包 util 包等各个包详解

    java.lang 该包提供了 Java 编程的基础类,例如 Object.Math.String.StringBuffer.System.Thread 等,不使用该包就很难编写 Java 代码了. ...

  5. JDK_API剖析之java.lang包

    java.lang是Java语言的基础包,默认包中的所有来自动import到你写的类中.(按照字母排序) 1.AbstractMethodError 类.错误 自1.0开始有 继承自Incompati ...

  6. java.lang包

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.特性——不用import 2.String String x = "abc"; < ...

  7. Java.lang包的接口解读

    Java.lang包中提供了八个接口: 1.Appendable 能够被追加 char 序列和值的对象.如果某个类的实例打算接收来自 Formatter的格式化输出,那么该类必须实现 Appendab ...

  8. 简单看看jdk7源码之java.lang包01

    从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧....(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!) 在网上看了很多的教程,读源码有 ...

  9. java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法

    描述 Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Cla ...

随机推荐

  1. 10种jquery选择器操作详解(转)

    jquery选择器大体上可分为4 类: 1.基本选择器2.层次选择器3.过滤选择器4.表单选择器 其中过滤选择器可以分为:1.简单过滤选择器2.内容过滤选择器3.可见性过滤选择器4.属性过滤选择器5. ...

  2. WEB Front-end Development Technology

    1.Einführung der HTML(Hypertext Markup Language) 1.1 Grundlegendes Label 1.1.1 Block Label <h1> ...

  3. Betriebssystem

    1.Prozess 1.1 Das Begriff Der Prozess ist eine Entität der Aktivität,umfasst aktuell Aktivitäten,dur ...

  4. oracle建表时设置递增序列:序列,触发器

  5. bug: 1.eclipse 中tomcat server 变灰色 2.build path 添加的jar不识别

    1.网上百度的方案试过,没有作用. 最后删掉tomcat重新解压配置解决. 确保工程属性栏中,server正确才可加载tomcat. 猜测可能原因,tomcat在eclipse有时崩溃,一般做法是将s ...

  6. [javaSE] 数据结构(栈)

    栈(stack)是一种线性存储结构,有以下特点: 1.栈中数据是按照先进后出的方式进出栈的 2.向栈中添加删除元素时,只能从栈顶进行操作 使用数组实现栈 定义一个类ArrayStack 实现入栈方法p ...

  7. C#操作xml文件:使用XmlDocument 实现读取和写入

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  8. HTML标签类型

    标签分类: 一.块标签:块标签是指本身属性为display:block;的元素. 1.默认占一行可以设置宽高, 2.在不设置宽度的情况下,块级元素的宽度是它父级元素内容的宽度 3.在不设置高度的情况下 ...

  9. js 控制页面跳转的5种方法

    js 控制页面跳转的5种方法 编程式导航: 点击跳转路由,称编程式导航,用js编写代码跳转. History是bom中的 History.back是回退一页 Histiory.go(1)前进一页 Hi ...

  10. git 远程代码回退

    git reflog git reset --hard commitId git push -f