常用类

内容

  • 字符串相关类(String 、StringBuffer、StringBuilder)
  • 算法及数组工具类(Arrays)
  • 日期类
  • 基本数据类型包装类
  • Math类
  • File类
  • 枚举类

 

一、      字符串相关类(String、 StringBuffer 、  StringBuilder)

java.lang.String:不可变的字符序列

java.lang.StringBuffer:可变字符序列,并且线程安全,但是效率低

StringBuilder :可变字符序列,线程 不安全,但是效率高 (一般用他!)

“xxxx”为该类的一个对象

String类的常见构造方法:

String()

           创建一个空字符的String对象

String(String original)

           创建一个String对象为original的拷贝

String(char[] value)

           用一个字符数组创建一个String对象

String(char[] value, int offset, int count)

           用一个字符数组从offset项开始的count个字符序列创建一个String对象

String(byte[] bytes)

              用一个byte数组创建一个String对象

String(byte[] bytes,int offset,int length)

           用一个byte数组从offset项开始的length个字符序列创建一个String对象

二、      String类常用方法

 

 

public static String valueOf(….)系列,可以将基本类型数据转换为字符串

例如:

public static String valueOf(double d)

public static String valueOf(int i)

….

public String[] split(String regex)

将一个字符串按照指定的分隔符进行分割,返回分割后的字符串数组

StringBuffer类和StringBuilder类方法类似

(1)  用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了 一个字符串缓冲区类,StringBuffer供我们使用。

StringBuffer和String类似,但StringBuffer可以对其字符串进行改变

(2)String和StringBuffer相互转换

           String -- StringBuffer

           构造方法

           StringBuffer -- String

           toString()方法

(3) StringBuffer的构造方法        

A:StringBuffer()

创建一个不包含字符序列的空的StringBuffer对象

           B:StringBuffer(int size)

           构造一个不带字符,但具有指定初始容量的字符串缓冲区

           C:StringBuffer(String str)

创建一个StringBuffer对象,包含与String对象str相同的字符序列

(4)StringBuffer的常见功能(自己补齐方法的声明和方法的解释)

           A:添加功能  append()

           B:删除功能   delete(int start,int end) 开始位置,结束位置(end-1)

           C:替换功能

           D:反转功能

           E:截取功能(注意这个返回值)

           F:在指定位置插入字符序列   insert(index,字符串)

(5)与String类含义类似的方法

(6)字符串的案例

           A:模拟用户登录

           B:字符串遍历

           C:统计字符串中大写,小写及数字字符的个数

           D:把字符串的首字母转成大写,其他小写

           F:字符串反转

           G:统计大串中小串出现的次数

           H: 判断一个字符串是否对称

(7)面试题

           A:String,StringBuffer,StringBuilder的区别

           B:StringBuffer和StringBuilder均没有重写equals()方法,

           继承Object类的equals()方法,则比较的是不是同一个对象。

 

三、      算法及Arrays工具类

(1)排序

A:冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {

           for(int x=0; x<arr.length-1; x++) {

                      for(int y=0; y<arr.length-1-x; y++) {

                                  if(arr[y] > arr[y+1]) {

                                             int temp = arr[y];

                                             arr[y] = arr[y+1];

                                             arr[y+1] = temp;

                                 }

                      }

}

}

 (2)查找

A:基本查找

针对数组无序的情况

public static int getIndex(int[] arr,int value) {

           int index = -1;

           for(int x=0; x<arr.length; x++) {

                      if(arr[x] == value) {

                                  index = x;

                                  break;

                      }

           }

           return index;

}

B:二分查找(折半查找)

针对数组有序的情况(千万要先排序,在查找)

public static int binarySearch(int[] arr,int value) {

           int min = 0;

           int max = arr.length-1;

           int mid = (min+max)/2;

           while(arr[mid] != value) {

                      if(arr[mid] > value) {

                                  max = mid - 1;

                      }else if(arr[mid] < value) {

                                  min = mid + 1;

                      }

 

                      if(min > max) {

                                  return -1;

                      }

                      mid = (min+max)/2;

           }

           return mid;

}

(3)Arrays工具类

A:是针对数组进行操作的工具类。包括排序和查找等功能。

B:要掌握的方法(自己补齐方法)

           把数组转成字符串:

           排序:

           二分查找:

(4)把字符串中的字符进行排序

           举例:

           "edacbgf"   String []              

得到结果

           "abcdefg"

