首页 > 代码库 > Java 之 常用类(二)

Java 之 常用类(二)

1.StringBuffer

  a.StringBuffer 与 String:①StringBuffer是一个全新的类型,与String没有继承关系

               ②StringBuffer的出现是为了解决String内容不可变的问题,它是可变的

               ③StringBuffer绝不享受String的特殊语法(什么“+”号拼接、直接赋值String常量)

StringBuffer sb = new StringBuffer("hello");

  b.常用方法:

StringBuffer sb2 = sb.append("world");        //StringBuffer在字符串末尾做拼接

sb2 = sb2.insert(5, " ");        //StringBuffer在字符串对应位置做拼接    

    注:它的方法完全没有String丰富,大部分方法都是和拼接或删除有关,需要传入位置下标

 

 

2.StringBuilder

  StringBuilder 是 StringBuffer 的改进版,区别在于:

    ①StringBuilder 性能比 StringBuffer 高

    ②但是,StringBuilder 线程不安全(单线程),而  StringBuffer 线程很安全

 

 

3.包装类

  a.分类:Integer、Character、Byte、Short、Long、Float、Double、Boolean

  b.作用:①丰富了基本数据类型只能存放值的问题,还可以提供大量的方法或常量

      ②包装类充当了基本数据类型和引用数据类型的桥梁

  c.应用:基本数据类、包装类型和String类型三者的任意转换

 

4.基本数据类型——包装类

  a.基本 转 包装:

int a = 100;
Integer in = new Integer(a);        //标准做法
in = 250;        //★自动封箱---JDK1.5以后提供

  b.包装 转 基本:

Integer in = 300;
int b = in.intValue();        //标准做法
b = in;        //★自动拆箱---JDK1.5以后提供

 

5.包装类——String

  a.String 转 包装:

String str = "125";
Integer in = new Integer(str);

  b.包装 转 String:

Integer in = 325;
String str = in.toString();        //标准做法
String str1 = in + "";        //其实本质还是在调用in的toString方法

 

6.String——基本

  a.String 转 基本:

String str = "275";
int i = Integer.parseInt(str);        //★将字符串String转换为基本数据类型

  b.基本 转 String:

int i = 78;
String str = Integer.toString(i);
String str1 = i + "";

 

 

7.Date 类 —— java.util

  a.作用:Date 类用来封装了时间日期

long now2 = System.currentTimeMillis();        //可以直接通过这个方法获得当前时间的毫秒数

  b.局限性:由于Date这个类型出现的较早,经历了时间原点的变迁,以及JDK版本的变迁,所以有很多的过时方法

  c.目前的使用场景:①获取程序运行的当前时间还是用Date最方便

           ②SimpleDateFormat类可以自定义格式化输出日期时间字符串

           ③Date在各版本中都可以使用,因而成为表示时间日期的首选

Date now = new Date();        //获取当前时间的Date对象

now = new Date(0L);        //根据传入的long类型毫秒数表示时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 a hh:mm:ss:SSS  E");

String msg = sdf.format(now);

  d.缺点:①根据指定的年月日时分秒来设置对象的值----方法已经都过时了

      ②难于取出时间日期的一部分(比如年、月)进行单独的时间运算。

  e.解决:使用Calendar这个替代类进行操作

 

 

8.Calendar类——日历类

  a.由于Calendar是抽象类,可通过.getInstance()直接获取子类对象

Calendar cal = Calendar.getInstance();        //使用设计模式帮助我们直接获取到Calendar的子类对象,里面对应的就是当前日期时间

 

  b.Calendar的set/get方法

cal.set(1992,2,14);
cal.set(cal.YEAR,1992);

cal.get(cal.YEAR);

    注:java中,月份是从0开始的,星期是从周日开始的,因此使用时要进行-1操作

 

  c.Calendar ---> Date

Date birthday = cal.getTime();        //方法一
Date birthday = new Date(cal.getTimeInMillis());        //方法二

String dayOfWeek = new SimpleDateFormat("E").format(birthday);        //Date 与 SimpleDateFormat 的共同使用

 

 

9.Properties

  a.特点:①集合类:Properties是一个集合类,以键值对的方式存放数据;同时兼具可以操作属性文件(一种特殊格式的文本文件)

      ②操作文件:Properties 同时兼具可以操作属性文件(一种特殊格式的文本文件)

 

  b.申明:首先产生Properties集合容器

Properties props = new Properties();

 

  c.增加:①调用setProperty方法放入元素,每个元素都是一对键值对

      ②第一个参数是键,要求不能重复

      ③第二个参数是值

props.setProperty("J134001", "chenGuo");
props.setProperty("J134002", "张鹏");
props.setProperty("J134003", "张凯");

 

  d.修改:如果出现放入重复值的情况,相当于修改而不是新增

props.setProperty("J134003", "罗一修");

 

  e.取/查:通过键取集合中的值,如果键不存在则返回null

String name = props.getProperty("J134001");
System.out.println(name);

 

  f.删除:根据键删除整个键值对

props.remove("J134002");

 

  g.长度:获得容器中的元素个数

int size = props.size();

 

 

10.★Properties 操作文件★

  a.Properties操作的文件必须是固定格式的文本文件---属性文件---将是工作中使用率排名第二的配置文件

  b.看文件:.store方法

props.store(new FileOutputStream("file/student.properties"), "");

 

  c.读文件:.load方法

Properties newProps = new Properties();
newProps.load(new FileInputStream("file/student.properties"));

 

Java 之 常用类(二)