java程序员从笨鸟到菜鸟之(二十)常用类Math和System

Math

  Math类提供了一些数学计算的常用方法
  常用的成员方法
  1---public static int abs(int a):绝对值
  2---public static double ceil(double a):向上取整(单词记忆)
  3---public static double floor(double a):向下取整(单词记忆)
  4---public static double max(double a,double b):获取最大值
  5---public static double min(double a,double b):获取最小值
  6---public static double pow(double a,double b):a的b次幂,常用2,3次幂
  8---public static double random():[0.0,1.0)之间的随机数(重要)
  9---public static long round(double a):四舍五入,比较特殊----返回值类型----long
  10-public static double sqrt(double a):一个数的正平方跟
 注意:返回值类型
 补充:关于静态导入

JDK5.0以后的新特性,可以直接导入到方法,如果自己定义的静态方法与导入的静态重名,静态方法(系统)必须加前缀

实例1

package org.westos.math;

import java.util.Scanner;


public class MathDemo {
	public static void main(String[] args) {
		
		System.out.println(Math.abs(-100));
		System.out.println(java.lang.Math.abs(-100));
		System.out.println(java.lang.Math.abs(-100));
		
		//public static double ceil(double a):向上取整
		System.out.println("ceil:"+Math.ceil(12.34));
		System.out.println("ceil:"+Math.ceil(12.54));
		
		//public static double floor(double a):向下取整	
		System.out.println("floor:"+Math.floor(12.34));
		System.out.println("floor:"+Math.floor(12.56));
		
		public static double max(double a,double b):获取最大值
		System.out.println("max:"+Math.max(Math.max(10,20),30));
		
		//public static double pow(double a,double b):a的b次幂
		System.out.println("pow:"+Math.pow(2, 3));
		
		//public static long round(double a):四舍五入
		System.out.println("round:"+Math.round(12.56));
		
		//public static double sqrt(double a):一个数的正平方跟
		System.out.println("sqrt:"+Math.sqrt(4));
		
	}
	
}

System

  特点:该类没有构造方法,所以字段和成员方法都用静态修饰
  常用的两个字段
  inout都和流有关系-----java.io...(此包下)
  PrintStream(字节打印流) ps = System.out ---标准输出流
  输出的是PrintWriter(字符打印流)类型
  InputStream in =  System.in;标准输入流
  常用的成员方法
   1---public static void gc()---运行垃圾回收器
   调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存,最终调用的就是重写之后finalize()回收不用的对象!
   2---public static void exit(int status)

   功能:终止当前正在运行的Java 虚拟机

   说明:参数用作状态码,根据惯例---非 0 的状态码表示异常终止
   3---public static long currentTimeMillis():返回当前的时间毫秒值
实例2   Person类

package org.westos.system_01;

public class Person {
	// 成员变量
	private String name;
	private int age;

	public Person() {
		super();
	}

	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}

	// 重写Object中的finalize()方法
	@Override
	protected void finalize() throws Throwable {
		System.out.println("当前垃圾回收器需要回收不用对象了" + this);//this代表着创建的Person对象
		super.finalize();
	}

}
测试类   gc()方法
package org.westos.system_01;

import java.util.Scanner;

public class SystemDemo {
	
	public static void main(String[] args) {
		
		//创建Person类对象
		Person p = new Person("高圆圆", 27) ;
		System.out.println(p);
		
		p = null ; //当前Person变成空了,没有更多的引用了(了解垃圾回收机制的机理,何时回收?)
		
		//启动垃圾回收器---gc(),通过源码可以看出---其实是调用了finalize()方法;通过重写finalize()方法来说明调用了finalize()方法
		System.gc() ;//当前垃圾回收器需要回收不用对象了Person,重写了finalize()看回收的内容
		
	}
}
实例3   exit()和currentTiimeMillis()方法
package org.westos.system_02;

public class SystemDemo {
	public static void main(String[] args) {
		
		//currentTiimeMillis():单独使用没意义
		//需求:计算某一个应用程序的耗时的毫秒数
		long start = System.currentTimeMillis();//当前时间
		//for循环
		for(int x = 0 ; x <100000;x ++){
			x++;
		}
		
		long end = System.currentTimeMillis() ;//程序运行后时间
		
		System.out.println("当前for循环语句共耗时:"+(end-start)+"毫秒");//前for循环语句共耗时:4628毫秒
		System.out.println("我们喜欢高圆圆...");
		/*
		 * 调用exit()方法
		 * 说明:JVM已经退出了,程序就退出,不再执行后面程序;
		 * 注:JVM还可结束循环语句;
		 * */
		System.exit(0) ;
		System.out.println("我是谁?好迷茫...");
 	}
}
  4---public static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length)
  功能:指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

        参数:src             源数组对象; 
                    srcPos      源数组指定位置; 
                    dest           目标数组对象;
                    destPos    目标数组的位置
                    length        复制长度;

实例4  arraycopy()

package org.westos.system_02;

import java.util.Arrays;

/**
 * System里面的常用的成员方法:
 * public static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length)
 * 功能:从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
 * 形参: 1---Object src---源数组的对象
 *        2---int srcPos---源数组要复制的起始位置
 *        3---Object dest--目标数组对象
 *        4---int destPos--目标数组的放置的起始位置
 *        5---int length---复制的长度
 * 注意:src和dest都必须是同类型或者可以进行转换类型的数组,其中改变的是目标数组arr2,源数组arr1不变
 * 返回值类型:void
 * 
 * @author Orange
 */
public class SystemDemo2 {
	
	public static void main(String[] args) {
		//定义两数组,静态初始化
		int[] arr1 = {11,22,33,44,55,66} ;
		int[] arr2 = {3,4,5,6,7,8,9} ;
		
		//复制数组
		System.arraycopy(arr1, 2, arr2, 1, 2) ;
		
		//分别将arr1 和arr2数组以字符串形式显示出来
		System.out.println("arr1:"+Arrays.toString(arr1));//以字符串的形式输出(拼接"[")
		System.out.println("arr2:"+Arrays.toString(arr2));
		/**
		 * arr1:[11, 22, 33, 44, 55, 66]
		 * arr2:[3, 33, 44, 6, 7, 8, 9]
		 */
	}
}


相关链接:1---点击打开链接

                    2---点击打开链接

                    3--- 点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值