第二十二节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)上
/* 获取当前的毫秒数 1S = 1000毫秒 */ public class DateTest01{ public static void main(String[] args){ long now = System.currentTimeMillis(); System.out.println(now); // 1418662206661 } } ////////////////////////////////////////////////////////////////////////// /* 获取系统当前时间 */ import java.util.Date; import java.text.SimpleDateFormat; public class DateTest02{ public static void main(String[] args){ // 获取系统当前时间 Date Date = new Date(); System.out.println(Date); // Tue Dec 16 00:52:48 CST 2014 // 引入”格式化“日期 // java.util.Date; -> String /* 日期格式: y 年 m 月 d 日 H 小时 m 分 s 秒 S 毫秒 */ // 创建格式化对象 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM月dd日 HH:mm:ss SSS"); String strTime = sdf.format(Date); System.out.println("系统当前时间是:"+strTime); } } ///////////////////////////////////////////////////////////////////// /* 日历 */ import java.util.Date; import java.util.Calendar; import java.text.SimpleDateFormat; public class DateTest03{ public static void main(String[] args) throws Exception{ // 获取系统当前日历 Calendar c = Calendar.getInstance(); // 查看当前日历的”星期几“ int i = c.get(Calendar.DAY_OF_WEEK); System.out.println("今天是本周中的第:"+i+"天"); // 3(中国星期日,外国人看作是第1天) System.out.println("今天是本月中的第:"+c.get(Calendar.DAY_OF_MONTH) +"天"); // 获取2013 11 11 是星期几 String t = "2013,11,11"; Date d = new SimpleDateFormat("yyyy,MM,dd").parse(t); c.setTime(d); // 获取星期几 System.out.println("2013,11,11 本周中的第:"+c.get(Calendar.DAY_OF_WEEK)+"天"); } }
/* java中的八种基本数据类型,对应的包装类 基本数据类型 包装类型 byte java.lang.Byte short java.lang.short int java.lang.Integer long java.lang.Long float java.lang.Float double java.lang.Double boolean java.lang.Boolean char java.lang.Character */ public class IntegerTest01{ // 规定a1方法,可接收java中的任何一种数据类型 public static void a1(Object o){ System.out.println(o); } public static void main(String[] args){ // 基本数据类型 byte b = 10; //引用类型 Byte a = new Byte(b); a1(a); // 10 Byte已经将Object中的toString方法重写了 } }
/////////////////////////////////////////////////////////////// /* java.lang.Integer 讲八种类型 */ public class IntegerTest02{ public static void main(String[] args){ // 获取int类型的最小值,最大值 System.out.println("int类型的最小值:"+Integer.MIN_VALUE ); System.out.println("int类型的最大值:"+Integer.MAX_VALUE ); System.out.println("byte类型的最小值:"+Byte.MIN_VALUE ); System.out.println("byte类型的最大值:"+Byte.MAX_VALUE ); // 创建Integer类型的对象 Integer i1 = new Integer(10); // int -> Integer Integer i2 = new Integer("123"); // String -> Integer System.out.println(i1); System.out.println(i2); } } /////////////////////////////////////////////////////////////////////// /* Integer中的常用方法 */ public class IntegerTest03{ public static void main(String[] args){ // int - > Integer // 基本数据类型 -> 引用数据类型 Integer i1 = new Integer(10); // Integer -> int int i2 = i1.intValue(); System.out.println(i2 + 100); // String -> int int age = Integer.parseInt("18"); System.out.println(age + 20); // 将int类型的十进制转换成2进制 String s1 = Integer.toBinaryString(6); System.out.println("10的二进制为:" + s1); // 将int类型的十进制转换成16进制 String s2 = Integer.toHexString(6); System.out.println("6的十六进制为:" + s2); // 将int类型的十进制转换成8进制 String s3 = Integer.toOctalString(6); System.out.println("6的八进制为:" + s3); // int -> Integer Integer i3 = Integer.valueOf(10); // String -> Integer Integer i4 = Integer.valueOf("10"); System.out.println(i3); System.out.println(i4); // int -> Integer 装箱 Integer a = new Integer(10); // Integer -> int 拆箱 int b = a.intValue(); Integer i5 = 10; // 自动装箱 int i6 = i5; // 自动拆箱 } }
/* 生成随机数 */ import java.util.Random; public class RandomTest01{ public static void main(String[] args){ Random r = new Random(); // 生成int类型的随机数 int k = r.nextInt(101); // [0-100]之间的随机数 System.out.println(k); for(int i = 0; i < 5; i++){ System.out.println(r.nextInt(101)); } // 作业:生成5个不重复的随机数[1 - 5] // 自己编写枚举的小例子 // 数字格式化 } }
/* java.lang.StringBuffer java.lang.StringBuilder 1. StringBuffer 和 StringBuilder 是一个字符串的缓冲区 2. 工作原理 预先在内存中申请一块空间,以容纳字符序列 如果预留的空间不够用,则进行自动扩容,以容纳更多的字符序列 3. StringBuffer,StringBuilder 和 String 最大的区别 String 是不可变的字符序列,存储字符串常量池中 StringBuffer底层是一个char数组,但是该char数组是可变的。 并且可以自动扩容 用法同 StringBuffer, StringBuilder 和 StringBuffer 的区别是 StringBuffer 中所有的方法都是同步的,是线程安全的,但速度慢,StringBuilder 的速度快, 但不是线程安全 4. StringBuffer 和 StringBuilder 默认的初始化容量是 16 5. StringBuffer 和 StringBuilder区别 StringBuffer是线程安全的(在多线程环境下不会出现问题) StringBuilder 非线程安全(在多线程环境下可能会出现问题) */ public class StringBufferTest01{ public static void main(String[] args){ // 创建字符串缓冲区对象 StringBuffer buffer = new StringBuffer(); // 16 String[] s = {"吃饭","睡觉","打豆豆"}; for(int i = 0; i < s.length; i++){ if(i == s.length - 1){ buffer.append(s[i]); } else { buffer.append(s[i]); buffer.append(","); } } System.out.println("buffer: " + buffer); } }