JavaSE之基础类库

1.Java程序入口main函数

public static void main(String[] args) {}
  • 参数列表为字符串数组,根据调用规则,谁调用谁传参,因为main()方法由JVM调用,因此args形参由JVM负责赋值,空格作为参数分割符,若参数本身包含空格,则一个将该参数用双引号括起来。

2.使用Scanner获取键盘输入

语法:Scanner scan=new Scanner(System.in);//声明Scanner类

  • System in 代表标准输入,就是键盘输入

Scanner提供获取输入的方法有:

public boolean hasNextXxx();//Xxx为想要获取的数据类型
public String next();
public Xxx nextXxx();
public String nextLine();//将此扫描仪推进到当前行并返回跳过的输入。

更改分割符:

public Scanner useDelimiter(String pattern);//不再使用空格作为分割符
 Scanner scanner=new Scanner(System.in);
        System.out.println("请输入年龄");
        //判断下一个输入是否int值
//        if(scanner.hasNextInt()){
        //接收int数据类型
//            System.out.println(scanner.nextInt());
//        }else{
//            System.out.println("输入的不是数字");
//        }

//通过while循环,直到接收到int数据为止
        while(true){
            if(scanner.hasNextInt()){
                System.out.println(scanner.nextInt());
                break;
            }else{
                System.out.println("输入的不是数字");
                //获取下一行(丢弃不符合要求的数据)
                scanner.next();
            }
        }
        scanner.close();
    }
