叨逼叨两句

  1. 不容易,白天被叫去帮忙,不得已晚上来挑灯夜战,熬到2点,总算完成任务了。
  2. 我打算下周开始换一个更新时间,每次把deadline设置为晚上12点,都会接近或者超过这个时间,之后改成中午12点为警戒线,晚上6点为deadline,这样可以倒逼自己的身体去早点完成任务,不至于晚上熬夜影响第二天的工作学习。

14-(13-21):常用类

System

  1. public static void gc():提醒垃圾回收器执行finalize()方法回收垃圾。【finalize()方法不能由程序员手动调用,只能由垃圾回收器来调用】


    package com.test.regex; public class Demo14 {
    public static void main(String[] args) {
    for(int i = 0; i < 1000; i++){
    new Demo();
    System.gc();
    }
    }
    } class Demo {
    public void finalize(){
    System.out.println("垃圾被清扫了");
    }
    }
  2. public static void exit(int status)

    1. 将状态码设置为0,是正常终止当前运行的JVM
    2. 将状态码设置为非0,是异常终止当前运行的JVM
        package com.test.regex;
    
    public class Demo15 {
    public static void main(String[] args) {
    System.exit(0);
    System.out.println("111111");
    }
    }
  3. public static long currentTimeMillis()

    package com.test.regex;
    
    public class Demo15 {
    public static void main(String[] args) {
    long start = System.currentTimeMillis();
    for (int i = 0; i < 1000 ; i++) {
    System.out.println(i);
    }
    long end = System.currentTimeMillis();
    System.out.println(end - start);
    }
    }
  4. public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

    package com.test.regex;
    
    public class Demo15 {
    public static void main(String[] args) {
    int[] src = {11,22,33};
    int[] dest = new int[8];
    for (int i = 0; i < dest.length; i++) {
    System.out.println(dest[i]);
    } System.arraycopy(src, 0, dest, 0, src.length);
    System.out.println("--------------"); for (int i = 0; i < dest.length; i++) {
    System.out.println(dest[i]);
    } }
    }

BigInteger

不可变的任意精度的整数

  1. public BigInteger add(BigInteger val):加
  2. public BigInteger subtract(BigInteger val):减
  3. public BigInteger multiply(BigInteger val):乘
  4. public BigInteger divide(BigInteger val):除
  5. public BigInteger[] divideAndRemainder(BigInteger val)
package com.test.regex;

import java.math.BigInteger;

public class Demo15 {
public static void main(String[] args) {
BigInteger bi1 = new BigInteger("100");
BigInteger bi2 = new BigInteger("2"); System.out.println(bi1.add(bi2)); //+
System.out.println(bi1.subtract(bi2)); //-
System.out.println(bi1.multiply(bi2)); //*
System.out.println(bi1.divide(bi2)); ///(除) BigInteger[] arr = bi1.divideAndRemainder(bi2); for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
} }
}

