Javaの语言基础【五】

目录:
1、常用类
--1.1. Object类
--1.2.System类
--1.3.Runtime类
--1.4.Calendar日历
--1.5.Date类
--1.6.Math
--1.7.String
--1.8.StringBuffer
--1.9.基础类型对象包装类
2、正则表达式


进击的小仙

1.常用类

1.1、Object类

Object是所有对象的直接或者间接父类,也就是上帝啦!该类中定义的肯定是所有对象都具备的功能。
Object类中提供了两个对象是否相同的比较方法
如果自定义类中也有比较相同的功能,没必要重新定义啦,只要沿袭父类中的功能,建立自己持有的比较功能即可,这就是覆盖

equals 比较的是内存地址
== 比什么是什么

1.2、System类

该类存放了很多系统级的属性和方法。
他的构造方法被private修饰,无法创建System的对象,内部提供的方法被静态修饰,可通过类名调用。

  • 成员变量
    包括in、out、err三个变量
    in :标准输入流(键盘)
    out :标准输出流(显示器)
    err :标准错误输出流(显示器)
System.out.println("Lisa niu hong hong");
  • 成员方法
    1、long currentTimeMillis();返回当前计算机时间
    2、void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);数组拷贝,原生方法,性能上比循环高效
    3、void exit (int status) ; 退出程序 ,status = 0 表示正常退出,非0表示异常退出
    4、void gc () ; 请求系统进行垃圾回收
    5、String getProperty (String key) ; 获得系统中属性名为key的属性对应的值。
    —— key的取值:
    属性名 :java.version :Java运行时环境版本
    属性名 :java.home :Java安装目录
    属性名 :os.name :操作系统的名称
    属性名 :os.version :操作系统的版本
    属性名 :user.name :用户的账户名称
    属性名 :user.home :用户的主目录
    属性名 :user.dir :用户的当前工作目录
int[] a = {1,2,3,4};
int[] b = new int[5];
System.arraycopy(a,1,b,3,2);

       b = { 0 , 0 , 0 , 2 , 3 }

String osName = System.getProperty(“os.name”);
String user = System.getProperty(“user.name”);
System.out.println(“当前操作系统是:” + osName);
System.out.println(“当前用户是:” + user);

1.3、Runtime类

Runtime代表java程序的运行时环境
对象的获取方法:Runtime runtime = Runtime.getRuntime();

  • 获取当前JVM的内存信息
  • 获取JVM可用的处理器核心的数量
  • 执行系统命令
/*
 * 获取当前jvm的内存信息,返回的值是 字节为单位
 * */
public static void getFreeMemory() {
    //获取可用内存
    long value = Runtime.getRuntime().freeMemory();
    System.out.println("可用内存为:"+value/1024/1024+"mb");
    //获取jvm的总数量,该值会不断的变化
    long  totalMemory = Runtime.getRuntime().totalMemory();
    System.out.println("全部内存为:"+totalMemory/1024/1024+"mb");
    //获取jvm 可以最大使用的内存数量,如果没有被限制 返回 Long.MAX_VALUE;
    long maxMemory = Runtime.getRuntime().maxMemory();
    System.out.println("可用最大内存为:"+maxMemory/1024/1024+"mb");
}
/*
 * 获取jvm可用的处理器核心的数量
 * */
