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 创建。