常用类
这些是这种类常见的用法,具体的更多方法请参开API文档。
1.Scanner
使用Scanner类可以方便的获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器。
读取键盘输入内容:
`public static void main(String[] args) {
// System.in代表标准输入,就是键盘输入
Scanner scanner = new Scanner(System.in);
// 判断是否还有下一个数据
while (scanner.hasNext()) {
String str = scanner.next();
if ("exit".equals(str)) {
System.exit(0);// 退出当前程序 结束整个程序
}
System.out.println("键盘输入的内容是:" + str);
}
}`
2.System类
public static void main(String[] args) {
// System.out.println("hello Jack");
// System.err.println("hello java");
//得到当前系统的时间 以毫秒数表示
// System.out.println(System.currentTimeMillis());
String str1 =new String("hello");
String str2 =new String("hello");
System.out.println(str1==str2);
//因为String重写了hashCode 只要两个字符串的 字符序列相同 那么hashCode值就相同
System.out.println(str1.hashCode()+"-----"+str2.hashCode());
//唯一标识两个类hashCode不是的 identityHashCode
System.out.println(System.identityHashCode(str1));
System.out.println(System.identityHashCode(str2));
String str3="Java";
String str4="Java";
System.out.println(str3==str4);
System.out.println(System.identityHashCode(str3));
System.out.println(System.identityHashCode(str4));
}
3.Runtime类
Runtime类代表的java程序的运行环境,每个java程序都有与之对应的Runtime实例,应用程序与对象的运行环境进行关联。
public static void main(String[] args) throws Exception {
Runtime rt =Runtime.getRuntime();
System.out.println("处理器数量:"+rt.availableProcessors());
System.out.println("虚拟机中空闲的内存数:"+rt.freeMemory());
System.out.println("Java 虚拟机试图使用的最大内存量:"+rt.maxMemory());
System.out.println("总内存数:"+rt.totalMemory());
}
4.Math类
public static void main(String[] args) {
int a = -10, b = 30;
double c = 3.14, d = 3.93;
System.out.println(Math.abs(a));
// floor 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
System.out.println(Math.floor(c));// 3.0
System.out.println(Math.floor(d));// 4.0
// 返回最接近参数的 int。
System.out.println(Math.round(c));// 3
System.out.println(Math.round(d));// 4
double max = Math.max(c, d);
int min = Math.min(a, b);
System.out.println(max);
System.out.println(min);
System.out.println(Math.sin(Math.toRadians(30)));
//求 1-100之间的随机整数
System.out.println((int)(Math.random()*100));
}
5.Random类
Random rand = new Random();
生成随机整数:rand.nextInt()
设置随机种子数:random.setSeed(1234)
public static void main(String[] args) {
Random r =new Random();
System.out.println("取出下一个Boolean:"+r.nextBoolean());
//1-100之间的整数
System.out.println("取出下一个Int:"+r.nextInt(100));
System.out.println("-----------------------------");
Random r1 =new Random(50);
Random r1 =new Random(System.currentTimeMillis());
System.out.println(r1.nextBoolean());
System.out.println(r1.nextDouble());
System.out.println(r1.nextInt());
System.out.println("-----------------------------");
Random r2 =new Random(50);
Random r2 =new Random(System.currentTimeMillis());
System.out.println(r2.nextBoolean());
System.out.println(r2.nextDouble());
System.out.println(r2.nextInt());
}
6.BigDecimal和BigInteger
如果是对double进行运算 需要转换为BigDecimal进行精准运算
大数运算
public static void main(String[] args) {
String str1 = "2349205723005723057230672043479023472047023470144263545364544234423654264465464547664441464664642645634456643645423643664346432343248";
String str2 = "44565664546346466344663406720434790234720470234701442635453645442344236542644654645476644414646646426456344566436454236436643346346346546464348";
// 可以把大数的运算转换为BigDecimal进行运算
BigDecimal b1 = new BigDecimal(str1);
BigDecimal b2 = new BigDecimal(str2);
BigDecimal result = b1.multiply(b2);
System.out.println(result);
BigInteger bb1=new BigInteger(str1);
BigInteger bb2=new BigInteger(str2);
BigInteger re2=bb1.multiply(bb2);
System.out.println(re2);
}
简易计算器
public class Arithmetic {
// 除法默认运算精度
// private final static int DEF_DIV_SCSLE = 10;
private static final int DEF_DIV_SCSLE = 10;
public static double add(double v1 ,double v2) {
BigDecimal b1 =BigDecimal.valueOf(v1);
BigDecimal b2 =BigDecimal.valueOf(v2);
return b1.add(b2).doubleValue();
}
public static double sub(double v1 ,double v2) {
BigDecimal b1 =BigDecimal.valueOf(v1);
BigDecimal b2 =BigDecimal.valueOf(v2);
return b1.subtract(b2).doubleValue();
}
public static double mul(double v1 ,double v2) {
BigDecimal b1 =BigDecimal.valueOf(v1);
BigDecimal b2 =BigDecimal.valueOf(v2);
return b1.multiply(b2).doubleValue();
}
public static double div(double v1 ,double v2) {
BigDecimal b1 =BigDecimal.valueOf(v1);
BigDecimal b2 =BigDecimal.valueOf(v2);
return b1.divide(b2,DEF_DIV_SCSLE,BigDecimal.ROUND_HALF_UP).doubleValue();
}
public static void main(String[] args) {
System.out.println("0.05+0.01="+Arithmetic.add(0.05, 0.01));
}
}
7.Date类和Calendar类
时间日期:
Date:可以被实例化
Date date = new Date();
-》getTime() 获取当前时间的时间戳
-》getHours(),getMinutes(),getSeconds()…
SimpleDateFormat
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
format.format(date);
Calendar:不能被实例化
-》使用:
Calendar c = Calendar.getInstance();
-》Calendar.get(int field)
根据给定字段名称,获取相应时间日期信息
get(Calendar.YEAR) 获取年份
get(Calendar.MONTH) 获取月份
-》Calendar格式化输出
Calendar c = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat(“yyyy/MM/dd”);
format.format(c.getTimeInMillis())
计算自己活了多少天?
public static void main(String[] args) {
Calendar cal =Calendar.getInstance();
//1997-8-23
cal.set(1997, 7, 23);
System.out.println("到今天为止这个同学经历了"+((System.currentTimeMillis()-cal.getTimeInMillis())/1000/3600/24)+"天");
}