求数的绝对值
ceil在英语中是天花板的意思,代表向上取整
floor在英语中是地板的意思,代表向下取整
四舍五入,返回的是整数
求幂,pow(x,y)求x的y次方
public static void main(String[] args) {
System.out.println(Math.ceil(3.02));
System.out.println(Math.floor(3.9));
System.out.println(Math.abs(-3.3));
System.out.println(Math.round(3.4));
System.out.println(Math.pow(2, 3));
}
获取当前毫秒值,从计算机纪念日1970年一月一日开始算
例子:计算一下字符串拼接得效率
public static void main(String[] args) {
long start = System.currentTimeMillis();
String a = "";
for (int i = 0; i < 100000; i++) {
a = a+i;
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
用StringBuilder提升效率
public static void main(String[] args) {
long start = System.currentTimeMillis();
/*String a = "";
for (int i = 0; i < 100000; i++) {
a = a+i;
}*/
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++) {
sb.append(i);
}
String s = sb.toString();
long end = System.currentTimeMillis();
System.out.println(end - start);
}
String拼接字符串效率太低,每次都要新建一个对象,StringBuilder极大提升了效率。
System.arraycopy(原数组,原数组拷贝的起点,新数组,新数组拷贝的位置,拷贝的元素个数)
public static void main(String[] args) {
int[] oldArr = {11,22,33,44,55};
int[] newArr = new int[5];
System.arraycopy(oldArr,1,newArr,0,4);
System.out.println(Arrays.toString(newArr));
}
构造方法:BigDecimal(String val)
静态方法:valueOf(double val)
System.out.println(0.1+0.2);
回顾之前的知识,我们打印出来应该是0.3
但实际结果是
所以我们为了避免这种情况的发生,使用BigDecimal
BigDecimal add(BigDecimal b)
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
//加法
BigDecimal add = a.add(b);
System.out.println(add);
BigDecimal subtract(BigDecimal b)
//减法
BigDecimal subtract = a.subtract(b);
System.out.println(subtract);
BigDecimal multiply(BigDecimal b)
//乘法
BigDecimal multiply = a.multiply(b);
System.out.println(multiply);
//除法(除得尽,除不尽会报错)
BigDecimal divide = a.divide(b);
System.out.println(divide);
除不尽:divide(除数,保留小数位数,舍入模式枚举)
RoundingMode.HALF_UP 四舍五入
//除不尽
BigDecimal divide1 = a.divide(b, 2, RoundingMode.HALF_UP);
System.out.println(divide1);
Java是面向对象得语言,Java得设计思想是一切皆对象,而基本数据类型不是对象,于是Java为每种基本数据类型都设计了对应的类,称为包装类。
byte | Byte |
---|---|
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
重点:字符串转基本类型
public static void main(String[] args) {
String a = "6.66";
double b = Double.parseDouble(a);
System.out.println(b);
}
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
}
把时间规范化
public static void main(String[] args) {
Date date = new Date();
System.out.println(date);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
String format = simpleDateFormat.format(date);
System.out.println(format);
//指定模板
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format1 = simpleDateFormat1.format(date);
System.out.println(format1);
}
public static void main(String[] args) throws ParseException {
String str = "2022-11-3";
String str2 = "2020年12月12日 15:10:20";
//模板的格式要和转换的字符串格式一样
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd");
Date parse = simpleDateFormat.parse(str);
System.out.println(parse);
SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date date = sf.parse(str2);
System.out.println(date);
}
Date类中很多方法都过时了,而Calendar类的功能比Date强大很多,所以Java官方推荐使用Calendar来替换Date的使用。
Calender是一个抽象类,不能直接创建对象,需要通过静态的 getInstance() 方法创建子类对象。
练习
public static void main(String[] args) {
//创建对象
Calendar calendar = Calendar.getInstance();
//获取时间 get
int year = calendar.get(Calendar.YEAR);
//月份是0-11,所以要加1
int month = calendar.get(Calendar.MONTH)+1;
int day = calendar.get(Calendar.DATE);
//12小时制
//calendar.get(Calendar.HOUR);
//24小时制
int hour = calendar.get(Calendar.HOUR_OF_DAY);
//外国是周日到周六
int week = calendar.get(Calendar.DAY_OF_WEEK);
//定义一个数组来解决
String[] w = {"周日","周一","周二","周三","周四","周五","周六"};
String s = w[week - 1];
System.out.println(s);
}
set(int field,int value)
set(int year ,int month, int date)
//7天之后的日期
calendar.add(Calendar.DATE,7);
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。