//代替BufferedReader读取文件(从文件中获取输入)
        try (Scanner scanner = new Scanner(Paths.get("D:","TL-BITE","Test","write.txt"))) {
            scanner.useDelimiter("\n");
            while (scanner.hasNext()) {
                System.out.println(scanner.next());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

3.System类

System类代表当前Java程序的运行平台,程序不能创建System类的对象
1.“标准”错误输出流

static PrintStream err

2.“标准”输入流。

static InputStream in 

3.“标准”输出流

static PrintStream out 

4.获取指定环境变量的值

public static String getenv(String name) ;

5.确定当前的系统属性

public static Properties getProperties();

6.运行垃圾回收器

public static void gc();
//系统属性
        Properties properties = System.getProperties();
 常用的系统属性
        user.home
        user.dir
        java.home
        path.separator
        file.separator

4.Runtime类

Runtime类代表Java程序运行时环境,每个Java程序都有与之对应的Runtime实例,应用程序通过该类对象与其运行时环境相连。应用程序不能创建自己的Runtime实例,但可以通过getRuntime()方法获取与之相关连的Runtime对象。

public class RuntimeTest {
    public static void main(String[] args) {
        Runtime rt=Runtime.getRuntime();
        System.out.println("处理器数量"+rt.availableProcessors());
        System.out.println("空闲内存"+rt.freeMemory());
        System.out.println("可用最大内存数"+rt.maxMemory());
    }
}

5.JDK1.7新增Objects类

Objects工具类提供了一些工具方法来操作对象,这些工具方法大多是“空指针”安全的。当你不确定一个引用变量是否为null,就调用了Object类中的toString()方法,那么就有可能引发空指针异常,但是使用Objects提供的toString()方法不会引发异常,只会在空指针是返回null值。

扫描二维码关注公众号,回复: 5078073 查看本文章
public class ObjectsTest {
    static ObjectsTest obj;
    public static void main(String[] args) {
        System.out.println(Objects.hashCode(obj));
        System.out.println(Objects.toString(obj));
      
      //要求obj不能为null,如果为null,就会引发异常。
       System.out.println(Objects.requireNonNull(obj,"obj的参数不能是null"));
    }

6.Math类

Java中的Math类提供了像三角函数,对数运算,指数运算等复杂数学运算。Math类是一个工具类,其构造器是private的,因此无法创建Math类的实例,其中所有的方法都是静态的类方法,因此可以直接通过类名Math调用。除此之外,Math类还提供了两个常量PI和E即数学上的圆周率与e
1.三角函数类工具方法

public static void main(String[] args) {
        System.out.println("将弧度转化为角度:Math.toDegrees(1.57)\t"+Math.toDegrees(1.57));
        System.out.println("将角度转化为弧度:Math.toRadians(90)\t" + Math.toRadians(90));
        System.out.println("计算反余弦:Math.acos(1.2)\t"+Math.acos(1.2));
        System.out.println("计算反正弦:Math.asin(0.8)\t"+Math.asin(0.8));
        System.out.println("计算计算双曲正弦:Math.cosh(1.2)\t"+Math.cosh(1.2));
        System.out.println("计算计算双曲正切:Math.cosh(1.2)\t"+Math.tanh(2.1));
    }

2.取整运算

	    //向下取整
        System.out.println("Math.floor(-1.2)\t"+Math.floor(-1.2));
      
       //向上取整
        System.out.println("Math.ceil(-1.2)\t"+Math.ceil(-1.2));
      
       //四舍五入取整
        System.out.println(Math.round(2.5));

3.乘方、开方、指数运算

  		//计算平方根
        System.out.println("Math.sqrt(1.2)"+Math.sqrt(1.2));
        //计算立方根
        System.out.println("Math.cbrt(3)"+Math.cbrt(3));
        //返回(x1+x2)的平方根
        System.out.println("Math.hypot(2,3)"+Math.hypot(2,3));
        //计算底数为10的自然对数
        System.out.println("Math.log10(100)"+Math.log10(100));

4.符号运算

		 //计算绝对值
        System.out.println("Math.abs(-4.5)"+Math.abs(-4.5));
        //符号赋值,返回第二个带有浮点符号的第一个浮点参数
        System.out.println("Math.copySign(1.2,-1.0)"+Math.copySign(1.2,-1.0));
        //符号函数
        System.out.println("Math.signum(120)"+Math.signum(120));

5.大小运算

		//找出最大值
        System.out.println(Math.max(1.2,3.4));
        //计算最小值
        System.out.println(Math.min(1.2,1.3));
        //返回第一个参数和第二个参数之间与第一个参数相邻的浮点数
        System.out.println(Math.nextAfter(1.2,3));
        //返回比浮点数略大的浮点数
        System.out.println(Math.nextUp(12.2));
        //返回一个伪随机数,该值大于等于0.0且小于1.0
        System.out.println(Math.random());

7.BigDecimal类

float、double两种基本浮点类型容易引起精度丢失,尤其在进行算术运算时。
为了能精确表示,计算浮点数,Java提供了BigDecimal类,建议使用public BigDecimal(String value)的构造器,创建浮点对象。
BigDecimal类提供了add(),substract(),divide(),pow()等方法对精确浮点数进行常规算术运算。

public static void main(String[] args) {
        BigDecimal f1=new BigDecimal("0.05");
        BigDecimal f2=new BigDecimal("0.01");
        BigDecimal f3=new BigDecimal("99.793");
        System.out.println("0.05+0.01="+f1.add(f2));
       // System.out.println("0.05+0.01="+(0.05+0.01));//0.05+0.01=0.060000000000000005
        System.out.println("0.05-0.01="+f1.subtract(f2));
        System.out.println("0.05*0.01="+f1.multiply(f2));
        System.out.println("0.05/0.01="+f1.divide(f2));
    }

8.date类

date构造器:

public date();//生成一个代表当前日期的date对象
public date(long time);//根据指定的整数生成一个date对象

这个long型整数是指创建的date对象和1970年1月1日00:00:01之间的时间差,以毫秒作计时单位

public void setTime(long time);//设置该date对象的时间

8.calendar类

calendar是一个抽象类,不能直接实例化,程序只能创建calendar类的子类,如GregorianCalendar类,是我们平常用的公历。也可以提供静态方法getInstance(),获取calendar的对象。

   Calendar calendar = Calendar.getInstance();
    //从calendar对象中取出Date对象
        Date date = calendar.getTime();
        //通过Date对象获得对应的Calendar对象
        //Calendar没有相应的构造函数接收Date对象
        //所有通过setTime方法接收
        Calendar calendar2 = Calendar.getInstance();
        calendar2.setTime(date);

Calender类提供大量访问、修改日期的方法:
1.根据日历规则,为给定日历字段加上或减去指定时间量

public void add(int field,int amount)

2.使用默认时区和区域设置获取日历。

public static Calendar getInstance()  

3.设置日历字段中的值 YEAR , MONTH和 DAY_OF_MONTH
void set(int year, int month, int date)
4.将指定(签名)金额添加到指定的日历字段,而不更改较大的字段

void roll(int field, int amount) 

猜你喜欢

转载自blog.csdn.net/weixin_42962924/article/details/84872563