• 常用类


    内容

    • 字符串相关类(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、练习

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

    ②文件过滤

    ③利用递归列出全部文件

    ④移动文件

  • 相关阅读:
    linux内核数据包转发流程(三)网卡帧接收分析
    StringTokenizer类的使用
    提问的艺术(中文版)
    编写ruby扩展库
    java.lang.Math中的基本方法
    CocoStudio学习资源
    数据流图的画法
    UVa 11069
    PHP之运用CI用钩子实现URL权限控制————————【Badboy】
    [ACM] POJ 3686 The Windy&#39;s (二分图最小权匹配,KM算法,特殊建图)
  • 原文地址:https://www.cnblogs.com/lotus-wmm/p/12167383.html
Copyright © 2020-2023  润新知