- 枚举类 
- 包装类 
- Math类 
- String类 
- Date类

- 枚举类

枚举使用enum关键字,使用枚举有三大好处:1.类型安全,2.易于输入,3.代码清晰。 
下面举个简单的例子。我们输入性别的时候一般只有男女两个选项,这个时候我们就可以使用枚举对输入进行简单的控制,让我们只能选择男或女,代码如下:

//enum 关键字,可以理解为跟class差不多,这也个单独的类
public enum Sex {
    MAN,WOMAN
    //男,女
}

public class TestDemo {

    public static void main(String[] args) {
        Student  student=new Student();//Student这个类读者去编写了,这里面包含name,age和sex三个属性

        if(null!=student.getSex()&&!student.getSex().equals("")){
            System.out.println(student.getSex());
        }

        student.setName("zhangsan");
        student.setAge(18);
        student.setSex(Sex.MAN);
        //不建议使用中文
        //student.setSex(Sex.男);
        //student.setSex("abc");输入abc则报错

System.out.println(student.getName()+"\t"+student.getAge()+"\t"+student.getSex());

    }

}

- 包装类

每个基本类型在java.lang包中都有一个相应的包装类 ,包装类主要有两大作用:1.提供了一系列实用的方法 。2.集合不允许存放基本数据类型数据,存放数字时,要用包装类型。 
下面是代码示例: 
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例

Integer i=new Integer(12);
        Double d=new Double(12.12);
        Character c=new Character('a');
        Character c1=new Character('男');
        //除Character类外,其他包装类可将一个字符 串作为参数构造它们的实例
        Integer ii=new Integer("12");
        Double dd=new Double("12.12");
        //Character c2=new Character("man");不行
        Boolean b=new Boolean(true);
        //注:当Number包装类构造方法参数为String类型时,字符串不能为null, 且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常
        /*Exception in thread "main" java.lang.NumberFormatException: null
        Integer in1=new Integer("null");
        Exception in thread "main" java.lang.NumberFormatException: For input string: "null"*/

        //布尔类型忽略大小
        Boolean bb1=new Boolean("tRUe");
        Boolean bb2=new Boolean("TRUE");
        Boolean bb3=new Boolean("ASDF");
        Boolean bb4=new Boolean("false");//都是正确的

包装类常用方法

//包装类和基本数据的转换
        Integer im=new Integer("121");
        int num=im.intValue();
        float num1=im.floatValue();
        double num2=im.doubleValue();
        long num3=im.longValue();
        String num4=im.toString();
        //包装类转换成字符串,使用toString方法
        String s= Integer.toString(num);
        String s1= Double.toString(11.11);
        String s2= Character.toString('女');
        String s3= Boolean.toString(true);
        //实际应用,(字符型通过Integer包装类进行转换后通过Integer包装了转换为double型最后和float型相加)
        String ss="12345";
        Integer it=new Integer(ss);
        double sum=100f+it.doubleValue();
        System.out.println(sum);
        //字符串转换成基本数据类型,使用parse转换,character除外
        int number=Integer.parseInt(ss);
        double d11= Double .parseDouble("11.01");
        boolean b11= Boolean.parseBoolean("true");
        System.out.println("number:"+number);
        //使用valueOf()将基本数据类型(字符串)转换成包装类(character除外)
        Integer is=Integer.valueOf("123");
        Integer iv=Integer.valueOf(123);
        //Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"
        //Integer abc=Integer.valueOf("abc");错误写法
        Double ds=Double.valueOf("123.09");
        Double dv=Double.valueOf(123.09);

        Boolean bs=Boolean.valueOf("true");
        Boolean bv=Boolean.valueOf(true);
        //装箱和拆箱
        int x=1;
        Integer y=x;
        //自动拆装箱
        Integer y = 1;
        //JDK1.5后,允许基本数据类型和包装类型进行 混合数学运算
        String str="12345";
        Integer ite=new Integer(str);
        int sm=100+ite;
        System.out.println(sm);