BigDecimal

  1. float和double类型运算时非常容易丢失精度

    package com.test.regex;
    
    public class Demo15 {
    public static void main(String[] args) {
    System.out.println(2.0-1.1);
    }
    }
  2. BigDecimal是不可变的、任意精度的有符号十进制数。
  3. 加减乘除和BigInteger相同

    package com.test.regex;
    
    import java.math.BigDecimal;
    
    public class Demo15 {
    public static void main(String[] args) { BigDecimal bd1 = new BigDecimal(2.0);
    BigDecimal bd2 = new BigDecimal(1.1);
    System.out.println(bd1.subtract(bd2)); //开发不推荐,依然不精确 BigDecimal bd3 = new BigDecimal("2.0");
    BigDecimal bd4 = new BigDecimal("1.1");
    System.out.println(bd3.subtract(bd4)); //开发推荐 BigDecimal bd5 = BigDecimal.valueOf(2.0);
    BigDecimal bd6 = BigDecimal.valueOf(1.1);
    System.out.println(bd5.subtract(bd6)); //开发推荐 }
    }

Date

  1. Date():空参构造表示当前时间。
  2. Date(long date):有参构造表示特定瞬间,精确到毫秒。
package com.test.regex;

import java.util.Date;

public class Demo15 {
public static void main(String[] args) { Date d1 = new Date();
System.out.println(d1); Date d2 = new Date(0);
System.out.println(d2); }
}
  1. public long getTime():返回毫秒数

    package com.test.regex;
    
    import java.util.Date;
    
    public class Demo15 {
    public static void main(String[] args) {
    Date d1 = new Date();
    System.out.println(d1.getTime()); //用Date对象来获取当前时间的毫秒值
    System.out.println(System.currentTimeMillis());//用System对象来获取当前时间的毫秒值
    }
    }

  1. public void setTime(long time):
package com.test.regex;

import java.util.Date;

public class Demo15 {
public static void main(String[] args) {
Date d1 = new Date();
d1.setTime(1000);
System.out.println(d1);
}
}

SimpleDateFormat

  1. DateFormat是SimpleDateFormat的父类
package com.test.regex;

import java.text.DateFormat;

public class Demo15 {
public static void main(String[] args) {
//DateFormat df = new DateFormat(); //DateFormat是抽象类,无法创建实例
DateFormat df1 = DateFormat.getDateInstance(); //相当于父类引用指向子类对象,右边的方法返回一个子类对象
}
}
  1. 将日期对象转换为时间字符串
package com.test.regex;

import java.text.SimpleDateFormat;
import java.util.Date; public class Demo15 {
public static void main(String[] args) {
Date d = new Date(); //获取当前时间对象
SimpleDateFormat sdf = new SimpleDateFormat(); //创建日期格式化类对象
System.out.println(sdf.format(d)); //17-8-10 上午1:02 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf2.format(d));//2017/08/10 01:04:53 }
}
  1. 将时间字符串转换为日期对象
package com.test.regex;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Demo15 {
public static void main(String[] args) throws ParseException {
String str = "2000年08月08日08:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
Date d = sdf.parse(str);
System.out.println(d);
}
}

练习

package com.test.regex;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Demo15 {
public static void main(String[] args) throws ParseException {
String birthday = "1990年5月21日";
String today = "2090年6月6日";
SimpleDateFormat sdf = www.rcsx.org new SimpleDateFormat("yyyy年MM月dd日");
Date d1 = sdf.parse(birthday);
Date d2 = sdf.parse(today);
long time = d2.getTime() - d1.getTime();
System.out.println(time/1000/60/60/24/365); }
}

Calendar

  1. public static Calendar getInstance()
  2. public int get(int field)
package com.test.regex;

import java.util.Calendar;

public class Demo15 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)); // 返回年
System.out.println(c.get(Calendar.MONTH)); //返回月,0代表1月
System.out.println(c.get(Calendar.DAY_OF_MONTH)); // 月中的第几天
System.out.println(c.get(Calendar.DAY_OF_WEEK)); // 一周的第几天,周日是1
System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+
"日"+getWeek(c.get(Calendar.DAY_OF_WEEK)));
System.out.println(c.get(Calendar.YEAR)+"年"+getNum(c.get(Calendar.MONTH)+1)+"月"+getNum(c.get(Calendar.DAY_OF_MONTH)
)+"日"+getWeek(c.get(Calendar.DAY_OF_WEEK))); } public static String getWeek(int week){
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
} public static String getNum(int num){
if(num > 9){
return "" + num;
} else {
return "0" + num;
}
} }
  1. public void add(int field,int amount)
  2. public final void set(int year,int month,int date)
package com.test.regex;

import java.util.Calendar;

public class Demo15 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
//c.add(Calendar.YEAR, -1); //对指定字段进行操作,加或者减
//c.set(Calendar.YEAR,2000); //对指定字段进行设置
c.set(2000,8,8); //年、月、日 System.out.println(c.get(Calendar.YEAR)+"年"+getNum(c.get(Calendar.MONTH)+1)+"月"+getNum(c.get(Calendar.DAY_OF_MONTH)
)+"日"+getWeek(c.get(Calendar.DAY_OF_WEEK)));
} public static String getWeek(int week){
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
} public static String getNum(int num){
if(num > 9){
return "" + num;
} else {
return "0" + num;
}
} }

练习:键盘录入任意一个年份,判断是闰年还是平年

 
package com.test.regex;

import java.util.Calendar;
import java.util.Scanner; public class Demo16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份,判断该年份是闰年还是平年:");
//int year = sc.nextInt();
String line = sc.nextLine();
int year = Integer.parseInt(line);
boolean b = getYear(year);
System.out.println(b);
} public static boolean getYear(int year) {
Calendar c = Calendar.getInstance();
c.set(year, 2,1);
c.add(Calendar.DAY_OF_MONTH, -1);
return c.get(Calendar.DAY_OF_MONTH) == 29;
}
}

