day15
1. 第十四天回顾
字符串缓冲区Buffer,Builder 构造,append delete setCharAt insert reverse toString
Buffer安全,速度慢,Builder不安全,速度快
基本数据类型包装类, Integer 方法 static parseInt(字符串) 转成基本类型,可以数学计算
自动装箱和拆箱:原理,装箱基本==>对象 拆箱 对象 ==> 基本
正则表达式: String matches split replaceAll 字符类的写法,数量词 \\
查找功能实现步骤 Pattern compile mathcer Mather find group
2. 第十五天学习内容:日期Date类,格式化DateFormat SimpleDateFormat。日历 Calendar类。Math类的一部分,大数据运算BigInteger,BigDecimal。数组,选择排序,冒泡冒泡排序,折半查找法,数组工具类Arrays。 System类,Runtime类
3. Date类,日期类
日期和时间也是对象,描述类,java.util.Date描述时间和日期
构造方法中:两个可以使用
Date()空参数的,获取就是操作系统的时间和日期
Date(long l)传递long参数,传递毫秒值,返回这个毫秒值对应的那个时间和日期 System.currentTimeMillis()
Date类的中的没有过时的方法
getTime() 返回long型参数,结果是Date对象日期对应的毫秒值。获取当前系统毫秒值,System. currentTimeMillis() Date 类的方法getTime()
setTime(long )传递毫秒值,将日期设置到指定毫秒值,构造方法的意义接近
小结:日期对象和毫秒值之间的转换:日期对象转成毫秒值,System,Date方法getTime. 毫秒值转成日期对象,setTime 构造方法
boolean after(Date d)测试,当前日期是不是在参数指定的日期之后,如果是返回真
boolean before(Date d) 测试,当前日期是不是在参数指定的日期之前,如果是返回真
4. 日期的格式化
显示的日期,变成国人习惯看到的日期
java.text.DateFormat 日期格式化,是抽象类,不能实例化对象
方法 String format(Date d)传递一个日期对象,格式化后变成String
DateFormat的子类SimpleDateFromat
子类构造器中,传递一个模式,日期的格式化模式 2000年01月01日
模式怎么写,看文档
调用父类方法format传递日期对象,返回String
5. 日期的风格化
直接使用父类DateFormat来实现,抽象类,不能创建,使用静态方法,返回的就是他子类对象,直接父类引用,形成多态。
如果风格化只需要日期,static getDateInstance(int 日期风格)
如果风格化需要日期和时间,static getDateTimeInstance(int 日期风格, int 时间风格)
DateFormat类中,提供静态常量,直接类名调用 LONG SHORT
调用DateFormat类的方法format(Date d)
6. 字符串转成日期对象
日期是一种对象,字符串String另一种对象,将String-->Date
凡是用户的输入,全部是字符串。
需要DateFormat类的方法,Date parse(String s)
7. 日期的练习
用户输入2个日期,计算两个日期相差多少天
输入: Scanner 类方法 String nextLine()
两个字符串,转成日期对象Date
两个日期转成毫秒值
8. 日历类 Calendar
从JDK1.1开始,很多Date类的中的方法,被日历类取代
java.util.Calendar,描述日历类的对象
日历字段:年,月,日
直接使用静态方法getInstance获取日历类对象,子类对象
int get(int field)传递一个日历字段,返回的就是字段对应的具体数字
日历字段的写法,参照文档
9. Calendar类的其他方法
set方法设置日历,如果不设置,日历就是操作系统上的日历
set(int field,int value)第一个参数,设置的日历字段,第二个参数具体的数值
set(int year,int month,int day)设置日历,写具体数字 年月日
setTime(Date d)日历设置为Date对象指定的日期
setTimeInMillis(long millis) 设置日历为指定的毫秒值
日历的偏移量 void add方法,对日历中的某一个字段,进行偏移
void add(int 日历字段,int 数据)
10. 日历小练习
计算一个年是不是闰年,这一年的3月1日,向前偏移1天,是29是闰年
保质期的计算,生成日期是2014年1月19日,保质期186天
11. 数组的排序
在数组中,按照小到大的排序,升序排列
选择排序,冒泡排序,快速排序,插入排序,希尔排序
选择排序的原理:数组中的下标,从0开始,和后面的下标比较换位置
冒泡排序的原理:数组中相邻的两个位置,比较换位
12. 数组折半查找
已知一个数组,找一个数据,在不在数组中,如果在,返回数组所在的下标,如果不在返回负数。
如果遍历数组,一个个的找,性能底下,折半查找,提高查找效率
每次查找,减少一半的数组元素。前提是数组必须有序排列。
如果是无序数组,可以使用折半查找法,但是查找结果不保证正确
如果日后遇到这上述情况,拿到一个数组,需要查找,但是数组是无序排列,不能使用折半。不能排序 {3,1,5,8,9}
13. 数组工具类
工具类中方法都是静态,数组的工具类java.util.Arrays类
Arrays类的方法
sort数组的排序,升序排序,面试考试千万别写
int binarySearch(数组,关键字)数组的折半查找,找不到返回 -插入点-1
static String toString(数组)将数组变成字符串,不是重写Object类的
14. Math类
数学计算类,方法都是进行数学计算的
伪随机数 random()返回double 0.0-1.0
绝对值 abs()
ceil(double d)获取大于等于该参数的最小整数
floor(double d)获取小于等于该参数的最大整数
pow(double x,double y)计算x的y次方
round(double d)四舍五入,计算方式是 参数+0.5后的结果
15. 大数据运算
超级大数,四则运算,使用大数据的运算类实现
java.math BigInteger BigDecimal + - * /采用方法实现
BigInteger类
构造方法,传递字符串,字符串是数字格式,没有位数限制
大数据加法运算返回值,BigInteger add(BigInteger big)
大数据减法运算返回值,BigInteger subtract(BigInteger big)
大数据乘法运算返回值,BigInteger multiply(BigInteger big)
大数据除法运算返回值,BigInteger divide(BigInteger big)
BigDecimal类
构造方法,传递字符串,数字格式,可以写浮点,没有位数限制
加法,减法,乘法,和BigInteger类一模一样
大数据除法运算带浮点返回值 BigDecimal divide(BigDecimal对象,保留几位,摄入模式) 舍入模式在类的静态常量
ROUND_UP 向上加1
ROUND_HALF_UP 四舍五入
ROUND_DOWN 直接舍去
ROUND_HALF_DOWN 向下+1
16. System
System.in .out
gc()运行垃圾回收器
exit(0)终止JVM的运行
currentTimeMillis()返回1970的毫秒值
getPropeties()返回操作系统的属性
17. Runtime
使用静态方法getRuntime()获取Runtime类的对象,不能自己new
调用方法exec(String s)
|
|