Java常用类03

1.Integer缓冲区

  • Java预先创建了256个常用的整数包装类型对象
  • 在实际应用当中,对已创建的对象进行复用

2.String类

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符串池中,可以共享
  • String s = “Hello” ; 产生一个对象,在字符串池中存储
  • String s = new String(“Hello”) ; //产生两个对象,堆、池各存储一个

代码示例:

package LEI;

public class Demo04 {
    public static void main(String[] args) {
        String name = "hello";//hello为常量,存储在字符串池中
        name="zhuzhu"; //并没有修改数据,而是重新开辟新的空间存储
        String name2="zhuzhu";

        //字符串的另一种创建方式
        String str=new String("java");
        String str2=new String("java");
        System.out.println(str==str2);
        System.out.println(str.equals(str2));
    }
}

测试结果:
在这里插入图片描述

3.String常用方法

  • public int length() : 返回字符串的长度
  • public char charAt(int index) : 根据下标获取字符
  • public boolean contains(String str) : 判断当前字符串中是否包含str
  • public char[] toCharArray() : 将字符串转换成数组
  • public int indexOf(String str) : 查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1
  • public int lastIndexOf(String str) : 查找字符串在当前字符串中最后一次出现的下标索引
  • public String trim() : 去掉字符串前后的空格
  • public String toUpperCase() : 将小写转成大写
  • public boolean endwith(String str) : 判断字符串是否以str结尾
  • public String replace(char oldChar,char newChar) : 将旧字符串替换成新字符串
  • public Stringl] split(String 8r) : 根据str做拆分
package LEI;

import java.util.Arrays;
import java.util.Locale;

public class Demo05 {
    public static void main(String[] args) {
        //1.length(); 返回字符串的长度
        //2.charAt(int index); 根据下标获取字符
        //3.contains(String str); 判断当前字符串中是否包含str
        String content="博主zhuzhu可太美了";
        System.out.print(content.length()+"  ");
        System.out.print(content.charAt(content.length()-1)+"  ");
        System.out.print(content.contains("zhuzhu")+"  ");
        System.out.print(content.contains("zhuzhuyu")+"  ");

        //4.toCharArray(); 将字符串转换成数组
        //5.indexOf(); 查找str首次出现的下标
        //6.lastIndexOf(); 查找字符串在当前字符串中最后一次出现的位置
        System.out.println(" ");
        System.out.println("==========================================");
        System.out.print(Arrays.toString(content.toCharArray())+"  ");
        System.out.print(content.indexOf("zhuzhu")+"  ");
        System.out.print(content.indexOf("zhuzhu",4)+"  ");
        System.out.print(content.lastIndexOf("zhuzhu")+"  ");

        //7.trim(); 去掉字符串前后的空格
        //8.toUpperCase(); 将小写转成大写
        //9.endwith(str); 判断字符串是否以str结尾,starWith(str);判断是否以str开头
        System.out.println(" ");
        System.out.println("==========================================");
        String contents2="   hello World   ";
        System.out.print(contents2.trim()+"  ");
        System.out.print(contents2.toUpperCase()+"  ");
        System.out.print(contents2.toLowerCase()+"  ");
        String filename="hello.java";
        System.out.print(filename.endsWith(".java")+"  ");
        System.out.print(filename.startsWith("hello")+"  ");

        //10.replace(char old,char new); 将旧字符串替换成新字符串
        //11.split(); 根据str做拆分
        System.out.println("  ");
        System.out.println("======================================");
        System.out.print(content.replace("zhuzhu","zhuuyu")+"  ");

        String say="zhuzhu is a good girl";
        String[] arr=say.split(" ");
        System.out.print(arr.length+"  ");
        for(String string:arr){
            System.out.print(string+"  ");
        }

        //补充两个方法equals、compareTo();比较大小
        System.out.println(" ");
        System.out.println("============================================");
        String s1="hello";
        String s2="HELLO";
        System.out.print(s1.equalsIgnoreCase(s2)+"  ");

        String s3="abc";
        String s4="xyz";
        System.out.print(s3.compareTo(s4)+"  ");
    }
}

测试结果:
在这里插入图片描述

