java程序员从笨鸟到菜鸟之(二十)常用类Math和System
来源:互联网 发布:ubuntu route设置 编辑:程序博客网 时间:2024/05/15 07:51
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
特点:该类没有构造方法,所以字段和成员方法都用静态修饰
常用的两个字段:
in 、out都和流有关系-----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;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}// 重写Object中的finalize()方法@Overrideprotected 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---点击打开链接- java程序员从笨鸟到菜鸟之(二十)常用类Math和System
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- Java程序员从笨鸟到菜鸟之(二十)jsp自定义标签
- java程序员从笨鸟到菜鸟之(十八)常用类Arrays和BigDecimal
- java程序员从笨鸟到菜鸟之(十九)常用类Calendar和Date
- java程序员从笨鸟到菜鸟之(十)形式参数和返回值问题
- Java程序员从笨鸟到菜鸟之(二十六)XML之DOM和SAX解析
- Java程序员从笨鸟到菜鸟之(二十七)XML之Jdom和DOM4J解析 .
- Java程序员从笨鸟到菜鸟之(二十六)XML之DOM和SAX解析
- Java程序员从笨鸟到菜鸟之(二十七)XML之Jdom和DOM4J解析 .
- Java程序员从笨鸟到菜鸟之(二十六)XML之DOM和SAX解析
- Java程序员从笨鸟到菜鸟之(二十七)XML之Jdom和DOM4J解析 .
- java程序员从笨鸟到菜鸟之(二十八)集合TreeSet排序之compareTo和compare方法
- Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解
- Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解
- Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解
- Spring 5.0 注解配置bean 04
- JAVA多线程常见面试问题解析
- 网络编程_进程间通信_管道
- BAT常见面试问题解析之java多线程「第二弹」
- Java中的I/O
- java程序员从笨鸟到菜鸟之(二十)常用类Math和System
- 对Linux学习的看法
- Java并发编程:深入剖析ThreadLocal
- 阶层1
- 关于Python里面协程的一些理解
- ChibiOS/RT移植到STM32F407
- Codeforces 770D Draw Brackets! 模拟+中缀表达式
- LeetCode #718 Maximum Length of Repeated Subarray
- 20171104-程序员的自我修养