【185天】黑马程序员27天视频学习笔记【Day14-下】的更多相关文章

  1. 【1天】黑马程序员27天视频学习笔记【Day02】

    02.01常量的概述和使用 * A:什么是常量    * 在程序执行的过程中其值不可以发生改变 * B:Java中常量的分类    * 字面值常量    * 自定义常量(面向对象部分讲) * C:字面 ...

  2. 【黑马程序员C++ STL】学习记录

    黑马程序员 2017 C++ STL 教程(STL 部分已完结) 基于黑马STL课程整理:黑马程序员2017C++STL教程 视频链接 专栏:本STL专栏目录 文章目录 黑马程序员 2017 C++ ...

  3. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

  4. 黑马程序员_Java基础视频-深入浅出精华版--视频列表

    \day01\avi\01.01_计算机基础(计算机概述).avi; \day01\avi\01.02_计算机基础(计算机硬件和软件概述).avi; \day01\avi\01.03_计算机基础(软件 ...

  5. 课程2:《黑马程序员_Java基础视频-深入浅出精华版》-视频列表-

    \day01\avi\01.01_计算机基础(计算机概述).avi; \day01\avi\01.02_计算机基础(计算机硬件和软件概述).avi; \day01\avi\01.03_计算机基础(软件 ...

  6. 黑马程序员_ Objective-c 内存管理笔记

    引用计数器 当一个对象被创建出来,就要分配给内存这个对象,当不用这个对象的时候,就要及时的回收,为了可以明确知道对象有没有被使用,就要用引用计数器来体现,只要计数器不为0,表明对象被使用中. 1.方法 ...

  7. 黑马程序员_ Objective-c 之Foundation笔记(二)

    NSArray NSArray的创建 NSArray *array = [NSArray arrayWithObject:@“jack”]   创建单个元素 NSArray *array3 = [NS ...

  8. 黑马程序员_ Objective-c 之Foundation笔记(一)

    结构体  NSRange: 用来表示范围 创建 NSRange r1 = {2, 4} NSRange r2 = {.location = 2, .length = 4} NSRange r3 = N ...

  9. Android程序员事件分发机制学习笔记

    通过问题来学习一个东西是很好的方法.学习Android中View的事件体系,我也通过给自己提问题,在解决问题的同时也就知道了其中原理. 首先来几个问题起步: 什么是事件?什么是事件分发机制? 在我们通 ...

随机推荐

  1. MFC CDialog/CDialogEx DoModal ALT

    Questions: I'm using MFC CDialog/CDialogEx to show a modal dialog with DoModal.usually it works with ...

  2. Swift 扩展(Extension)总结

    概要 扩展是给已经存在的类(class),结构体(structure),枚举类型(enumeration)和协议(protocol)增加新的功能.类似Objective-C中的Category,不同的 ...

  3. freebsd快速删除磁盘数据

    At the start, mark all system disks as empty. Repeat the following command for each hard drive: dd i ...

  4. SharePoint Server 2016 WEB 网站浏览器支持

    SharePoint Server 2016支持多种常用的Web浏览器,如Internet Explorer,Google Chrome,Mozilla Firefox,Apple Safari和Mi ...

  5. Mongodb之failed to create service entry worker thread

    Mongodb "failed to create service entry worker thread" 错误. 系统:CentOS release 6.8 mongod.lo ...

  6. CF Gym 100187J Deck Shuffling (dfs判连通)

    题意:给你一堆牌,和一些洗牌机,可以改变牌的顺序,问你能不能通过洗牌机把数字为x的牌洗到第一个位置. 题解:反向建边,dfs判断连通性 #include<cstdio> #include& ...

  7. springboot 测试

    本次测试使用的是springboot 中的测试 1.(对service 的测试)下面的测试.将会启动容器进行测试 @RunWith(SpringRunner.class) @SpringBootTes ...

  8. 2018.4.1 Ubuntu16.04 下配置Tomcat服务器以及设置dingshi启动

    Tomcat自启动的设置技巧 以root用户登录系统: cd /etc/rc.d/init.d/ vi tomcat #!/bin/sh # # tomcat: Start/Stop/Restart ...

  9. C++内存溢出和内存泄漏?

    1.内存溢出 内存溢出是指程序在申请内存时没有足够的内存空间供其使用.原因可能如下: (1)内存中加载的数据过于庞大: (2)代码中存在死循环: (3)递归调用太深,导致堆栈溢出等: (4)内存泄漏最 ...

  10. NOIP2016 toy

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...