四、      时间处理相关类

1、java.util.Date

Date() 当前时间毫秒数

Date(long date) 指定日期毫秒数

与字符串转换

toString()

日期比较

①equals()

②compareTo(Date anotherDate)

③after(Date when) before(Date when)

与数字 Long 转换(重要)

getTime() ->获取数字

setTime() -->变成另外一个日期

2 、 DateFormat 类和 SimpleDateFormat 类

作用:把时间对象转化成 指定格式的字符串。反之,把 指定格式的字符串转化成时间对象。

DateFormat  是一个抽象类。一般使用 SimpleDateFormat  类。

 

日期<-->字符串

DateFormat

1、format(Date date) -->日期格式化为字符串

2、parse(符合格式字符串) -->字符串 转为日期

子类

SimpleDateFormat(String pattern)

模板:区分大小写

* y:年

* M:月

* d:日

* H:24 进制 [0,23]

* k:24 进制 [1,24]

* h:12 进制 [0,11]

* K:12 进制 [1,12]

* m:分钟

* s:秒

* S:毫秒

 

 

 

 

 

五、      基本数据类型的包装类

(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

                      byte                Byte

                      short                Short

                      int                   Integer

                      long                 Long

                      float                Float

                      double             Double

                      char                 Character

                      boolean Boolean

(2)Integer的构造方法

                      A:Integer i = new Integer(100);

                      B:Integer i = new Integer("100");

                      注意:这里的字符串必须是由数字字符组成

(3)String和int的相互转换

                      A:String -- int

                                  Integer.parseInt("100");

                      B:int -- String

                                  String.valueOf(100);

(4)JDK5的新特性

                      自动装箱          基本类型--引用类型

                      自动拆箱          引用类型--基本类型

                      把下面的这个代码理解即可:

                                  Integer i = 100;

                                  在赋值之前,先进行了自动装箱

Integer i =Integer.valueOf(100);

                                  i += 200;

计算之前,先进行了自动拆箱:i.intValue(),将对象转换为int基本数据类型

(5)包装类常见方法

 

Math

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型

 

 

六、      File类

java.io.File类代表系统文件名(路径和文件名)

File 代表文件和目录路径名的抽象表示形式。

File类的构造方法

①public File(String pathname)

②pulibc File(String parent,String child)

③public File(File parent,String child)

以 pathname 为路径创建 File 对象,如果 pathname 是相对路径,则默认的当前路径在user.dir 中存储。

user.dir是jvm的系统 属性,可以通过System.getProperty()获取jvm的系统属性。

user.dir:用户的当前工作目录

user.home:用户的主目录

File 的静态属性 separator 存储了当前系统的路径分隔符。

1、创建方法

①boolean createNewFile()不存在返回true存在返回false

②boolean mkdir()创建一层,确保父路径存在,如果父路径不存在,不能创建

③boolean mkdirs()父路径不存在,全部创建

④static createTempFile(前缀3个字节长,后缀默认.temp) 默认临时空间

⑤static createTempFile(前缀3个字节长,后缀默认.temp,目录)

2、删除方法

①boolean delete()文件不存在时,返回false

②boolean deleteOnExit()退出虚拟机删除,常用于删除临时文件

 

3、判断方法

① boolean canExecute()判断文件是否可执行

② boolean canRead():判断文件是否可读

③public boolean canWrite():判断文件是否可写

④boolean exists() 判断文件是否存在

⑤boolean isDirectory()判断是否为目录

⑥boolean isFile()判断是否为文件

⑦ boolean isHidden()判断是否为隐藏文件

⑧ boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

3、获取方法

①String getName()

②String getPath() 若是绝对路径,返回完整路径,否则返回相对路径

③String getAbsolutePath() 返回绝对路径

④String getParent()返回上级目录,若没有父目录返回null

⑤long lastModified()获取最后一次修改的时间

⑥long length() 字节数,不能读取文件夹的长度

⑦boolean renameTo(File f)

⑧File[] liseRoots()获取机器盘符

⑨String[] list()获取目录中的目录名称或文件名称的数组集合

⑩String[] list(FilenameFilter filter)返回过滤后的数组

²  File[] listFiles()获取file目录下的文件和文件夹集合

4、练习

①列出磁盘下的文件和文件夹

②文件过滤

③利用递归列出全部文件

④移动文件

posted on 2020-01-08 16:31  萌萌手好冷  阅读(130)  评论(0编辑  收藏  举报