Java语言包(java.lang)定义了Java中的大多数基本类,由Java语言自动调用,不需要显示声明。该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型的类,如:String、Boolean、Byter、Short等。这些类支持数字类型的转换和字符串的操作等,下面将进行简单介绍。

Math类

Math类提供了常用的数学运算方法以及Math.PI和Math.E两个数学常量。该类是final的,不能被继承,类中的方法和属性全部是静态,不允许在类的外部创建Math类的对象。因此,只能使用Math类的方法而不能对其作任何更改。表8-1列出了Math类的主要方法。

表8-1 Math类的主要方法
方法 功能
int abs(int i) 求整数的绝对值(另有针对long、float、double的方法)
double ceil(double d) 不小于d的最小整数(返回值为double型)
double floor(double d) 不大于d的最大整数(返回值为double型)
int max(int i1,int i2) 求两个整数中最大数(另有针对long、float、double的方法)
int min(int i1,int i2) 求两个整数中最小数(另有针对long、float、double的方法)
double random() 产生0~1之间的随机数
int round(float f) 求最靠近f的整数
long round(double d) 求最靠近d的长整数
double sqrt(double a) 求平方根
double sin(double d) 求d的sin值(另有求其他三角函数的方法如cos,tan,atan)
double log(double x) 求自然对数
double exp(double x) 求e的x次幂(ex
double pow(double a, double b) 求a的b次幂
 1 【例8-2】产生10个10~100之间的随机整数。
//********** ep8_2.java **********
class ep8_2{
public static void main(String args[]){
int a;
System.out.print("随机数为:");
for(int i=1;i<=10;i++){
a=(int)((100-10+1)*Math.random()+10);
System.out.print(" "+a);
}
System.out.println();
}
}

运行结果: 随机数为:12 26 21 68 56 98 22 69 68 31

由于产生的是随机数,例8-2每次运行的结果都不会相同。若要产生[a,b]之间的随机数其通式为:
    (b-a+1)*Math.random()+a

字符串类

字符串是字符的序列。在 Java 中,字符串无论是常量还是变量都是用类的对象来实现的。java.lang 提供了两种字符串类:String 类和 StringBuffer 类。

1.String 类
按照 Java 语言的规定,String 类是 immutable 的 Unicode 字符序列,其作用是实现一种不能改变的静态字符串。例如,把两个字符串连接起来的结果是生成一个新的字符串,而不会使原来的字符串改变。实际上,所有改变字符串的结果都是生成新的字符串,而不是改变原来字符串。

字符串与数组的实现很相似,也是通过 index 编号来指出字符在字符串中的位置的,编号从0 开始,第 2 个字符的编号为 1,以此类推。如果要访问的编号不在合法的范围内,系统会产生 StringIndexOutOfBoundsExecption 异常。如果 index 的值不是整数,则会产生编译错误。

String 类提供了如表 8-2 所示的几种字符串创建方法。

表 8-2 String 创建字符串的方法
方法 功能
String s=”Hello!” 用字符串常量自动创建 String 实例。
String s=new String(String s) 通过 String 对象或字符串常量传递给构造方法。
public String(char value[]) 将整个字符数组赋给 String 构造方法。
public String(char value[], int offset, int count) 将字符数组的一部分赋给 String 构造方法,offset 为起始下标,count为子数组长度。

2.StringBuffer 类
String 类不能改变字符串对象中的内容,只能通过建立一个新串来实现字符串的变化。如果字符串需要动态改变,就需要用 StringBuffer 类。StringBuffer 类主要用来实现字符串内容的添加、修改、删除,也就是说该类对象实体的内存空间可以自动改变大小,以便于存放一个可变的字符序列。

StringBuffer 类提供的三种构造方法
构造方法 说明
StringBuffer() 使用该无参数的构造方法创建的 StringBuffer 对象,初始容量为 16 个字符,当对象存放的字符序列大于 16 个字符时,对象的容量自动增加。该对象可以通过 length()方法获取实体中存放的字符序列的长度,通过 capacity()方法获取当前对象的实际容量。
StringBuffer(int length) 使用该构造方法创建的 StringBuffer 对象,其初始容量为参数 length 指定的字符个数,当对象存放的字符序列的长度大于 length 时,对象的容量自动增加,以便存放所增加的字符。
StringBuffer(Strin str) 使用该构造方法创建的 StringBuffer 对象,其初始容量为参数字符串 str 的长度再加上 16 个字符。
几种 StringBuffer 类常用的方法
方法 说明
append() 使用 append() 方法可以将其他 Java 类型数据转化为字符串后再追加到 StringBuffer 的对象中。
insert(int index, String str) insert() 方法将一个字符串插入对象的字符序列中的某个位置。
setCharAt(int n, char ch) 将当前 StringBuffer 对象中的字符序列 n 处的字符用参数 ch 指定的字符替换,n 的值必须是非负的,并且小于当前对象中字符串序列的长度。
reverse() 使用 reverse()方法可以将对象中的字符序列翻转。
delete(int n, int m) 从当前 StringBuffer 对象中的字符序列删除一个子字符序列。这里的 n 指定了需要删除的第一个字符的下标,m 指定了需要删除的最后一个字符的下一个字符的下标,因此删除的子字符串从 n~m-1。
replace(int n, int m, String str) 用 str 替换对象中的字符序列,被替换的子字符序列由下标 n 和 m 指定。
系列文章:

Java知多少(76)语言包(java.lang)简介的更多相关文章

  1. Java知多少(5) Java开发环境的搭建

    要进行Java开发,首先要安装JDK(Java Development Kit,Java开发工具箱). JDK 是一系列工具的集合,这些工具是编译Java源码.运行Java程序所必需的,例如JVM.基 ...

  2. Java知多少(50)Java throws子句

    如果一个方法可以导致一个异常但不处理它,它必须指定这种行为以使方法的调用者可以保护它们自己而不发生异常.做到这点你可以在方法声明中包含一个throws子句.一个 throws 子句列举了一个方法可能抛 ...

  3. Java知多少(78)Java向量(Vector)及其应用

    Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能. 向量和数组相似,都可以保存一组数据(数据列表).但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一 ...

  4. Java知多少(108)数据库查询简介

    利用Connection对象的createStatement方法建立Statement对象,利用Statement对象的executeQuery()方法执行SQL查询语句进行查询,返回结果集,再形如g ...

  5. 九. 常用类库、向量与哈希3.Java语言包(java.lang)简介

    Java语言包(java.lang)定义了Java中的大多数基本类,由Java语言自动调用,不需要显示声明.该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型 ...

  6. Java知多少(1) 语言概述

    Java语言是SUN(Stanford University Network,斯坦福大学网络公司)公司1995年推出的一门高级编程语言,起初主要应用在小型消费电子产品上,后来随着互联网的兴起,Java ...

  7. Java知多少(25)再谈Java包

    在Java中,为了组织代码的方便,可以将功能相似的类放到一个文件夹内,这个文件夹,就叫做包. 包不但可以包含类,还可以包含接口和其他的包. 目录以"\"来表示层级关系,例如 E:\ ...

  8. Java知多少(完结篇)

    Java知多少(1)语言概述 Java知多少(2)虚拟机(JVM)以及跨平台原理 Java知多少(3) 就业方向 Java知多少(4)J2SE.J2EE.J2ME的区别 Java知多少(5) Java ...

  9. Java知多少(106)程序与数据库连接

    一个网络关系数据库应用系统是一个三层次结构.客户机与服务器采用网络连接,客户机端应用程序按通信协议与服务器端的数据库程序通信:数据库服务程序通过SQL命令与数据库管理系统通信. Java程序与数据库连 ...

随机推荐

  1. vue+vue-cli+vuex+vrouter 开发学习和总结

    1.项目目录结构 1.components------------------------->页面中所用的公共组件: 2.router index.js -------------------- ...

  2. Node+Express+MongoDB+Socket.io搭建实时聊天应用实战教程(一)--MongoDB入门

    前言 本文并不是网上流传的多少天学会MongoDB那种全面的教程,而意在总结这几天使用MongoDB的心得,给出一个完整的Node+Express+MongoDB+Socket.io搭建实时聊天应用实 ...

  3. grpc使用客户端技巧

    grpc 使用技巧,最近在做的项目是服务端是go语言提供服务使用的是grpc框架. java在实现客户端的时候,参数的生成大部分采用创建者模式.java在接受go服务端 返回数据的时候,更多的是通过p ...

  4. Codeforces Round #516 (Div. 2) (A~E)

    目录 Codeforces 1064 A.Make a triangle! B.Equations of Mathematical Magic C.Oh Those Palindromes D.Lab ...

  5. crm 中使用的Django方法

    . 通过ChangeList封装好多数据 . 销售中公共资源:Q查询,3天 15天 . 使用yield实现 - 生成器函数,对数据进行加工处理 - __iter__和yield配合 . 获取Model ...

  6. netty如何知道连接已经关闭,socket心跳,双工?异步?

    https://stackoverflow.com/questions/10240694/java-socket-api-how-to-tell-if-a-connection-has-been-cl ...

  7. java.net.SocketException四大异常解决方案

    java.net.SocketException如何才能更好的使用呢?这个就需要我们先要了解有关这个语言的相关问题.希望大家有所帮助.那么我们就来看看有关java.net.SocketExceptio ...

  8. zabbix 创建监控项

    项目是在Zabbix收集数据的基础 ,所有项目都是围绕主机,找到创建的主机 点击 Configuration > hosts > ltems 点击 Create item Name:输入C ...

  9. unity下3d模型的透明处理

    1.若只是改变模型的透明度:点击模型,在Inspector中可以看到很多模型的属性.找到要改变透明度的地方,更改shader渲染的方式选中Transparent(透明度)的diffuse,之后调节Ma ...

  10. STL——模拟实现空间配置器

    目录 问题 SGI版本空间配置器-std::alloc 一级空间配置器 二级空间配置器 Refill.chunkAlloc函数 最后,配置器封装的simple_alloc接口 问题 我们在日常编写C+ ...