1.Java API 简介
Java 的核心 API 是非常庞大的, 这给开发者来说带来了很大的方便. 所谓的 API 就是一些已经写好, 可直接调用的类库. Java 里有非常庞大的 API, 其中有一些类库是我们必须得掌握的, 只有熟练掌握了 Java 一些核心的 API, 我们才能更好的使用 Java.
在程序中, java.lang 包并不需要像其他包一样需要 import 关键字进行引入. 系统会自动加载, 所以我们可以直接取用其中的所有类. 下面我们就来详细地学习一下 java.lang 包吧.
2. java.lang 包装类
我们都知道 java 是一门面向对象的语言, 类将方法和属性封装起来, 这样就可以创建和处理相同方法和属性的对象了. 但是 java 中的基本数据类型却不是面向对象的, 不能定义基本类型的对象. 那如果我们想像处理对象的方式处理基本类型的数据, 调用一些方法怎么办呢?
其实 java 为每个基本类型都提供了包装类:
在这八个类名中, 除了 Integer 和 Character 类以后, 其它六个类的类名和基本数据类型一致, 只是类名的第一个字母大写.
2.1 Integer 类
java.lang 包中的 Integer 类, Long 类和 Short 类都是 Number 的子类, 他们的区别在于不同子类里面封装着不同的数据类型, 比如 Integer 类包装了一个基本类型 int. 其包含的方法基本相同.
我们以 Integer 类为例. Integer 构造方法有两种:
Integer(int value) , 以 int 型变量作为参数创建 Integer 对象. 例如 Integer a = new Integer(10);
Integer(String s) , 以 String 型变量作为参数创建 Integer 对象, 例如 Integer a = new Integer("10");
下面列举一下 Integer 的常用方法:
2.2 Character 类
Character 类在对象中包装一个基本类型 char 的值. Character 类型的对象包含类型为 char 的单个字段.
Character 包装类的常用方法:
例子:
2.3 Boolean 类
Boolean 类将基本类型为 boolean 的值包装在一个对象中. 一个 Boolean 类型的对象只包含一个类型为 boolean 的字段.
Boolean 类的构造方法也有两个:
Boolean(boolean value), 创建一个表示 value 参数的 Boolean 对象, 如 Boolean b = new Boolean(true)
Boolean(String s), 如果 String 参数不为 null 且在忽略大小写时等于 "true", 创建一个表示 true 值的 Boolean 对象, 如 Boolean b = new Boolean("ok"), 为 false.
Boolean 包装类的常用方法:
实例:
2.3 java.lang 类 String
我们经常使用 String 类来定义一个字符串. 字符串是常量, 它们的值在创建之后不能更改. 字符串缓冲区支持可变的字符串.
String 对象的初始化格式有如下两种:
String 类具有丰富的方法, 比如计算字符串的长度, 连接字符串, 比较字符串, 提取字符串等等.
2.3.1 计算字符串长度
length()方法
2.3.2 字符串比较
equals() 方法, 该方法的作用是判断两个字符串对象的内容是否相同. 如果相同则返回 true, 否则返回 false.
equals() 方法比较是从第一字符开始, 一个字符一个字符依次比较.
那如果我想忽略掉大小写关系, 比如: java 和 Java 是一样的, 我们怎么办呢? 我们可以调用 equalsIgnoreCase()方法, 其用法与 equals 一致, 不过它会忽视大小写.
比如:
而使用 "==" 比较的是两个对象在内存中存储的地址是否一样. 例如:
- String s1 = "abc";
- String s2 = new String("abc");
- boolean b = (s1 == s2);
则变量 b 的值是 false, 因为 s1 对象对应的地址是 "abc" 的地址, 而 s2 使用 new 关键字申请新的内存, 所以内存地址和 s1 的 "abc" 的地址不一样, 所以获得的值是 false.
2.3.3 字符串连接
字符串连接有两种方法:
使用 +, 比如 String s = "Hello" + "World!"
使用 String 类的 concat() 方法
代码示例:
而且使用 + 进行连接, 不仅可以连接字符串, 也可以连接其他类型. 但是要求进行连接时至少有一个参与连接的内容是字符串类型.
2.3.4 charAt()方法
charAt()方法的作用是按照索引值(规定字符串中第一个字符的索引值是 0, 第二个字符的索引值是 1, 依次类推), 获得字符串中的指定字符. 例如:
则变量 c 的值是'b'.
2.3.5 字符串常用提取方法
说明: 在字符串中, 第一个字符的索引为 0, 子字符串包含 beginindex 的字符, 但不包含 endindex 的字符.
我们来写一些代码, 验证一下上面的方法吧
2.3.6 StringBuffer
String 类的字符串创建后是不能够改变的.
例如:
String 的不变性的机制显然会在 String 常量内有大量的冗余. 比如我创建一个循环, 使字符'1'依次连接到'n', 那么系统就得创建 n+(n-1) 个 String 对象. 那有没有可变的 String 类呢?
StringBuffer 类是可变的. 它是 String 的对等类, 它可以增加和编写字符的可变序列, 并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的, 这里建议大家去看一看 String 类与 StringBuffer 类的区别, 理解一下他们在内存中的存储情况)
先上 StringBuffer 的构造方法:
StringBuffer 类的常用方法:
上面的方法中我们选择几个, 来写写代码吧:
2.4 java.lang 类 Math
我们在编程的过程中, 经常对一些数字进行数学操作, 比如我们想要求绝对值或余弦什么的. 那这些方法是否需要我们自己实现吗? 其实在 java.lang 里的 Math 类 Math 类包含用于执行基本数学运算的方法, 如初等指数, 对数, 平方根和三角函数. 我们就来学习一下吧!
先认识一些方法吧:
上面都是一些常用的方法, 以后还会用到极坐标, 对数等, 就去查一查手册吧.
我们来看看部分方法的示例代码:
2.5 java.lang 类 Class
Class 类的实例表示正在运行的 Java 应用程序中的类或接口. 在 Java 中, 每个 Class 都有一个相应的 Class 对象, 即每一个类, 在生成的. class 文件中, 就会产生一个 Class 对象, 用于表示这个类的类型信息. 我们获取 Class 实例有三种方法:
利用对象调用 getClass()方法获取该对象的 Class 实例
使用 Class 类的静态方法 forName(String className), 用类的名字获取一个 Class 实例
运用. class 的方式来获取 Class 实例, 对于基本数据类型的封装类, 还可以采用. TYPE 来获取相对应的基本数据类型的 Class 实例
class 类没有共有的构造方法, 它由 JVM 自动调用. class 类的方法在这里就不细讲了, 有 兴趣的可以自己查询一下.
2.6 java.lang 类 Object
Object 类是所有类的父类, 所有对象 (包括数组) 都实现这个类的方法. 所以在默认的情况下, 我们定义的类扩展自 Object 类, 那我们当然可以调用和重写 Object 类里的所有方法了.
我们看一下 Object 类里都定义了哪些方法.
这个也不细讲了, 各位可以自行验证一下上面的方面, 如果有兴趣, 也可以深入了解一下里面的其他方法.
今天我们介绍了 lang 包, 大家去网上查一查包里面还有许多其他类, 了解和学习一下其他的类方法吧! http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 这是网址.
来源: http://www.jianshu.com/p/a5f3902c72b4