4.可变字符串

  • StringBuffer : 可变长字符串,运行效率慢,线程安全
  • StringBuilder : 可变长字符串,运行效率快,线程不安全
  • StringBuffer效率比String高,StringBuilder比String节省内存

代码示例:

package LEI;

public class Demo07 {
    public static void main(String[] args) {
        //StringBuffer sb=new StringBuffer();
        StringBuilder sb=new StringBuilder();
        //1.append();追加
        sb.append("zhuzhu超棒");
        System.out.println(sb.toString());
        //2.insert();添加
        sb.insert(0,"前面,");
        System.out.println(sb.toString());
        //3.replace(); 替换
        sb.replace(0,2,"good,");
        System.out.println(sb.toString());
        //4.delete(); 删除
        sb.delete(0,6);
        System.out.println(sb.toString());
    }
}

测试结果:
在这里插入图片描述

5.BigDecimal

  • 在java.math包中
  • 用于精确计算浮点数
  • 方法:BigDecimal add(BigDecimal bd) 加法、减(subtract)、乘(multiply)、除(divide)

代码示例:

package LEI;

import java.math.BigDecimal;

public class Demo08 {
    public static void main(String[] args) {
        double d1=1.0;
        double d2=0.9;
        System.out.println(d1-d2);

        //BigDecimal,大的浮点数精确计算
        BigDecimal bd1=new BigDecimal("1.0");
        BigDecimal bd2=new BigDecimal("0.4");
        BigDecimal r1=bd1.subtract(bd2);//减法
        BigDecimal r2=bd2.add(bd1);//加法
        BigDecimal r3=bd1.multiply(bd2);//乘法
        BigDecimal r4=bd1.divide(bd2);//除法
        System.out.println(r1);
        System.out.println(r2);
        System.out.println(r3);
        System.out.println(r4);
    }
}

测试结果:
在这里插入图片描述

6.Calendar

  • Calendar提供了获取或设置各种日历字段的方法
  • 构造方法
    protected Calendar() : 由于修饰符是protected,所以无法直接创建该对象

代码示例:

package LEI;

import java.util.Calendar;

public class Demo09 {
    public static void main(String[] args) {
        //1.创建Calendar对象
        Calendar calendar=Calendar.getInstance();
        System.out.println(calendar.getTime().toLocaleString());
        System.out.println(calendar.getTimeInMillis());
        //2.获取时间信息
        //获取年
        int year=calendar.get(Calendar.YEAR);
        //月
        int month=calendar.get(Calendar.MONTH);
        //日
        int day=calendar.get(Calendar.DATE);
        //小时
        int hour=calendar.get(Calendar.HOUR_OF_DAY);
        //分
        int minute=calendar.get(Calendar.MINUTE);
        //秒
        int second=calendar.get(Calendar.SECOND);
        System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+":"+minute+":"+second);
    }
}

测试结果:
在这里插入图片描述

7.SimpleDateFormat

  • SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类
  • 进行格式化(日期—>文本)、解析(文本—>日期)

代码示例:

package LEI;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Demo10 {
    public static void main(String[] args) throws ParseException {
        //1.创建SimpleDateFormat对象Y年M月
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
        //2.创建Date
        Date date=new Date();
        //格式化Date(把日期转成字符串)
        String str= sdf.format(date);
        System.out.println(str);
        //解析(把字符串转成日期)
        Date date2=sdf.parse("1990/05/01");
        System.out.println(date2);
    }
}

测试结果:
在这里插入图片描述

8.System类

  • 主要用于获取系统的属性数据和其他操作,构造方法私有

代码示例:

package LEI;

public class Demo11 {
    public static void main(String[] args) {
        int[] arr={20,21,3,4,41,42,232,32};
        int[] dest=new int[8];
        System.arraycopy(arr,4,dest,4,4);//源数组、从哪个位置开始复制、目标数组、目标数组的位置、复制的长度
        for (int i=0;i< dest.length;i++){
            System.out.print(dest[i]+"  ");
        }
        System.out.println(System.currentTimeMillis());//获取系统当前时间,返回毫秒值

        long start=System.currentTimeMillis();
        for (int i=0;i<999898098;i++){
            for (int j=0;j<892589345;j++){
                int result=i+j;
            }
        }
        long end=System.currentTimeMillis();
        System.out.println("用时:"+(end-start));
    }
}

测试结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值