Java 常用实体类
Java 系统级类
系统类 System
-
访问系统属性
系统属性是系统固有的属性,是在操作系统和软件安装后已存在的属性。不仅包括操作系统的属性,还包括各种软件的安装属性
| 键 | 相关值的描述 |
|---|---|
| java.version | Java运行时环境版本 |
| java.vendor | Java运行时环境供应商 |
| java.vendor.url | Java供应商的URL |
| java.home | Java安装目录 |
| java.vm.specification.version | Java虚拟机规范版本 |
| java.vm.specification.vendor | Java虚拟机规范供应商 |
| java.vm.specification.name | Java虚拟机规范名称 |
| java.vm.version | java虚拟机实现版本 |
| java.vm.vendor | Java虚拟机实现供应商 |
| java.vm.name | Java虚拟机实现名称 |
| java.specification.version | Java运行时环境规范版本 |
| java.specification.vendor | Java运行时环境规范供应商 |
| java.specification.name | Java运行时环境规范名称 |
| java.class.version | Java类格式版本号 |
| java.class.path | Java类路径 |
| java.library.path | 加载库时搜索的路径列表 |
| java.io.tmpdir | 默认的临时文件路径 |
| java.compiler | 要使用的 JIT 编译器的名称 |
| java.ext.dirs | 一个或多个扩展目录的路径 |
| os.name | 操作系统的名称 |
| os.arch | 操作系统的架构 |
| os.version | 操作系统的版本 |
| file.separator | 文件分隔符(在 UNIX 系统中是 “/”) |
| path.separator | 路径分隔符(在 UNIX 系统中是 “:”) |
| line.separator | 行分隔符(在 UNIX 系统中是 “/n”) |
| user.name | 用户的账户名称 |
| user.home | 用户的主目录 |
| user.dir | 用户的当前工作目录 |
-
访问环境变量
-
取得所有环境变量列表
使用System.getenv()函数将取得一个 Map 对象,该对象包含了所有环境变量的键值对
-
取得某一个属性变量的值
使用System.getenv(key)
-
-
加载文件和库(可以用在JNI调用中)
- 函数 load(String filename)的作用是,从作为动态库的本地文件系统中以指定的文件名加载代码文件,文件名参数必须是完整的路径名,调用
System.load(name)实际上等价于Runtime.getRuntime().load(name) - 函数loadLibrary(String libname)的作用是,加载由libname 参数指定的系统库,将库名映射到实际系统库的方法取决于系统,调用
System.loadLibrary(name)实际上等价于Runtime.getRuntime().loadLibrary(name)
- 函数 load(String filename)的作用是,从作为动态库的本地文件系统中以指定的文件名加载代码文件,文件名参数必须是完整的路径名,调用
-
快速复制数组
使用 System的函数 arraycopy() 快速进行数组复制
void arraycopy(Object src, int srcPos, Object destPos, int length)- src:源数组
- srcPos:原数组中的起始位置
- dest:目标数组
- destPos:目标数组中的起始位置
- length:要复制数组元素的数量
-
取得系统时间(用做系统性能监控)
取得当前系统时间的函数 System.currentTimeMillis()。该函数返回的是毫秒时间
-
系统退出命令
System.exit(int status) 用来终止当前正在运行的Java 虚拟机,参数 status 用做状态码,非 0 的状态表示异常终止
-
执行垃圾回收
System.gc()用于运行垃圾回收器。调用gc()方法暗示着 Java虚拟机可以回收未用对象
运行时类 Runtime
-
查看系统内存
long freeMemory(); //返回 Java虚拟机中的空闲内存量 long maxMemory(); //返回Java 虚拟机中试图使用的最大内存量 long totalMemory(); //返回 Java虚拟机中的内存总量 // JVM 默认内存大小为 66MB -
终止 JVM 虚拟机
exit(int status) halt() -
运行系统程序
Runtime.getRuntime().exec(); -
使用关闭钩子
Runtime 类提供了 addShutdownHook() 函数,用来监控系统退出
Java 字符串处理类
字符串类
String 类代表字符串。Java程序中所有字符串字面值都作为此类的实例实现。字符串是常量,他们的值在创建之后不能更改,字符串缓冲区支持可变的字符串。因为String对象是不可变的,所以可以共享
-
提取单个字符
char charAt(int index); // 返回指定索引出的char值 -
提取子字符串
String substring(int index); // 返回一个新的字符串 String substring(int index, int endindex); // 返回一个新的字符串 int length(); // 返回字符串长度 -
比较字符串
boolean equals(Object obj); //将指定字符串与指定对象比较 boolean equalsIgnoreCase(String str);// 忽略大小写 int compareToString(String str); // 按字典顺序比较两个字符串 int compareToIgnoreCase(String str); // 按字典顺序比较两个字符串,不区分大小写 -
定位字符串
boolean startsWith(String prefix); // 测试此字符串是否以指定前缀开始 boolean startsWith(String prefix, int toffset); // 测试此字符串是否以指定的后缀结束 boolean endsWith(String suffix); // 测试此字符串是否以指定的后缀结束 int indexOf(int ch); //返回指定字符在此字符串中第一次出现处的索引 int indexOf(int ch, int fromIndex); // 返回此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索 int indexOf(String str); // 返回指定字字符串在此字符串中第一次出现出的索引 int indexOf(String str, int formIndex); // 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行搜索 int lastIndexOf(int ch); int lastIndexOf(int ch, int index); int lastIndexOf(String str); int lastIndexOf(String str, int index); -
匹配字符串
boolean matches(String regex); -
拆分字符串
String[] split(String reges); -
替换字符串
String replace(char oldChar, char newChar); // 返回一个新的字符串,他通过用newChar 替换此字符串中出现的所有oldChar 的到的 String replaceAl(String regex, String replacement); //使用给定的 replacement 替换 此字符串所有匹配给定的正则表达式的子字符串 String replaceFirst(String regex, String replacement); // 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串 -
转换大小写
String toLowerCase(); // 转小写 String toUpperCase(); //转大写 -
格式化输出
static String format(Local l, String format, Object ... args); // 格式化字符串和参数返回一个格式化字符串 static String format(String format, Object ...args); //使用指定的格式字符串和参数返回一个格式化字符串
字符串分隔类 StringTokenizer
StringTokenizr(String str); //以空格为分隔符
StringTokenizr(String str, String delim); //以delim为分隔符
StringTokenizr(String str, String delim, boolean returnDelims); //以delim为分隔符
// 从 第三个函数可以看出,StringTokenizr 的实例有两种行为方式,这取决于使用的 returnDelims 标志的值是 true 还是 false
~ 如果是 false,则分隔符字符用来分隔标记,标记的是连续字符的最大序列
~ 如果标志为 true,则认为那些分隔符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符的最大序列
不推荐使用
线程安全的可变字符串类 StringBuffer
StringBuffer 是一个线程安全的可变字符串类,它类似于 String的字符串,不同的是它通过某些方法调用可以改变该序列的长度和内容。它可将字符串缓冲区安全地用于多个线程,可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作好像是以串行顺序发生的,该顺序所涉及的每个线程进行的方法调用顺序一致。
StringBuffer 上的主要操作是 append() 和 insert()方法。 每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append()方法始终将这些字符添加到缓冲区的末端;而 insert()方法则在指定的点添加字符
可变字符串类 StringBuilder
StringBuilder 是一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用做StringBuffer的一个建议替换,用在字符串缓冲区被单个线程使用的时候。
每个字符串生成器都有一定的容量,只要字符串生成器所包含的字符序列的长度没有超出此容量,就无须分配新的内部缓存区。如果内部缓存区溢出,则此容量自动增大
选择String、StringBuffer与StringBuilder
- String是字符串常量
- StringBuffer是字符串变量(线程安全)
- StringBuilder是字符串变量(非线程安全)
- 如果偶尔对简单的字符串常量进行拼接,那么可以使用String,他足够简单而且轻量级
- 如果需要经常进行字符串拼接、累加操作,使用StringBuilder 或 StringBuffer
- 如果单线程的环境下,建议使用StringBuilder,他要比StringBuffer快,如果是在多线程的环境中,建议使用StringBuffer,它是线程安全的
Java 日期处理类
日期类Date
- 年份 y 由整数 y - 1900表示
- 月份由从 0 ~ 11的整数表示:0 是一月 11 是 十二月
- 日期由整数 1~ 31表示
- 分钟由 0 ~ 59的整数表示
- 秒 由 0 ~ 61的整数表示;值 60 和 61 只对闰秒发生
-
创建日期
Date(); // 分配Date 对象并初始化此对象,以表示分配它的时间 -
修改日期
void setTime(long time); // 设置毫秒数 long getTime(); // 获得毫秒数 -
比较日期
boolean before(Date when); // 判断次日起是否在指定日期之前 boolean after(Date when); // 判断次日起是否在指定日期之后 int compareTo(Date anotherDate); // 比较两个日期的顺序 -
输出日期
toString();
日期格式化类 SimpleDateFormat
| 字母 | 日期或时间元素 |
|---|---|
| G | Era标识符 |
| y | 年 |
| M | 年中的月份 |
| w | 年中的周数 |
| W | 月中的周数 |
| D | 年中的天数 |
| d | 月中的天数 |
| F | 月份中的星期 |
| E | 星期中的天数 |
| a | AM/pm标记 |
| H | 一天中的小时数(0~23) |
| k | 一天中的小时数(1~24) |
| K | am/pm 中的小时数 (0 ~ 11) |
| h | am/pm 中的小时数 (1 ~ 12) |
| m | 小时中的分钟数 |
| s | 分钟的秒数 |
| S | 毫秒数 |
| z | 时区 |
| Z | 时区 |
-
创建格式化对象
simpleDateFormat(String pattern); applyPattern(String pattern); // 将给定模式字符串应用于此日期格式 -
日期转换为字符串
String format(Date date); -
字符串转换为日期
Date parse(String source);
Java 数字处理类
数学函数类 Math
-
绝对值函数
static double abs(double a); // 返回double的绝对值 static float abs(float a); // 返回float的绝对值 static int abs(int a); // 返回int的绝对值 static long abs(long a); // 返回long的绝对值 -
最大值最小值函数
static double max(double a, double b); static double min(double a, double b); -
取整函数
static double rint(double a); // 返回最接近参数并等于某一整数的double 值 static long round(double a); // 返回最接近参数的 long static double floor(double a); // 返回最大的double -
弦与切函数
static double sin(double a); // 返回角的三角正弦 static double sinh(double x); // 返回 double值的 双曲线正弦 static double tan(double a); // 返回角的三角正切 static double tanh(double a); // 返回double 值的双曲线余弦 static double cos(double a); // 返回角的三角余弦 static double cosh(double x); // 返回 double 值的双曲线余弦 static double acos(double a); // 返回一个值的反余弦 static double asin(double a); // 返回一个值的反正弦 static double atan(double a); // 返回一个值的反正切 static double atan2(double y, double x); // 将矩形坐标(x,y)转换成即坐标 (r,theta),返回所得叫 -
幂与开方函数
static double exp (double a); // 返回欧拉数 e 的 double 次幂的值 static double expm (double a); // 返回 ex - 1 static double pow (double a, double b); // 返回第一个参数的第二个参数次幂的值 static double sqrt (double a); // 返回正确舍入的 double 值的正平方根 static double cbrt (double a); // 返回 double 值的立方根 static int getExpoment(double d); // 返回 double 形式中使用的无偏指数 -
对数函数
static double log(double a); // 返回double 值的自然对数(底数是e) static double log10(double a); // 返回double 值的底数为10的对数 static double log1p(double a); // 返回参数与 1 之和的自然对数 -
角度函数
static double toDegrees(double angrad); // 将用弧度表示的角转换为近似相等的用角度表示的角 static double toRadians(double angdeg); // 将用角度表示的角转换为近似相等的用弧度表示的角 -
随机函数
static double random(); // 返回带正号 的 double 值, 该值大于 0 且小于 1