基础 -- Java笔记8--常见的实体类
Java笔记8–常见的实体类
2016年1月20日
15:01
8 常见的实体类
8.1 系统类 System
它的重要功能:
1.访问系统属性:系统属性是系统固有的属性,是在操作系统安装和软件安装后就已存在的属性。
两种方法获取系统属性,方法一:使用System.getProperties()函数取得一个Properties对象,该对象包含了所有的系统属性的键值对。
方法二:直接使用System.getProperties(key)来取得对应的属性。如果我们输入的键不存在,则返回一个null。
当我们查询的键不存在时我们可以直接通过System.getProperties(key,value);来给这个键赋值。我们也可以通过System.setProperties(key,value);来设置一个属性。
我们也可以移除一个指定键的系统属性:System.clearProperty(key); (通常我们只查询而不做修改和删除操作)
2.访问环境变量
环境变量分为两类:系统变量和用户变量
两种访问环境变量的方法:
方法一:使用System.getenv()函数将取得一个Map对象,该对象包含了所有环境变量的键值对。
方法二:使用System.getenv(key)直接取得该键的值。
3.加载文件和库
4.快速复制数组
void arraycopy(数组源,源数组中的起始位置,目标数组,目标数组中的起始位置,要复制的数组元素的数量);
不得不说在这个方法中有很多的冗余的属性,比如,你给的两个数组的类型同,那它们明显是没有办法相互复制的;又比如,让你给数组的形参你偏要给他一个非数组的实参,那它也是没有办法干活的;还比如,让你给位置参数的时候你给个负数,它就崩溃了。
5.取得系统时间
System.currenTimeMillis();该函数返回一个当前系统时间,是一个long类型的数据,精确到毫秒。
当我们想要计算一些代码执行的时间的时候,也可以用上面的函数获得两个时间来计算;此外我们还有一种更为精确的计算方法,System.nanoTime()将返回毫微秒级的精确度。
6.系统推出命令
System.exit(int status)用来终止当前正在运行的java虚拟机,status用做状态码,根据惯例,非0的状态码表示异常终止。
简单的应用方法为,我们在系统不正常运行时在控制台中输入数据,通过输入流转换后被代码块识别,通过预先的设置,完成终止虚拟机运行的目的。
7.执行垃圾回收
System.gc();调用gc()方法暗示虚拟机做一些努力来对未回收的对象进行回收,这个地方很麻烦,并不是我们调用这个方法后虚拟机就会立即执行回收,但是我们有不能频繁的在一个程序中调用这个方法,因为虚拟机会作出反应,而每一次垃圾回收都会消耗大量的系统资源。只有当我们在短时间内创建了大量的对象,占用了太多的资源时,才合适调用这个函数。
8.2 运行时类 Runtime
其实,上面的System类的许多函数都等价于Runtime.getRuntime,实际上System是依赖于Runtime类的。
Runtime类不同于System类,它的函数大部分都不是静态的,只有一个静态函数getRuntime().没一个java应用程序都有一个Runtime的实例,应用程序不能创建自己的Runtime类实例。
1.查看系统内存(查看当前运行的虚拟机)
long freeMemory(); 空闲内存量
long maxMemory(); 虚拟机试图使用的最大内存量
long totalMemory(); 内存总量
2.终止虚拟机
Runtime.getRuntime().exit(n);
Runtime.getRuntime().halt(int status); 强行终止当前正在运行的java虚拟机;与上一个方法不同的地方是,这个方法属于是强制性的不安全的,不管其他因素的终止,只在迫不得已的情况下使用。
3.运行系统程序
Runtime.getRuntime().exec(“notepad”); 打开记事本
4.关闭钩子(没明白是干个啥)
8.3 java字符串处理类
String字符串类:String字符串是常量,他们的值在创建之后不能更改。
String的方法:
1.提取单个字符串: char charAt( int index); //index从0开始,放回指定索引处的char值
2.提取子字符串: String substring(int beginIndex); String substring(int beginIndex, int endIndex); //注意endIndex不能越界
3.比较字符串: boolean equals(Object anObject);
boolean equalsIgnoreCase(String Str); //忽略大小写
int compareTo(String anotherString);
int compareToIgnoreCase(String str); //按字典大小比较两个字符串的大小,没有明白到底是干啥的
4.定位字符串
int indexOf(char c); //返回c在字符串中的位置,不包含则返回-1,也可以是String字符串
int lastIndexOf(char c); //返回c在字符串中最后一次出现的位置
5.拆分字符串
String[] split(String regex); //根据给定的正则表达式的匹配拆分字符串,返回一个字符串数组
6.替换字符串
String replace(String oldString,String newString);
7.转化大小写
String toLowerCase();
String toUpperCase();
8.格式化输出
str = String.format(“%1$tY年%1$tm月”,new Date()); //格式化输出时间,这个方法是静态的
字符串分隔类StringTokenizer(出于兼容性的原因而被保留的遗留类,不鼓励使用,建议使用split()方法)
线程安全的可变字符串类StringBuffer
可变的字符串StringBuilder(它与StringBuffer类似,只是不是线程安全的,当我们不需要把字符串用于多线程时,使用它的效率要高于StringBuffer)
8.4 java日期处理类
日期类Date
日期转换成字符串:String format(Date date);
字符串转换成日常:Date parse(String source);
日历类Calender
8.5 数字处理类
数学函数类Math
绝对值函数:static int abs(int a); //也可以是为Double 、float、long取绝对值
最大最小值函数:static int max(int a,int b);
static int min(int a,int b); //也可以是为Double 、float、long比较
取整函数、弦与切函数、幂与开方函数、对数函数、角度函数、随机函数、
8.6 随机数类Random
已使用 Microsoft OneNote 2016 创建。
已使用 Microsoft OneNote 2016 创建。
