zoukankan      html  css  js  c++  java
  • 12.常用类简单介绍.md

    1.Scanner类

    /*输入输出*/
    
    System.out.println("请输入,以回车结束");
    Scanner sc = new Scanner(System.in);
    //sc.useDelimiter("
    ");//分隔符换成回车
    while (sc.hasNext()) {
        System.out.println("输入的内容是:" + sc.next());
    }
    while (sc.hasNextDouble()) {
        System.out.println("输入的内容是:" + sc.nextDouble());
    }
    
    /*简单读取文件*/
     
    try {
        Scanner sc = new Scanner(new File("D:\a.txt"));
        System.out.println("ScannerTest.java内容如下:");
        while (sc.hasNextLine()) {
            System.out.println(sc.nextLine());
             
        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    

    2.System类

    /*System类获取环境变量相关信息*/
     
    //环境变量
    Map<String, String> mpEnv = System.getenv();
    System.out.println("*********Begin:");
    for(String name : mpEnv.keySet()){
        System.out.println(name + "----->" + mpEnv.get(name));
    }
    System.out.println("*********End:");
     
    //特定变量
    System.out.println(System.getenv("JAVA_HOME"));
     
    //写到文件中
    java.util.Properties pt = System.getProperties();
    try {
        pt.store(new FileOutputStream("D:\b.txt"), "PPP");
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     
    //获取时间
    System.out.println(System.nanoTime());
    
    //获取系统版本
    String s = System.getProperty("os.name");
    System.out.println(s);  
    
    

    3.Runntime类

    /*Runtime类*/
    //获取内存信息
    Runtime rc = Runtime.getRuntime();
    System.out.println("处理器数量: " + rc.availableProcessors());
    System.out.println("空闲内存总量: " + rc.freeMemory());
    System.out.println("可用内存总量: " + rc.totalMemory());
    System.out.println("最大内存总量: " + rc.maxMemory());
    //启动系统任务:记事本
    try {
        rc.exec("notepad.exe");
        rc.exec("D:\Notepad++v6.7.7\Notepad++\notepad++.exe");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    

    4.Object类和工具类

    工具类

    public class ScannerTest {
        private static ScannerTest sc;
        public static void main(String[] args) {
            System.out.println(Objects.hashCode(sc));
            System.out.println(Objects.toString(sc));
            System.out.println(Objects.requireNonNull(sc));
            }
    }
    

    5.StringBuffer类和StringBuilder类

    • String类不适合对字符串的反复处理,因为每次都会创建一个新的对象
    • StringBuffer内部维护一个char数组来实现字符串的处理
    • StringBuilder和StringBuffer的函数是一样的,不同在于前者是线程不安全的,后者是线程安全的。推荐使用前者,前者的出现时间晚于后者,因为很少会有对字符串的操作需要线程安全。

    6.Math类


    7.Random类和ThreadLocalRandom类

    public static void main(String[] args) {
        //System.out.println();
        /*Random类*/
        //产生随机数
        Random ra = new Random();
        System.out.println("Boolean:" + ra.nextBoolean());
        System.out.println("int:" + ra.nextInt());
        System.out.println("double:" + ra.nextDouble());
        System.out.println("long:" + ra.nextFloat());
         
        //同样的种子,两个不同的对象以同一个顺序产生的随机数是一样的
        Random ra5 = new Random(5);
        System.out.println("long5:" + ra5.nextFloat());
        Random ra6 = new Random(5);
        System.out.println("long6:" + ra5.nextFloat());
         
        //以时间为种子产生随机数
        Random raTime = new Random(System.currentTimeMillis());
        System.out.println("Random int(0-6) by time:" + ra.nextInt(6));
         
        //ThreadLocalRandom产生的随机数
        ThreadLocalRandom tlr = ThreadLocalRandom.current();
        System.out.println("ThreadLocalRandom int(6-10):" + tlr.nextInt(6,  10));
    }
    

    8.时间日期

    public static void main(String[] args) {
            //System.out.println();
            /*时间日期的获取*/
            //获取对象
            Calendar cl = Calendar.getInstance();
            //获取完整时间
            System.out.println("当前日期:" + cl.getTime());
            //年份,cl.YEAR从1开始
            System.out.println("当前年份:" + cl.get(cl.YEAR));
            //月份,cl.MONTH从0开始,需要加1
            System.out.println("当前月份:" + (cl.get(cl.MONTH) + 1));
            //日期,cl.DATE从1开始
            System.out.println("当前日子:" + cl.get(cl.DATE));
            //时
            System.out.println("当前小时:" + cl.get(cl.HOUR));
            //分
            System.out.println("当前分钟:" + cl.get(cl.MINUTE));
            //秒
            System.out.println("当前秒数:" + cl.get(cl.SECOND));
            System.out.println("**********");
            //今天之前的一天日期
            Date d = (Calendar.getInstance()).getTime();
            Calendar ck = Calendar.getInstance();
            ck.setTime(d);
            ck.add(ck.MONTH, -1);
            ck.add(ck.YEAR, 1);
            System.out.println("当前日期:" + ck.getTime());
            //格式化
            String s = new SimpleDateFormat("日期向前调整后格式化输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
            System.out.println(s);
     
            //ck.add(ck.MONTH, 5);
            ck.roll(ck.MONTH, 5);
            s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
            System.out.println(s);
             
            //容错性
            ck.set(ck.MONTH, 13);
            s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
            System.out.println(s);
            //关闭容错性后运行报错
            ck.setLenient(false);
            ck.set(ck.MONTH, 13);
            s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
            System.out.println(s);
        }
    

    add和roll的区别:两个都是对日期的处理,但是区别在于add会做进位处理,roll不会做进位处理:如果将日期向前调整后格式化输出:2016-09-30 11-24-03用add增加5个月,那么结果是处理的输出:2017-02-28 11-24-03,如果是roll则为处理的输出:2016-02-29 11-24-38
    set的容错性:

    8.Runtime类

    该类可获得应用程序的运行环境:

    • getRuntime() 返回当期aN应用程序的运行环境对象
    • exec(String command) 根据路径执行对应的可执行程序
    • freeMemory() 返回JVM空闲内存
    • maxMemory() 返回JVM最大内存
  • 相关阅读:
    HDU 4548 美素数 在线打表加数状数组
    HDU 1023 Train Problem II
    HDU 4707 Pet 邻接表实现
    如何在VS2010环境下编译C++程序
    《Visual C++ 2010入门教程》系列五:合理组织项目、使用外部工具让工作更有效
    《Visual C++ 2010入门教程》系列一:关于Visual Studio、VC和C++的那些事
    C++格式化代码,去掉vs2010编辑器里中文注释的红色波浪线
    c++中%是什么意思?
    windows定位dll的搜索顺序
    VC6.0 error LNK2001: unresolved external symbol _main解决办法
  • 原文地址:https://www.cnblogs.com/bugstar/p/8492509.html
Copyright © 2011-2022 走看看