zoukankan      html  css  js  c++  java
  • Java 常用类

    Object 老祖宗

    java.lang.Object

    1. 所有的类直接或者间接继承父类 Java认为所有的对象都具备一些基本的共性内容 这些内容可以不断的向上抽取 最终就抽取到了一个最顶层的类中(Object) 该类中定义的就是所有对象都具备的功能

    2. 具体方法:

    boolean equals(Object obj): 用于比较两个对象是否相等 其实内部比较的就是两个对象地址

    String toString(): 将对象变成字符串 默认返回的格式: 类名@哈希值 = getClass().getName() + '@' + Integer.toHexString(hashCode()) 为了对象对应的字符串内容有意义 可以通过复写 建立该类对象自己特有的字符串表现形式

    Class getClass(): 获取任意对象运行时的所属字节码文件对象

    int hashCode(): 返回该对象的哈希码值 支持此方法是为了提高哈希表的性能

    通常equals, toString, hashCode在应用中都会被复写 建立具体对象的特有的内容

      

    String 字符串类

    java.lang.String

    1. java中用String类进行描述 对字符串进行了对象的封装 这样的好处是可以对字符串这种常见数据进行方便的操作 对象封装后 可以定义N多属性和行为

    2. 特点: 字符串一旦被初始化 就不可以被改变 存放在方法区中的常量池中

    3. 具体方法:

    1> 构造方法 将字节数组或者字符数组转成字符串

    String s1 = new String(); //创建了一个空内容的字符串

    String s2 = null; //s2没有任何对象指向 是一个null常量值

    String s3 = ""; //s3指向一个具体的字符串对象 只不过这个字符串中没有内容

    String s4 = new String("abc");

    String s5 = "abc"; //一般用此写法

    new String(char[]); //将字符数组转成字符串

    new String(char[], offset, count); //将字符数组中的一部分转成字符串

    2> 一般方法

    a. 获取

    length(); //获取字符串的长度

    char charAt(int index); //指定位置的字符

    int indexOf(int ch); //返回第一次找到的字符角标 如果不存在返回-1

    int indexOf(int ch, int fromIndex); //返回从指定位置开始第一次找到的角标 如果不存在返回-1

    int indexOf(String str); // 返回第一次找到的字符串角标 如果不存在返回-1

    int indexOf(String str, int fromIndex);

    int lastIndexOf(int ch);

    int lastIndexOf(int ch, int fromIndex);

    int lastIndexOf(String str);

    int lastIndexOf(String str, int fromIndex);

    String substring(int start); //start位开始 length()-1为止

    String substring(int start, int end); //start开始到end为止 //包含start 不包含end

    substring(0, str.length()); //获取整串

    b. 判断

    boolean contains(String substring); //字符串中包含指定的字符串吗

    boolean startsWith(string); //字符串是否以指定字符串开头啊

    boolean endsWith(string); //字符串是否以指定字符串结尾啊

    boolean equals(string); //覆盖了Object中的方法 判断字符串内容是否相同

    boolean equalsIgnoreCase(string) ; //判断字符串内容是否相同 忽略大小写

    c. 转换

    //可以通过字符串中的静态方法 将字符数组转成字符串

    static String copyValueOf(char[] );

    static String copyValueOf(char[], int offset, int count);

    static String valueOf(char[]);

    static String valueOf(char[], int offset, int count);

    //将基本数据类型或者对象转成字符串

    static String valueOf(char);

    static String valueOf(boolean);

    static String valueOf(double);

    static String valueOf(float);

    static String valueOf(int);

    static String valueOf(long);

    static String valueOf(Object);

    //将字符串转成大小写

    String toLowerCase(); //转小写

    String toUpperCase(); //转大写

    //将字符串转成数组

    char[] toCharArray(); //转成字符数组

    byte[] getBytes(); //可以加入编码表 转成字节数组

    //将字符串转成字符串数组 切割方法

    String[] split(分割的规则-字符串);

    //将字符串进行内容替换 注意: 修改后变成新字符串 并不是将原字符串直接修改

    String replace(oldChar, newChar);

    String replace(oldstring, newstring);

    String concat(string); //对字符串进行追加

    String trim(); //去除字符串两端的空格

    int compareTo(); //如果参数字符串等于此字符串 则返回值 0 如果此字符串按字典顺序小于字符串参数 则返回一个小于 0 的值 如果此字符串按字典顺序大于字符串参数 则返回一个大于 0 的值

      

    StringBuffer 字符串缓冲区

    java.lang.StringBuffer

    1. 构造一个其中不带字符的字符串缓冲区 初始容量为16个字符

    2. 特点:

    1> 可以对字符串内容进行修改

    2> 是一个容器

    3> 是可变长度的

    4> 缓冲区中可以存储任意类型的数据

    5> 最终需要变成字符串

    3. 具体方法:

    //添加

    StringBuffer append(data); 在缓冲区中追加数据 追加到尾部

    StringBuffer insert(index, data); 在指定位置插入数据

    //删除

    StringBuffer delete(start, end); 删除从startend-1范围的元素

    StringBuffer deleteCharAt(index); 删除指定位置的元素

    //sb.delete(0, sb.length()); 清空缓冲区

    //修改

    StringBuffer replace(start, end, string); startend-1替换成string

    void setCharAt(index, char); 替换指定位置的字符

    void setLength(len); 将原字符串置为指定长度的字符串

    //查找 (查不到返回-1)

    int indexOf(string); 返回指定子字符串在此字符串中第一次出现处的索引

    int indexOf(string,int fromIndex); 从指定位置开始查找字符串

    int lastIndexOf(string); 返回指定子字符串在此字符串中最右边出现处的索引

    int lastIndexOf(string, int fromIndex); 从指定的索引开始反向搜索

    //获取子串

    string substring(start); 返回start到结尾的子串

    string substring(start, end); 返回startend-1的子串

    //反转

    StringBuffer reverse(); 字符串反转

      

    StringBuilder 字符串缓冲区

    java.lang.StringBuilder

    1. JDK1.5出现StringBuiler 构造一个其中不带字符的字符串生成器 初始容量为 16 个字符 该类被设计用作StringBuffer的一个简易替换 用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)

    2. 具体方法: StringBuffer一样

    3. StringBuffer StringBuilder 的区别:

    StringBuffer线程安全

    StringBuilder线程不安全

    单线程操作 使用StringBuilder 效率高

    多线程操作 使用StringBuffer 安全

      

    Integer int对象包装类

    java.lang.Integer

    1. 数字格式的字符串转成基本数据类型的方法

    1> 将该字符串封装成了Integer对象 并调用对象的方法intValue();

    2> 使用Integer.parseInt(numstring); 不用建立对象 直接类名调用

    2. 将基本类型转成字符串

    1> Integer中的静态方法 String toString(int);

    2> int + "";

    3. 将一个十进制整数转成其他进制

    1> 转成二进制: toBinaryString

    2> 转成八进制: toOctalString

    3> 转成十六进制: toHexString

    4> toString(int num, int radix);

    4. 将其他进制转换十进制: parseInt(string, radix); //将给定的数转成指定的基数进制

    5. jdk1.5版本后 对基本数据类型对象包装类进行升级 在升级中 使用基本数据类型对象包装类可以像使用基本数据类型一样 进行运算

    Integer i = new Integer(4); //1.5版本之前的写法

    Integer i = 4; //自动装箱 1.5版本后的写法

    i = i + 5;

    //i对象是不能直接和5相加的 其实底层先将i转成int类型 在和5相加 而转成int类型的操作是隐式的 自动拆箱: 拆箱的原理就是i.intValue(); i+5运算完是一个int整数 如何赋值给引用类型i? 其实有对结果进行装箱

    Integer c = 127;

    Integer d = 127;

    System.out.println(c = = d); //true

    //在装箱时 如果数值在byte范围之内 那么数值相同 不会产生新的对象 也就是说多个数值相同的引用指向的是同一个对象

     

    System 系统类

    java.lang.System

    属性和行为都是静态的

    long currentTimeMillis(); //返回当前时间毫秒值

    exit();  //退出虚拟机

    Properties getProperties(); //获取当前系统的属性信息

    Properties prop = System.getProperties(); //获取系统的属性信息 并将这些信息存储到Properties集合中

    System.setProperty("myname","祎哥哥"); //给系统属性信息集添加具体的属性信息

    String name = System.getProperty("os.name"); //获取指定属性的信息

     

    Runtime 运行时环境类

    java.lang.Runtime

    类中没有构造方法 不能创建对象

    但是有非静态方法 说明该类中应该定义好了对象 并可以通过一个static方法获取这个对象 用这个对象来调用非静态方法 这个方法就是 static Runtime getRuntime(); (单例设计模式)

    class  RuntimeDemo {
        public static void main(String[] args) throws Exception {
            Runtime r = Runtime.getRuntime();
            Process p = r.exec("notepad.exe SystemDemo.java"); //运行指定的程序
            Thread.sleep(4000);
            p.destroy(); //杀掉进程
        }
    }

     

    Math 数学运算工具类

    java.util.Math

    用于数学运算的工具类 属性和行为都是静态的 该类是final不允许继承

    static double ceil(double a); //返回大于指定数值的最小整数

    static double floor(double a); //返回小于指定数值的最大整数

    static long round(double a); //四舍五入成整数

    static double pow(double a, double b); //ab次幂

    static double random(); //返回0~1的伪随机数

     

    Date 日期类

    java.util.Date

    日期类 月份从0-11(这就是老外 奇奇怪怪)

    //日期对象转成毫秒值

    Date d = new Date();

    long time1 = d.getTime();

    long time2 = System.currentTimeMillis(); //毫秒值

    //毫秒值转成具体的日期

    long time = 1322709921312l;

    Date d = new Date();

    d.setTime(time);

    //将日期字符串转换成日期对象 使用的就是DateFormat方法中的 Date parse(String source);

    public static void method() throws Exception {

        String str_time = "2011/10/25";

        DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作为可以指定用户自定义的格式来完成格式化

        Date d = df.parse(str_time);

    }

    //将日期对象转换成字符串的方式 DateFormat类中的format方法

    //创建日期格式对象

    DateFormat df = new SimpleDateFormat(); //该对象的建立内部会封装一个默认的日期格式 11-12-1 下午1:48

    //如果想要自定义日期格式的话 可使用SimpleDateFormat的构造函数 将具体的格式作为参数传入到构造函数中 必须要参与格式对象文档

    df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

    //调用DateFormat中的format方法 对已有的日期对象进行格式化

    String str_time = df.format(d);

     

    Calendar 日历类

    ava.util. Calendar
    
    public static void method(){
        Calendar c = Calendar.getInstance();
        System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1) + "月"
        + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日"
        + "星期" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }
    
    public static String getNum(int num){
        return num > 9 ? num + "" : "0" + num;
    }
    
    public static String getWeek(int index){
        //查表法 建立数据的对应关系
        //最好 数据个数是确定的 而且有对应关系 如果对应关系的一方 是数字 而且可以作为角标 那么可以通过数组来作为表
        String[] weeks = {"","日","一","二","三","四","五","六"};
        return weeks[index];
    } 

     

    十一 File 文件类

    java.io.File;

    1. 将文件系统中的文件和文件夹封装成了对象 提供了更多的属性和行为可以对这些文件和文件夹进行操作 这些是流对象办不到的 因为流只操作数据

    2. 具体方法:

    //创建

    boolean createNewFile(); 在指定目录下创建文件 如果该文件已存在 则不创建 而对操作文件的输出流而言 输出流对象已建立 就会创建文件 如果文件已存在 会覆盖 除非续写

    boolean mkdir(); 创建此抽象路径名指定的目录

    boolean mkdirs(); 创建多级目录

    //删除 注意: 在删除文件夹时 必须保证这个文件夹中没有任何内容 才可以将该文件夹用delete删除 window的删除动作 是从里往外删 java删除文件不走回收站 要慎用

    boolean delete(); 删除此抽象路径名表示的文件或目录

    void deleteOnExit(); 在虚拟机退出时删除

    //获取

    long length(); 获取文件大小

    String getName(); 返回由此抽象路径名表示的文件或目录的名称

    String getPath(); 将此抽象路径名转换为一个路径名字符串

    String getAbsolutePath(); 返回此抽象路径名的绝对路径名字符串

    String getParent(); 返回此抽象路径名父目录的抽象路径名 如果此路径名没有指定父目录 则返回 null

    long lastModified(); 返回此抽象路径名表示的文件最后一次被修改的时间

    File.pathSeparator; 返回当前系统默认的路径分隔符 windows默认为";"

    File.Separator; 返回当前系统默认的目录分隔符 windows默认为""

    //判断

    boolean exists(); 判断文件或者文件夹是否存在

    boolean isDirectory(); 测试此抽象路径名表示的文件是否是一个目录

    boolean isFile(); 测试此抽象路径名表示的文件是否是一个标准文件

    boolean isHidden(); 测试此抽象路径名指定的文件是否是一个隐藏文件

    boolean isAbsolute(); 测试此抽象路径名是否为绝对路径名

    //重命名

    boolean renameTo(File dest); 可以实现移动的效果 剪切+重命名

      

    十二 Properties

    一个可以将键值进行持久化存储的对象 Map --> Hashtable的子类

    用于属性配置文件 键和值都是字符串类型

    特点: 可以持久化存储数据, 键值都是字符串, 一般用于配置文件

    load(); 将流中的数据加载进集合 原理其实就是将读取流和指定文件相关联 并读取一行数据 因为数据是规则的key=value 所以获取一行后 通过 = 对该行数据进行切割 左边就是键 右边就是值 将键 值存储到properties集合中

    store(); 写入各个项后 刷新输出流

    list(); 将集合的键值数据列出到指定的目的地

     

     

  • 相关阅读:
    (转)运维角度浅谈MySQL数据库优化
    关于MySQL的null值
    MySQL优化——or条件优化
    MySQL优化原理
    Xcode Archive打包失败问题
    ionic3 对android包进行签名
    ios 审核未通过 相机相册权限问题
    js计算两个日期相差天数
    截取URL链接中字段的方法
    ionic3 自定义组件 滑动选择器 ion-multi-picker
  • 原文地址:https://www.cnblogs.com/huangyi-427/p/4717961.html
Copyright © 2011-2022 走看看