1. 基本数据类型包装类
八大基本数据类型及其包装类
2. 字符串相关类
字符串的两种实例化方式及其差别
1).String str = “abc”;
2).String str = new String(“abc”);
String对象的实例化方式有两种:一种是直接赋值,另外一种是通过构造方法完成;
直接赋值:只开辟一个堆内存空间,而且采用了共享设计模式,可以自动的入池,以备下次对象继续使用;
构造方法:会开辟两块内存空间,其中有一块空间将成为垃圾,而且不会自动入池,但是可以使用intern()方法进行手工入池;
2.2 StringBuffer类
长度经常变化的字符串,可以考虑使用StringBuffer
字符串的不变性:
-
一个String对象的长度是固定的,不能改变它的内容,或者是附加新的字符到String对象中。
-
您也许会使用+来串联字符串以达到附加新字符或字符串的目的,但+会产生一个新的String对象。
-
如果程序对这种附加字符串的需求很频繁,系统会频繁在内存中创建String对象,造成性能下降。所以并不建议使用+来进行频繁的字符串串联。应该使用java.lang.StringBuffer类。
3. Math类
Math 类提供了一序列基本数学运算和几何函数的方法。Math类是final类,并且它的所有成员变量和成员方法都是静态的。
4. Random类
此类用于生成随机数:两种构造方法
1.Random(); 创建一个新的随机数生成器
2.Random(long seed); 使用单个 long 种子创建一个新随机数生成器
如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
5. System类
System类代表当前java程序的运行平台,程序不能自己创建System类的对象。
1、 System类提供了一些静态属性和方法,允许通过类名直接调用。
2、 System类提供了代表标准输入、标准输出、错误输出的类属性。
3、 System类提供了一些静态方法用于访问环境变量、系统属性的方法。
4、 System类还提供了加载文件和动态链接库的方法。
练习1:
将一个数字字符串转换成逗号分隔的数字串,即从右边开始每三个数字用逗号分隔。
import java.util.Scanner;
public class Test9 {
Scanner input = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("请输入一串数字:");
Test9 t = new Test9();
t.division();
}
public void division(){
double num = input.nextDouble();
String str = num + "";
StringBuffer str1 = new StringBuffer(str);
int index = str1.indexOf(".");//小数点的索引其实就是整数部分的数的个数
int length = index;
if (length <= 3) {
System.out.println(str1);
} else if (length % 3 == 0) {
StringBuffer str2 = str1.insert(3, ",");
System.out.println(str2.toString());
} else if (length % 3 == 1) {
System.out.println(str1.insert(1, ",").toString());
} else if (length % 3 == 2) {
System.out.println(str1.insert(2, ",").toString());
}
}
}
练习2:
使用Math类随机产生一个2~99的的整数(包括2,包括99)。
import java.lang.Math;
public class Test11 {
public static void main(String[] args) {
int min = 2;
int max = 99;
int i = (int) (Math.random() * (max - min + 1) + min);
System.out.println(i);
}
}