java-System math Date other类
实例1:Math
/*
Math 数学类, 主要是提供了很多的数学公式。
abs(double a) 获取绝对值
ceil(double a) 向上取整
floor(double a) 向下取整
round(float a) 四舍五入
random() 产生一个随机数. 大于等于 0.0 且小于 1.0 的伪随机 double 值
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Math.E);//比任何其他值都更接近 e(即自然对数的底数)的 double 值。
System.out.println(Math.PI);//比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
/*
* 1.abs绝对值函数
* 对各种数据类型求绝对值
*/
System.out.println(Math.abs(-10));//输出10
/*
* 2.三角函数与反三角函数
* cos求余弦
* sin求正弦
* tan求正切
* acos求反余弦
* asin求反正弦
* atan求反正切
* atan2(y,x)求向量(x,y)与x轴夹角
*/
System.out.println(Math.acos(-1.0));//输出圆周率3.14...
System.out.println(Math.atan2(1.0, 1.0));//输出 π/4 的小数值
/*
* 3.开根号
* cbrt(x)开立方
* sqrt(x)开平方
* hypot(x,y)求sqrt(x*x+y*y)在求两点间距离时有用sqrt((x1-x2)^2+(y1-y2)^2)
*/
System.out.println(Math.sqrt(4.0));//输出2.0
System.out.println(Math.cbrt(8.0));//输出2.0
System.out.println(Math.hypot(3.0, 4.0));//输出5.0
/*
* 4.最值
* max(a,b)求最大值
* min(a,b)求最小值
*/
System.out.println(Math.max(1, 2));//输出2
System.out.println(Math.min(1.9, -0.2));//输出-0.2
/*
* 5.对数
* log(a) a的自然对数(底数是e)
* log10(a) a 的底数为10的对数
* log1p(a) a+1的自然对数
* 值得注意的是,前面其他函数都有重载,对数运算的函数只能传double型数据并返回double型数据
*/
System.out.println(Math.log(Math.E));//输出1.0
System.out.println(Math.log10(10));//输出1.0
System.out.println(Math.log1p(Math.E-1.0));//输出1.0
/*
* 6.幂
* exp(x) 返回e^x的值
* expm1(x) 返回e^x - 1的值
* pow(x,y) 返回x^y的值
* 这里可用的数据类型也只有double型
*/
System.out.println(Math.exp(2));//输出E^2的值
System.out.println(Math.pow(2.0, 3.0));//输出8.0
/*
* 7.随机数
* random()返回[0.0,1.0)之间的double值
* 这个产生的随机数其实可以通过*x控制
* 比如(int)(random*100)后可以得到[0,100)之间的整数
*/
System.out.println((int)(Math.random()*100));//输出[0,100)间的随机数
/*
* 8.转换
* toDegrees(a) 弧度换角度
* toRadians(a) 角度换弧度
*/
System.out.println(Math.toDegrees(Math.PI));//输出180.0
System.out.println(Math.toRadians(180));//输出 π 的值
/*
* 9.其他
*/
//copySign(x,y) 返回 用y的符号取代x的符号后新的x值
System.out.println(Math.copySign(-1.0, 2.0));//输出1.0
System.out.println(Math.copySign(2.0, -1.0));//输出-2.0
//ceil(a) 返回大于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
//可以通过强制转换将类型换成整型
System.out.println(Math.ceil(1.3443));//输出2.0
System.out.println((int)Math.ceil(1.3443));//输出2
//floor(a) 返回小于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)
System.out.println(Math.floor(1.3443));//输出1.0
//rint(a) 返回最接近a的整数的double值
System.out.println(Math.rint(1.2));//输出1.0
System.out.println(Math.rint(1.8));//输出2.0
//nextAfter(a,b) 返回(a,b)或(b,a)间与a相邻的浮点数 b可以比a小
System.out.println(Math.nextAfter(1.2, 2.7));//输出1.2000000000000002
System.out.println(Math.nextAfter(1.2, -1));//输出1.1999999999999997
//所以这里的b是控制条件
//nextUp(a) 返回比a大一点点的浮点数
System.out.println(Math.nextUp(1.2));//输出1.2000000000000002
//nextDown(a) 返回比a小一点点的浮点数
System.out.println(Math.nextDown(1.2));//输出1.1999999999999997
}
}
public class Demo4 {
public static void main(String[] args) {
System.out.println("绝对值:"+Math.abs(-3));
System.out.println("向上取整:"+Math.ceil(3.14));
System.out.println("向下取整:"+Math.floor(-3.14)); //
System.out.println("四舍五入:"+Math.round(3.54));
System.out.println("随机数:"+Math.random());
}
}
实例2:System
import java.util.Arrays;
import java.util.Properties;
/*
System 系统类 主要用于获取系统的属性数据。
System类常用的方法:
arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 一般
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
currentTimeMillis() 获取当前系统系统。 重点
exit(int status) 退出jvm 如果参数是0表示正常退出jvm,非0表示异常退出jvm。 一般
gc() 建议jvm赶快启动垃圾回收期回收垃圾。
getenv(String name) 根据环境变量的名字获取环境变量。
getProperty(key)
finalize() 如果一个对象被垃圾回收 器回收的时候,会先调用对象的finalize()方法。
*/
class Person{
String name;
public Person(String name) {
this.name = name;
}
@Override
public void finalize() throws Throwable {
super.finalize();
System.out.println(this.name+"被回收了..");
}
}
public class Demo1 {
public static void main(String[] args) {
/*
int[] srcArr = {10,12,14,16,19};
//把srcArr的数组元素拷贝 到destArr数组中。
int[] destArr = new int[4];
System.arraycopy(srcArr, 1, destArr, 0,4);
//System.exit(0); //jvm退出.. 注意: 0或者非0的 数据都可以退出jvm。对于用户而言没有任何区别。
System.out.println("目标数组的元素:"+ Arrays.toString(destArr)); // 0 14 16 0
System.out.println("当前的系统时间:" + System.currentTimeMillis());
System.out.println("环境变量:"+System.getenv("JAVA_HOME"));
for(int i = 0 ; i<4; i++){
new Person("狗娃"+i);
System.gc(); //建议马上启动垃圾回收期
}
Properties properties = System.getProperties(); //获取系统的所有属性。
properties.list(System.out);
*/
String value = System.getProperty("os.name");//根据系统的属性名获取对应的属性值
System.out.println("当前系统:"+value);
}
}
实例3:
import java.io.IOException;
import javax.management.RuntimeErrorException;
/*
RunTime 该类类主要代表了应用程序运行的环境。
getRuntime() 返回当前应用程序的运行环境对象。
exec(String command) 根据指定的路径执行对应的可执行文件。
freeMemory() 返回 Java 虚拟机中的空闲内存量。。 以字节为单位
maxMemory() 返回 Java 虚拟机试图使用的最大内存量。
totalMemory() 返回 Java 虚拟机中的内存总量
*/
public class Demo2 {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime runtime = Runtime.getRuntime();
// Process process = runtime.exec("C:\\Windows\\notepad.exe");
// Thread.sleep(3000); //让当前程序停止3秒。
// process.destroy();
System.out.println(" Java虚拟机中的空闲内存量。"+runtime.freeMemory());
System.out.println("Java 虚拟机试图使用的最大内存量:"+ runtime.maxMemory());
System.out.println("返回 Java 虚拟机中的内存总量:"+ runtime.totalMemory());
}
}
实例4:Date
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/*
日期类 Date
Calendar
日期格式化类 SimpleDateFormat
*/
public class Demo3 {
public static void main(String[] args) throws ParseException {
/*Date date = new Date(); // 获取当前的系统时间
System.out.println("年份:"+ date.getYear());*/
/*
Calendar calendar = Calendar.getInstance(); //获取当前的系统时间。
System.out.println("年:"+ calendar.get(Calendar.YEAR));
System.out.println("月:"+ (calendar.get(Calendar.MONTH)+1));
System.out.println("日:"+ calendar.get(Calendar.DATE));
System.out.println("时:"+ calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+ calendar.get(Calendar.MINUTE));
System.out.println("秒:"+ calendar.get(Calendar.SECOND));
// 显示 当前系统时间: 2014年12月26日 xx时xx分xx秒
* 日期格式化类 SimpleDateFormat
* 作用1: 可以把日期转换转指定格式的字符串 format()
* 作用2: 可以把一个 字符转换成对应的日期。 parse() 生日
*
*/
Date date = new Date(); //获取当前的系统时间。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss") ; //使用了默认的格式创建了一个日期格式化对象。
String time = dateFormat.format(date); //可以把日期转换转指定格式的字符串
System.out.println("当前的系统时间:"+ time);
String birthday = "2000年12月26日 11:29:08";
Date date2 = dateFormat.parse(birthday); //注意: 指定的字符串格式必须要与SimpleDateFormat的模式要一致。
System.out.println(date2);
Date date21 =new Date();
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time2 =dateFormat.format(date21);
String time21=dateFormat.format(date);
System.out.println("当前的系统时间:"+time);
String birthday1= "2000年12月26日 11:28:08";
Date date22=dateFormat.parse(birthday1);
System.out.println(date22);
}
}