//总结
        //1、运算时不考虑基本数据类型和包装类,可以直接参与运算
        //2、面向对象编程是需要注意基本数据类型和包装类的转换,如方法参数

- Math类

Math类这里就主要介绍下生成随机数Random的用法

 //取绝对值
        System.out.println(Math.abs(-123));
        //取最大值(取最小值为min)
        System.out.println(Math.max(11, 90));
        //生成[0,10)的随机整数
        System.out.println((int)(Math.random()*10));

        //用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
        Random random1=new Random(11);
        Random random2=new Random(11);//此处的11表示生成11位的随机数

        Random random=new Random();
        for(int i=0;i<10;i++){
            System.out.println(random.nextInt(11));//次数的11表示生成的随机数为2位

- String类

//经典例子(区分==和equals)
        String s1="hello world!";
        String s2="hello world!";

        String string1=new String("hello world!");
        String string2=new String("hello world!");

        //比较的内存地址
        System.out.println(s1==s2);
        System.out.println(string1==string2);
        //比较的内容
        System.out.println(s1.equals(s2));

        String st="hello world!";
        //String区分大小写
        System.out.println(st.equals("HELLO WORLD!"));//不相等
        //转换大小写
        st.toUpperCase();
        //忽略大小写
        System.out.println(st.equalsIgnoreCase("hello world!".toUpperCase()));
        //字符串的拼接
        String sr="hello".concat("world").concat("!");
        //indexof返回某个字符串第一次出现的位置,索引是从0开始
        System.out.println(sr.indexOf("w"));
        //提取从位置索引开始的字符串部分(包头不包尾,左闭右开)
        System.out.println(sr.substring(0, 2));//输出he
        //返回一个前后不含任何空格的 调用字符串的副本
        System.out.println(" aaa ".trim());//输出aaa
        //字符串的拆分
        String aa="zhangsan,lisi,wangwu,zhaoliu";
        String[] arr=aa.split(",");
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]+" ");
        }//输出zhangsan lisi wangwu zhaoliu
        //StringBuffer:对字符串频繁修改(如字符串连接)时,使用 StringBuffer类可以大大提高程序执行效率
        StringBuffer sb=new StringBuffer("aaa");
        System.out.println(sb.toString());//toString转化为字符串类型输出aaa
        sb.append("bbb").append("ccc").append("ddd").append("eee").append("fff");//追加字符串
        System.out.println(sb.toString());
        sb.insert(2, "000");//插入字符串
        System.out.println(sb.toString());
  • Date类

    日期类中主要使用SimpleDateFormat定制日期时间的格式 
    Calendar类是个抽象类,用于设置和获取日期/时间数据的特定部分

  •  SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //月份要大写,否则会输出分钟
            SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
            SimpleDateFormat sdf3=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
            SimpleDateFormat sdf4=new SimpleDateFormat("yy/MM/dd HH:mm:ss");
            //Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。
            Calendar cl=Calendar.getInstance();
    
            System.out.println(Calendar.YEAR);
            System.out.println(cl.get(Calendar.YEAR));
            //在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为0;所以需要+1
            System.out.println(Calendar.MONTH);
            System.out.println(cl.get(Calendar.MONTH)+1);
            //指示一个月中的第几天
            System.out.println(Calendar.DAY_OF_MONTH);
            System.out.println(cl.get(Calendar.DAY_OF_MONTH));
            //HOUR 用于 12 小时制时钟 (0 - 11)。中午和午夜用 0 表示,不用 12 表示。HOUR_OF_DAY 用于 24 小时制时钟。
            System.out.println(Calendar.HOUR);
            System.out.println(cl.get(Calendar.HOUR));
    
            //在国外星期六是一星期的最后一天,所以转换为我们的星期要-1
            System.out.println("星期:"+(cl.get(Calendar.DAY_OF_WEEK)-1));

     

以上就是一些常用类的简单总结,不过学习一门编程语言最重要的是要学会查看API,API中对每一个类每一个方法都有很详尽的解释,如果有人需要Java的API,可以点击下方链接获取^.^

JDK_API6.0.CHM中文版

10-05 11:08