1. StringBuffer 类
/*
* StringBuffer 是一个存储字符的容器
* StringBuffer 底层是依赖了一个字符数组才能存储字符数据的。该字符串数组默认的初始容量式16,如果字符数组的长度不够使用,自动增加1倍。
*
* 容器的具备行为
*
* 增加: append(boolean b) 任意类型的数据
* insert(int offset, char c)
*
*
* 删除 delete(int start, int end)
* deleteCharAt(int index)
*
*
* 修改 : reverse()
* replace(int start, int end, String str)
* setCharAt(int index, char ch)
*
* 查看 capacity()
*
* StringBuilder 线程不太安全,但是推荐
*
*
* */
public class test_1{
public static void main(String args[]){
// 先使用StringBuffer 的构造函数创建一个字符串缓冲类
StringBuffer sb = new StringBuffer();
sb.append("abc");
sb.insert(2, "xiaoming");
sb.reverse();
System.out.println("huanchong: " + sb);
}
}
2. System 类
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Properties;
/*
* 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
* 对外部定义的属性和环境变量的访问;加载文件和库的方法;
* 还有快速复制数组的一部分的实用方法。
*
* arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
*
* currentTimeMillis() 返回以毫秒为单位的当前时间。
*
* exit(int status) 终止当前正在运行的 Java 虚拟机
* 非 0 的状态码表示异常终止。
* 在 try 里面 System.exit(0); // jvm 退出
* 在catch 里面 System.exit(1);
* *
* gc() 建议 JVM 运行垃圾回收器。
* finalize() 如果一个对象被垃圾回收器回收的时候,会先调用对象 finalize()方法
*
* getenv(String name) 根据环境变量的名字,获取指定的环境变量值
*
* getProperties(key)
* 确定当前的系统属性。
*
* currentTimeMillis() 获取当前系统 返回以毫秒为单位的当前时间 *
* */
class Person{
String name;
/*
* 快捷键 shift+alt+s
* 然后选择Generate Constructors from Superclass
* 或者Generate Constructors using Fields,
* 分别构造空参和带参数的构造函数
* */
public Person(String name) {
this.name = name;
}
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println(this.name + " 被回收了");
}
}
public class test_1{
public static void main(String args[]){
int[] srcArr = {10,12,14,16,19};
int[] destArr = new int[4];
System.arraycopy(srcArr, 2, destArr, 1, 2);
// System.exit(0); //jvm 退出
System.out.println("目标数组的元素: " + Arrays.toString(destArr));
System.out.println("环境变量: " + System.getenv("JAVA_HOME"));
Properties prop= System.getProperties();
prop.list(System.out);
String value = System.getProperty("os.name");
System.out.println("当前系统 " + value);
for(int i=0; i<4; i++) {
new Person("fzx " +i);
System.gc();
}
}
}
3. Runtime
import java.io.IOException;
/*
* 类 Runtime 该类主要代表了应用程序的环境
*
* 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
* 可以通过 getRuntime 方法获取当前运行时。
*
* 应用程序不能创建自己的 Runtime 类实例。
*
* exec(String command) 在单独的进程中执行指定的字符串命令。
*
* freeMemory() 返回 Java 虚拟机中的空闲内存量,是以字节为单位
*
* maxMemory() 返回 Java 虚拟机试图使用的最大内存量。
*
* totalMemory() 返回 Java 虚拟机中的内存总量 *
* */
public class test_1{
public static void main(String args[]) throws Exception{
Runtime timet =Runtime.getRuntime();
// Process process = timet.exec("G:\\java\\Runtime类.exe");
// Thread.sleep(3000); //让当前程序停止3秒
// process.destroy();
System.out.println("空闲内存量 " + timet.freeMemory() );
System.out.println("试图使用的最大内存量 " + timet.maxMemory());
System.out.println("虚拟机中的内存总量 " + timet.totalMemory());
}
}
运行结果:
空闲内存量 265832912
试图使用的最大内存量 4273995776
虚拟机中的内存总量 268435456
4. 日期
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Year;
import java.util.Calendar;
import java.util.Date;
/*
* 类 Date java.util.Date
*
* Calendar 类 ,但是构造函数是 protected 不能直接创建对象
* 因此 class 之后要 extends Calendar
*
* 如果不继承class 不继承这个类, 则需 用静态方法获取这个类
* Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
* Calendar 的 getInstance 方法返回一个 Calendar 对象,
* 其日历字段已由当前日期和时间初始化:
*
* 日期格式化类 SimpleDateFormat
* 作用1: 可以把日期转换成指定格式的字符串 format(Date date, StringBuffer toAppendTo, FieldPosition pos)
* 将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer
* 作用2: parse(String text, ParsePosition pos)
* 解析字符串的文本,生成 Date。
* */
public class test_1{
public static void main(String args[]) throws Exception {
// Date date = new Date();
Calendar calendar = Calendar.getInstance(); // 使用默认时区和语言环境获得一个日历。
System.out.println("年 : " + calendar.get(calendar.YEAR));
System.out.println("月 : " + (calendar.get(calendar.MONTH)+1));
System.out.println("日 : " + calendar.get(calendar.DATE));
System.out.println("时 : " + calendar.get(calendar.HOUR_OF_DAY));
System.out.println("分 : " + calendar.get(calendar.MINUTE));
System.out.println("秒 : " + calendar.get(calendar.SECOND));
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time = dateFormat.format(date);
System.out.println("当前系统时间 " + time);
String birthday = "1995年10月29日 06:06:06"; // 这个字符串需要和SimpleDateFormat格式一致
Date date2 = dateFormat.parse(birthday);
System.out.println("fzx的阴历生日是: " + date2);
}
}
运行结果:
年 : 2018
月 : 4
日 : 28
时 : 22
分 : 18
秒 : 41
当前系统时间 2018年04月28日 22:18:41
fzx的阴历生日是: Sun Oct 29 06:06:06 CST 1995
5. Math 类 和 random 类,验证码
import java.util.Random;
/*
* Math 数学类
* abs() 绝对值
* ceil(double a) 向上取整
* floor(double a) 向下取整
* round(float a) 返回最接近参数的 int。 四舍五入
* random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
* 返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
*
* 随机数类 Random
* */
public class test_1{
public static void main(String args[]) {
Random random = new Random();
int rand = random.nextInt(10);
System.out.println("随机数: " + rand); // 产生的随机数在 0--10之间
char[] arr = {'付', '祖', '贤', '女', '侠', '博', '客'};
StringBuilder hh = new StringBuilder();
for(int i =0; i<4; i++) {
int index = random.nextInt(arr.length);
hh.append(arr[index]);
}
System.out.println("验证码: " + hh);
}
}
运行结果:
随机数: 7
验证码: 贤贤客侠