常用类

常用类包括:

Object 、String 、StringBuffer、StringBuilder、StringUtils、
System、Runtime 、Math 、Date、Calendar、File、Random ...

1.Object

Class Object是类Object结构的根。 每个班都有Object作为超类。 所有对象(包括数组)都实现了这个类的方法。

1.equals():比较两个对象是否相等

2.getClass():获取任意对象运行时的所属字节码文件对象

3.hashCode():返回对象的哈希码值

4.toString():将对象变成字符串 默认返回的格式: 类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 为了对象对应的字符串内容有意义 可以通过复写 建立该类对象自己特有的字符串表现形式

5.finalize():当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象

6.notify():唤醒正在睡眠的线程

7.notifyAll():唤醒所有睡眠的线程

8.wait():等待线程

2.String

String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享

3.StringBuffer、StringBuilder

StringBuffer和StringBuilder都是可变字符串,区别在于StringBuffer是线程安全的而StringBuilder是不安全的但是效率比StringBuffer要高

4.StringUtils

StringUtils是操作String的工具类具体方法:

1.abbreviate():缩写一段文字

StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."

2.isBlank()、isEmpty():判断是否为空
区别isBlank 如果当前文字中全是空格或者是null 返回true 如果里面存在文字返回flase。isEmpty如果存在多个空格返回flase

        String str1 = "   ";
        //true
        boolean blank = StringUtils.isBlank(str1);
        //false
        boolean empty = StringUtils.isEmpty(str1);

3.trim()、trimToEmpty()、stripToNull():

去除空格


4.join():用于关联列表String

 List<String> strings = new ArrayList<>();
    strings.add("1");
    strings.add("2");
    strings.add("3");
    //结果1-2-3
    System.out.println(StringUtils.join(strings,"-"));


5.System(系统类)

System类包含几个有用的类字段和方法。 它不能被实例化。
System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

1.gc(): 通知系统回收垃圾

2.exit():终止线程
3.currentTimeMillis():获得当前系统毫秒值
4.in、out、error() 用于打印输出

6.Runtime(运行时环境类)

java.lang.Runtime
类中没有构造方法 不能创建对象
但是有非静态方法 说明该类中应该定义好了对象 并可以通过一个static方法获取这个对象 用这个对象来调用非静态方法 这个方法就是 static Runtime getRuntime(); (单例设计模式)

  Runtime runtime = Runtime.getRuntime();
        //打开记事本
        runtime.exec("C:\\Windows\\notepad.exe");
        //虚拟机最大存储空间
        runtime.maxMemory();
        //虚拟机空闲存储空间大小
        runtime.freeMemory();
        //虚拟机内存总量
        runtime.totalMemory();

7.Math(数学算数类)

        //求绝对值
        Math.abs(10.1);
        //向上取整
        Math.ceil(10.6);
        //向下取整
        Math.floor(10.4);
        //最大值
        Math.max(2, 5);
        //最小值
        Math.min(1, 7);
        //随机数
        Math.random();

8.Date(时间类)

1.after():测试此日期是否在指定日期之后。

2.before():测试此日期是否在指定日期之前。

3.getTime():获得当前时间毫秒值

4.setTime():设置毫秒值

9.Calendar(日历类)

从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现(Date的一些方法都过时了)。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些

1.add():根据日历的规则,将指定的时间量添加或减去给定的日历字段

//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
 cal.add(Calendar.DATE,-1);
//获得昨天的时间是  2019-04-19
 System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));

2.set():设置日历字段中的值

//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//设置月份为11 月 MONTH 0~11
cal.set(Calendar.MONTH,10);
//设置时间为2019-11-11
cal.set(2019,10,11);



3.get():获得指定的年月日时分秒

 //当前时间是2019-04-20
 Calendar cal = Calendar.getInstance();
//获得年
cal.get(Calendar.YEAR);
//获得月
cal.get(Calendar.MARCH);
//获得天
cal.get(Calendar.DATE);
//获得小时
cal.get(Calendar.HOUR);



4.getTime():转换成date对象

5.setTime():设置当前时间

6.getMaximum()、getActualMaximum():getActualMaximum 返回实际的最大数值,getMaximum 返回的是可能的最大数值。

//当前时间是2019-04-20
Calendar cal = Calendar.getInstance();
//获得有可能的最大值 31
cal.getMaximum(Calendar.DATE);
//获得当月的最大天数 30
cal.getActualMaximum(Calendar.DATE);

练习

//当前时间是2019-04-20
        Calendar cal = Calendar.getInstance();
        //获得后10天
        /*for (int i = 0; i < 12; i++) {
            cal.add(Calendar.DATE,+1);
            System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
        }*/
        //获得当月最大天数
        int actualMaximum = cal.getActualMaximum(Calendar.DATE);
        System.out.println(actualMaximum);
        //设置日历当月的从第一个月开始
        cal.set(Calendar.DATE,0);
        for (int i = 1; i <= actualMaximum; i++) {
            cal.add(Calendar.DATE,+1);
            System.out.println(SIMPLE_DATE_FORMAT.format(cal.getTime()));
        }

10.Random(随机数)


 Random random = new Random();
        //随机Double
        random.nextDouble();
        //随机int
        random.nextInt();
        //随机long
        random.nextLong();
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容