Java常用类

枚举类

枚举使用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个

红包金额最低5元

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

抵扣说明:

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

余额充值