• java学习笔记(15-高级api)


    1.toString方法


    代码:

    package com.daigua15;
    
    public class ObjectDemo {
        public static void main(String[] args) {
            Student s = new Student("呆瓜", "男", 18);
            System.out.println(s);
        }
    }
    
    class Student {
        private String name;
        private String gender;
        private int age;
    
        public Student(String name, String gender, int age) {
            super();
            this.name = name;
            this.gender = gender;
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student [name=" + name + ", gender=" + gender + ", age=" + age + "]";
        }
    
    }
    

    tips:
    右键->source->Generate toString()

    2.equals方法


    代码:

    package com.daigua15;
    
    public class ObjectDemo2 {
        public static void main(String[] args) {
            Person p1 = new Person("呆瓜", 19);
            Person p2 = new Person("呆瓜", 18);
            System.out.println(p1);
            System.out.println(p2);
    
            System.out.println(p1.equals(p2));
        }
    }
    
    class Person {
        String name;
        int age;
    
        public Person(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
    
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + age;
            result = prime * result + ((name == null) ? 0 : name.hashCode());
            return result;
        }
    
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Person other = (Person) obj;
            if (age != other.age)
                return false;
            if (name == null) {
                if (other.name != null)
                    return false;
            } else if (!name.equals(other.name))
                return false;
            return true;
        }
    
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + ", hashCode()=" + hashCode() + ", getClass()=" + getClass()
                    + ", toString()=" + super.toString() + "]";
        }
    
    }
    

    tips:同上,可以右键source找到对应选项

    3.System类

      static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :
            从src源数组的srcPos索引开始,复制length个元素,从destPost位置开始将这些元素放至到dest数组中
      static long currentTimeMillis() 
            返回以毫秒为单位的当前时间
      static void exit(int status) 
            终止当前正在运行的 Java 虚拟机
      static void gc()  
            运行垃圾回收器
    
    package com.daigua15;
    
    /*
    * System:包含一些有用的类字段和方法。它不能被实例化
    * static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)  
    * static long currentTimeMillis()  
    * static void exit(int status) 
    static void gc()  
    * 
    */
    public class ObjectDemo3 {
        public static void main(String[] args) {
    //      method();
             method2();
    //       method3();
    
            // static void gc()
            // Demo d = new Demo();
    //      new Demo();
    //      System.gc();
        }
    
        private static void method3() {
            // static void exit(int status) :终止虚拟机
    
            for (int i = 0; i < 100000; i++) {
                System.out.println(i);
                if (i == 100) {
                    System.exit(0);
                }
            }
        }
    
        private static void method2() {
            /*
             * static long currentTimeMillis() :以毫秒值返回当前系统时间 这个毫秒的时间是相对时间,相对于1970-1-1
             * 00:00:00 : 0 1970-1-1 00:00:01 : 1000 1970-1-1 00:01:00: 1000 * 60 1970-1-1
             * 01:00:00: 1000 * 60 * 60 1000毫秒 = 1秒
             * 
             */
             System.out.println(System.currentTimeMillis());
    
            long start = System.currentTimeMillis();
            for (int i = 0; i < 100000; i++) {
                System.out.print("");
            }
            long end = System.currentTimeMillis();
            long delta = end - start;
            System.out.println(end);
            System.out.println("耗时:"+ delta + "毫秒");
        }
    
        private static void method() {
            /*
             * static void arraycopy(Object src, int srcPos, Object dest, int destPos, int
             * length) 复制数组 参数1:源数组 参数2:源数组的起始索引位置 参数3:目标数组 参数4:目标数组的起始索引位置 参数5:指定接受的元素个数
             */
            int[] src = { 1, 2, 3, 4, 5 };
            int[] dest = new int[50];
            System.arraycopy(src, 2, dest, 4, 3);
    
            for (int i = 0; i < dest.length; i++) {
                System.out.print(dest[i]);
            }
        }
    }
    
    class Demo {
        @Override
        protected void finalize() throws Throwable {
            System.out.println("我被回收了");
        }
    }
    

    4.Date类

    4.1 构造方法

    package com.daigua15;
    
    import java.util.Date;
    
    public class DateDemo {
        public static void main(String[] args) {
            // 构造传递的是毫秒时间戳
            Date d = new Date(1000*24*60*60);
            System.out.println(d);
            System.out.println(d.toLocaleString());
        }
    }
    

    4.2 setTime和getTime

    package com.daigua15;
    
    import java.util.Date;
    
    public class DateDemo2 {
        public static void main(String[] args) {
            Date d = new Date();
            System.out.println(d.getTime());
            
            d.setTime(172800000L);
            System.out.println(d.toLocaleString());
            System.out.println(d.getTime());
            
        }
    }
    

    5. SimpleDateFormat类

    package com.daigua15;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /*
     * SimpleDateFormat:
     *      格式化:
     *          Date --- String
     *          2049-8-26 2049年8月26日
     *          String format(Date date) 
     *      解析:
     *          String --- Date
     *          "2049-8-26"
     *          Date parse(String source) 
     * 
     * 构造方法:
     *      SimpleDateFormat() :使用默认的模式进行对象的构建
     *      SimpleDateFormat(String pattern) :使用的指定的模式进行对象的构建
     * 
     * 注意:Exception in thread "main" java.text.ParseException: Unparseable date: "49年9月26日  下午1:29"
     *      解析的字符串,模式必须和构建对象的模式一样
     *
     */
    public class SimpleDateFormatDemo {
        public static void main(String[] args) throws ParseException {
            method();
            method2();
            
            // 使用指定的模式进行对象的构建
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    
            // 格式化
            Date date = new Date();
            String s = sdf.format(date);
            System.out.println(s);// 2049年08月26日 13:39:12
    
            // 解析
            Date d = sdf.parse("2049年08月26日 13:39:12");
            System.out.println(d.toLocaleString());
    
        }
    
        private static void method2() throws ParseException {
            // 使用指定的模式进行对象的构建
            // 1999年9月1日
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
            // 格式化
            Date date = new Date();
            String s = sdf.format(date);
            System.out.println(s);// 2049年08月26日
    
            // 解析
            Date d = sdf.parse("2049年08月26日");
            System.out.println(d.toLocaleString());
        }
    
        private static void method() throws ParseException {
            // 使用默认模式进行对象的构建
            SimpleDateFormat sdf = new SimpleDateFormat();
            // 创建日期对象
            Date date = new Date();
    
            // 格式化 把日期对象转换成字符串
            String s = sdf.format(date);
            System.out.println(s);// 49-8-26 下午1:29
    
            // 解析 把字符串转换成日期对象
    //      Date d = sdf.parse(s);
            Date d = sdf.parse("192-1-8 下午6:09");
            System.out.println(d.toLocaleString());
        }
    }
    

    6.Calendar类

    package com.daigua15;
    
    import java.util.Calendar;
    
    /*
     * Calendar:日历,提供了一些操作年月日时的方法
     * 
     * 获取
     * 修改
     * 添加
     * 
     * 
     */
    public class CalendarDemo {
        public static void main(String[] args) {
            // static Calendar getInstance()
            Calendar c = Calendar.getInstance();
    
            // void set(int field, int value) :把指定的字段修改成指定的值
            // c.set(Calendar.DAY_OF_MONTH, 20);
            
            // void add(int field, int amount): 在指定的字段上加上指定的值
            c.add(Calendar.DAY_OF_MONTH, -1);
    
            // int get(int field) // 返回给定日历字段的值
            // public static final int YEAR 1
            // System.out.println(Calendar.YEAR);
    
            // int year = c.get(1);
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH) + 1;
            int day = c.get(Calendar.DAY_OF_MONTH);
    
            System.out.println(year + "年" + month + "月" + day + "日");
    
        }
    }
    

    7.包装类

    7.1 基本使用

    package com.daigua15;
    
    /*
     * 需求:判断一个数是否符合int类型的范围
     * 由于基本数据类型只能做一些简单的操作和运算,所以Java为我们封装了基本数据类型,为每种基本数据类型提供了包装类
     * 包装类就是封装了基本数据类型的类,为我们提供了更多复杂的方法和一些变量
     * 
     * byte     Byte
     * short    Short
     * char     Character
     * int      Integer
     * long     Long
     * float    Float
     * double   Double
     * boolean  Boolean
     * 
     * Integer:
     *      String --- int
     *          方式1:int intValue()
     *          方式2: static int parseInt(String s) 
     *      int --- String
     *          方式1: + ""
     *          方式2:String toString()
     * 
     * 构造方法:
     *      Integer(int value) 
     *      Integer(String s) 
    
     
     */
    public class IntegerDemo {
        public static void main(String[] args) {
            /*
             * int n = 10; if(n >= Math.pow(-2, 31) && n <= Math.pow(2, 31) -1) {
             * System.out.println("符合"); } else { System.out.println("不符合"); }
             */
    
            Integer i = new Integer("10");
            System.out.println(i);
    
            int a = i.intValue();
            System.out.println(a + 10);
    
            int b = Integer.parseInt("20");
            System.out.println(b + 30);
    
            Integer i2 = new Integer(40);
            String s = i2.toString();
            System.out.println(s);
    
            String s2 = Integer.toString(50);
            System.out.println(s2);
    
        }
    }
    

    7.2 自动装箱与拆箱

    import java.util.ArrayList;
    /*
     * JDK1.5特性:自动装箱和拆箱
     * 
     */
    public class IntegerDemo2 {
        public static void main(String[] args) {
            //Integer i = new Integer(10);
            
            //自动装箱
            //相当于: Integer i = new Integer(10);
            //Integer i = 10;
            
            //自动拆箱
            //相当于 int a = i.intValue();
            //Integer i = 10;
            //int a = i;
            
            Integer i = 10;
            Integer i2 = 20;
            Integer i3 = i + i2;
            /*
             * Integer i3 = new Integer(i.intValue() + i2.intValue());
             * 
             */
            
            ArrayList list = new ArrayList();
            list.add(1);//自动装箱,list.add(new Integer(1));
        }
    }
    

    8.正则

    /*
     *  校验qq号码
    *       要求必须是5-15位
    *       0不能开头
    *       必须都是数字
        
        正则表达式:就是一套规则,可以用于匹配字符串
        
        boolean matches(String regex) :判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false
    * 
    *  
     */
    public class RegexDemo {
        public static void main(String[] args) {
            String qq = "12a345";
            /*boolean flag = checkQQ(qq);
            System.out.println(flag);*/
            
            
            boolean flag = qq.matches("[1-9][0-9]{4,14}");
            System.out.println(flag);
        }
        
        public static boolean checkQQ(String qq) {
            int length = qq.length();
            //要求必须是5-15位
            if(length < 5 || length > 15) {
                return false;
            }
            
            //0不能开头
            if(qq.startsWith("0")) {
                return false;
            }
            
            //必须都是数字
            for (int i = 0; i < length; i++) {
                //得到参数的每一个字符
                char c = qq.charAt(i);
                if(c < '0' || c > '9') {
                    return false;
                }
            }
            return true;//符合要求
        }
    }
    
  • 相关阅读:
    [PAL规范]SAP HANA PAL 数据处理抽样算法Sampling编程规范SAMPLING 沧海
    [Step By Step]用信息设计工具IDT创建从SAP Business Object到SAP HANA的连接 沧海
    Note 1749824 Treatment of SLT triggers during transport 沧海
    [Step By Step]使用SLT工具从SAP导入数据到SAP HANA 沧海
    [PAL规范]SAP HANA PAL 数据处理四分位间距检测Interquartile Range Test编程规范IQRTEST 沧海
    [PAL规范]SAP HANA PAL 数据处理装箱算法Binning编程规范BINNING 沧海
    [PAL算法说明]SAP HANA PAL线性回归预测分析Linear Regression算法说明LRREGRESSION 沧海
    [Step By Step]SAP HANA PAL 数据处理四分位间距检测Interquartile Range Test范例IQRTEST 沧海
    [Step By Step]SAP HANA PAL 数据处理缩放算法Scaling实例SCALINGRANGE 沧海
    [Step By Step]使用SLT 工具从SAP导入数据到SAP HANA的监控 沧海
  • 原文地址:https://www.cnblogs.com/daigua/p/java-xue-xi-bi-ji-15gao-jiapi.html
Copyright © 2020-2023  润新知