Javase_1.3API

Java 1.3 基础API

lang是language的缩写。

只有java.lang包内不需要导包,别的包内都需要导。

Scanner:Util

因为Scanner是Util包(utility)所以需要import

import java.util.Scanner;

Scanner的重载中没有无参构造方法。

一般使用system.in 代表从键盘输入:

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String str = sc.next(); //String是next方法

scanner.next();以空白字符结束的String:’ ‘,’\t’,’\f’,’\r’,’\n’

可以使用nextLine读取输入,包括单词之间的空格和除回车以外的所有符号 。

在文件读取时,使用nextLine收尾,因为win10是以\r\n结尾的,nextline可以丢弃当前的输入行。

Random:Util

需要导入

计算的是左闭右开区间,[0,1)

public class DemoRandom{
    public static void main(String[] args){
    	Random r = new Random();
    	int num = r.nextInt(3);//[0,3),即0到2三个数
    }
}
Scanner,Random猜数:
package api;

import java.util.Random;
import java.util.Scanner;

public class scan {
    public static void main(String[] args) {
        Random r = new Random();
        int randomNum = r.nextInt(100)+1;
        System.out.println("please guess");
        Scanner sc = new Scanner(System.in);
        int i = 0;
        while(true){
            i++;
            int guessNum = sc.nextInt();
            if(guessNum > randomNum){
                System.out.println("大了");
            }else if (guessNum < randomNum){
                System.out.println("小了");
            }else{
                System.out.println("game over");
                System.out.println("try"+i+"times");
                break;
            }
        }
    }
}

Math工具类:

public static double abs(double num);//获取绝对值。有多种重载。
public static double ceil(double num);//向上取整。
public static double floor(double num);//向下取整。
public static long round(double num);//四舍五入。
Math.pow(a,b)//a的b次方
Math.max.min.abs();

DATE类:

很多都过时了。

import java.util.Date;

public class Demo01Date {
    public static void main(String[] args) {
        // 创建日期对象,把当前的时间
        System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2018
        // 创建日期对象,把当前的毫秒值转成日期对象
        System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970
    }
}

public long getTime() 把日期对象转换成对应的时间毫秒值。

DateFormat类:

抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat

SimpleDateFormat子类可以使用构造方法:

public SimpleDateFormat(String pattern)

常用的格式规则为:

标识字母(区分大小写)含义
y
M
d
H
m
s

如:DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

常用方法:
  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。

Calendar类:

在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象。

Calendar cal = Calendar.getInstance();

常用方法:
  • public int get(int field):返回给定日历字段的值。

  • public void set(int field, int value):将给定的日历字段设置为给定值。其中在Calendar类中,月份的表示是以0-11代表1-12月。

  • public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。

  • public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

    // 使用add方法
    cal.add(Calendar.DAY_OF_MONTH, 2); // 加2天
    cal.add(Calendar.YEAR, -3); // 减3年
    
    Calendar cal = Calendar.getInstance();
    Date date = cal.getTime();
    System.out.println(date); // Tue Jan 16 00:00:00 CST 2020
    

System类:

获取程序运行时间

毫秒级
long startTime = System.currentTimeMillis();    //获取开始时间

doSomething();    //测试的代码段

long endTime = System.currentTimeMillis();    //获取结束时间

System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); 
第二种是以纳秒为单位计算的。
long startTime=System.nanoTime();   //获取开始时间  

doSomeThing(); //测试的代码段  

long endTime=System.nanoTime(); //获取结束时间  

System.out.println("程序运行时间: "+(endTime-startTime)+"ns"); 

arraycopy方法

  • public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。

数组的拷贝动作是系统级的,性能很高System.arraycopy方法具有5个参数,含义分别为:

参数序号参数名称参数类型参数含义
1srcObject源数组
2srcPosint源数组索引起始位置
3destObject目标数组
4destPosint目标数组索引起始位置
5lengthint复制元素个数

应用:

显示当前时间,并输出花费时间

long time = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
-doing something
System.out.println(sdf.format(cal.getTime())+", 用时:" + (System.currentTimeMillis() - time)/1000);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值