枚举:
枚举指由一组固定的常量组成的类型
好处:
类型安全
易于输入
代码清晰
使用switch更方便
输入的字符串如何转成枚举类型
包装类
包装类把基本类型数据转换为对象
每个基本类型在java.lang包中都有一个相应的包装类
包装类有何作用
提供了一系列实用的方法
集合不允许存放基本数据类型数据,存放数字时,要用包装类型
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
public Type(type value)
如:Integer i=new Integer(1);
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
public Type(String value)
如: Integer i=new Integer("123");
1.Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
2.当包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常
所有包装类都有如下方法
public static Type valueOf(type value)
如: Integer intValue = Integer.valueOf(21);
除Character类外,其他包装类都有如下方法
public static Type valueOf(String s)
如: Integer intValue = Integer.valueOf("21");
toString():以字符串形式返回包装对象表示的基本类型数据
parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)
装箱:基本类型转换为包装类的对象
拆箱:包装类对象转换为基本类型的值
包装类的特点
String类
使用String对象存储字符串
String类位于java.lang包中,具有丰富的方法
计算字符串的长度、比较字符串、连接字符串、提取字符串
字符串连接
字符串比较的其他方法
equals()方法
String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回
StringBuffer类
对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率
StringBuffer声明
StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("aaa");
StringBuffer的使用
sb.toString(); //转化为String类型
sb.append("**"); //追加字符串
sb.insert (1, "**"); //插入字符串
String是不可变对象
经常改变内容的字符串最好不要使用String
StringBuffer是可变的字符串
字符串经常改变的情况可使用StringBuffer,更高效
JDK1.5后提供了StringBuilder,等价StringBuffer
StringBuffer
使用可变字符串,在大量字符串拼接时,效率高
StringBuilder是线程不安全的,StringBuffer是线程安全的
线程安全的效率低,线程不安全的效率高,线程不安全的也可以转成
安全的,所以一般使用线程不安全的
java.lang.Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数) 和PI(圆周率)
工厂模式:
工厂:生产对象的工厂,统一的生成需要的对象
比如:宠物主人需要根据输入的类型产生一个宠物时,他不需要自己去new 这个
宠物,而是把需求给工厂就可以了,提高了开发效率
复杂操作在工厂中完成
以上模式属于简单工厂模式,
但是添加新宠物后,要修改原来的工厂
违反了开闭原则(对扩展开放,对修改是关闭)
工厂方法解决以上问题
创建工厂接口,提供生成各种对象的各种工厂
工厂接口
具体的工厂
主人类领养宠物
好处是,添加新的动物,比如鸭子
只需要创建鸭子类和鸭子工厂类
原代码不用改变,主人就可以领养鸭子
Random类
用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的
如何获取当前日期?
java.util.Date类:表示日期和时间
提供操作日期和时间各组成部分的方法
Java.util.Date
java.text.SimpleDateFormat类
用于定制日期时间的格式
Calendar类
抽象类,java.util.Calendar
用于设置和获取日期/时间数据的特定部分
Calendar类提供一些方法和静态字段来操作日历
把日期对象转成日期字符串