public static void getAvailableProcessors() {
    int value = Runtime.getRuntime().availableProcessors();
    System.out.println(value);
}
    public static void commend() {
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec("calc");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

参考资料:Java-Runtime 类

1.4、Calendar日历

专门操作日期的类。
对象的获取方法: Calendar calendar = Calendar.getInstance() ;
上面获取到的对象其实是Calendar的子类,是根据不同的国家地区返回的日期子类。

public void getCalendar() {
        // 获取年
        int year = calendar.get(Calendar.YEAR);

        // 获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
        int month = calendar.get(Calendar.MONTH) + 1;

        // 获取日
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        // 获取时
        int hour = calendar.get(Calendar.HOUR);
        // int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小时表示

        // 获取分
        int minute = calendar.get(Calendar.MINUTE);

        // 获取秒
        int second = calendar.get(Calendar.SECOND);

        // 星期,英语国家星期从星期日开始计算
        int weekday = calendar.get(Calendar.DAY_OF_WEEK);

        System.out.println("现在是" + year + "年" + month + "月" + day + "日" + hour
                + "时" + minute + "分" + second + "秒" + "星期" + weekday);
    }

1.5、Date

表示特定的瞬间,精确到毫秒
对象的获取方法:

  • Date date = new Date () ;
  • Date date = new Date ( long date ):毫秒值转日期

获取毫秒值(日期转毫秒值):

  • long date = date.getTime ()

设置毫秒值:

  • date.setTime( long time);

对比时间:

  • date.before (Date when);当且仅当date表示的瞬间早于when表示的瞬间时返回true.

比较时间:

  • date.compareTo( Date when); 当date的瞬间早于when,返回负数;相等返回0;晚于when,返回正数。

1.6、Math

该类实现了基本的数学运算,如初等指数、对数、平方根、三角函数 。
ceil() :返回大于指定数据的最小整数
floor() :返回小于指定数据的最大整数
round():四舍五入
random():获取伪随机数(大于0.0且小于1.0的double值)

1.7、String

String类被final修饰,不能被继承。

  • 获取
    length() 获取长度
    charAt(index) 获取该处字符
    indexOf(char) 获取字符所在位置
    indexOf(char,fromIndex ) 从某位置开始获取字符位置
    indexOf(str)
    indexOf(str,fromIndex)
  • 判断
    contain(str)
    isEmpty()
    startsWith(str)
    endsWith(str)
    equals(str)
    equalsIngoreCase(str)
  • 转换
    toString(char[]) ; toString(char[] , offset , count) :字符数组 转 字符串
    toCharArray():字符串转数组
    toString(byte[])toString(byte[],offset,count):字节数组 转 字符串
    getBytes() :字符串 转 字节数组
    valueOf(int / double) : 字符串 转 基本数据类型
  • 替换
    replace(oldChar , newChar):替换
  • 切割
    split(regex)
  • 子串
    subString(begin)
    subString(begin,end)
  • 转换、取出空格、比较
    toUpperCase()
    toLowerCase()
    trim()
    compareTo(str)

1.8、StringBuffer

对象获取方法:StringBuffer sb = new StringBuffer( "abc" );
String获取对象 :String str = "abc" ;

  • 存储
    append()
    insert(index , 数据)
  • 删除
    delete(start ,end )
    deleteCharAt(index)
  • 获取
    charAt(index) 在此位置上的字符
    indexOf(str)
    lastIndexOf(str)
    length
    subString(start , end)
  • 修改
    replace(start ,end , str)
    setCharAt(index , char)
  • 反转
    reverse()
  • 存储指定数据到指定字符数组
    getChars(srcBegin , srcEnd ,Dst[] , dstBegin )

StringBuffer与StringBuilder对比来说,StringBuilder是线程不同步,不安全但效率高

1.9、基础类型对象包装类

byte -> Byte类
功能:与字符串之间的相互转换

  • 基本数据类型转换成字符串
    Integer.toString(34);
  • 字符串转基本数据类型
    int a = Integer.parseInt("123");
  • 进制转换
    toBinaryString(); :转二进制
    toHexString();:转十六进制
    toOctalString();:转十进制

2.正则表达式

正则表达式在线测试
正则表达式定义了字符串的模式,可以用来搜索、编辑和处理文本。描述在查找文字主体时待匹配的一个或多个字符串。将某个字符模式与所搜索的字符串进行匹配。

  • 组成:
    正则表达式由普通的字符(如字符a到z)以及特殊字符(如!、$等)组成的文字模式。

2.1、正则表达式的语法

  • 字符的取值范围 []
    [abc] :表示字符是a或b或c
    [^abc]:表示字符不能有a、b、c
    [a-zA-Z]:表示字符是字母
    [0-9]:表示字符是数字

  • 数量表达式
    . :匹配任意的字符
    \d :匹配数字
    \D :匹配非数字
    \s :匹配由空字符组成
    \S :匹配由非空字符组成
    \w :匹配由数字、字母、下划线组成
    \W :匹配由非数字、非字母、非下划线组成

  • 逻辑表达式
    ?:表示出现0次或1次
    +:表示出现1次或多次
    *:表示出现0次、1次或多次
    {n}:表示出现n次
    {n,m}:表示出现n-m次
    {n,}:表示出现n次或n次以上

  • 逻辑表达式
    XY:表示X后面跟着Y,X和Y都是正则表达式的一部分
    X|Y:表示X或Y
    (X):子表达式,X是一个整体

// 注意:
cup|t 表示cut或cup
(cup)|t 表示cup或t

2.2、匹配类:Pattern类 和Matcher

Pattern类和Matcher类是java提供来支持正则表达式的操作类。

  • Pattern类:切割字符串、给Matcher类创建实例对象。
    创建对象:Pattern p = Pattern.compile("a*b");
    切割:String[] split(CharSequence input)
  • Matcher类:验证和替换字符串
    创建对象:Pattern p = Pattern.compile("a|b");
    Matcher m = p.matcher("aabbc")
    匹配:boolean matches();
    替换:String replaceAll( newStr);

2.3、String类的匹配方法

在2.2节中说到的两个匹配类在实际开发中用的比较少,多数是直接用String类来实现的。

  • 验证 :boolean matches(String regex);
  • 拆分 :String[] split(String regex);
  • 替换 :String replace(String regex,String replacement);

参考资料:Java正则表达式的语法与示例

你可能感兴趣的:(Javaの语言基础【五】)