java常用API:String、StringBuffer、StringBuilder、System、Runtime、Math、Random类及时间日期相关类的使用。

java常用API:String、StringBuffer、StringBuilder、System、Runtime、Math、Random类及时间日期相关类的使用。,第1张

  1. String类
    初始化对象:
      构造方法:
         String()//创建一个内容为空的字符串。
         String(String str)//根据指定的字符串内容创建对象。
         String(char[] arr)//根据指定的字符串数组创建对象。
         String(byte[] arr)//根据指定的字节数创建对象.
			//创建一个内容为空的字符串。
			String s1 = new String();
			System.out.println(s1);
			
			//根据指定的字符串内容创建对象。
			String s2 = new String("abc");
			System.out.println(s2);
			
			//根据指定的字符串数组创建对象。
			char[] cArr = {'a','b','c'};
			String s3 = new String(cArr);
			System.out.println(s3);
			
			//根据指定的字节数组创建对象。
			byte[] bArr = {97,98,99,100};
			String s4 = new String(bArr);
			System.out.println(s4);//abcd
			
			//直接赋值:
			String s = "abc";
  1. String类常用成员方法。
    ①判断功能、获取、转换、切割等功能。
	//判断功能--------------------------------------------------------
	String str = "hello";
	System.out.println(str.equals("hello"));//比较字符串内容是否相同,区分大小写。
	System.out.println(str.equalsIgnoreCase("Hello"));//比较字符串内容是否相同,不区分大小写。
	System.out.println(str.startsWith("h"));//判断是否以指定的字符串开头。
	System.out.println(str.endsWith("o"));//判断是否以指定的字符串结尾。
	System.out.println(str.contains("ll"));//判断是否包含指定字符串。   
	     
	//获取功能---------------------------------------------------------
    System.out.println(str.length());//获取字符串长度。
    System.out.println(str.charAt(2));//获取指定索引上的字符。
    System.out.println(str.indexOf("l"));//获取指定字符串第一次出现的索引位置。
    System.out.println(str.lastIndexOf("l"));//获取字符串最后一次出现的索引位置。
    System.out.println(str.substring(2));//从指定索引位置截取字符串,默认到结尾。
    System.out.println(str.substring(2,4));//获取指定范围字符串
    
    //转换功能---------------------------------------------------------
    char [] cArr = str.toCharArray();//将字符串转成字符数组。
    for (int i = 0;i <cArr.length;i++){
        System.out.println(cArr[i]);
    }

    byte[] bArr = str.getBytes();//字符串转字节数组。
    for (int i = 0;i<bArr.length;i++){
        System.out.println(bArr[i]);
    }

    System.out.println(str.replace("ll","oo"));//新值替换旧值。

    System.out.println(str.toUpperCase());//字符串转大写。

    System.out.println(str.toLowerCase());//字符串转小写。

    System.out.println(str.valueOf(123));//将int数字转字符串类型数字。
    if (str.valueOf(123) instanceof String)
    {
        System.out.println("String类型");
    }
    
    //其他-----------------------------------------------------------
    String str1 = "a,b,c";
    String[] sArr = str1.split(",");//指定规则切割字符串
    for (int i = 0; i < sArr.length; i++){
        System.out.println(sArr[i]);
    }
    String str2 = "   a,b,c    ";
    System.out.println(str2.trim());//去除字符串两端空格。
  1. StringBuffer类
      由于字符串是常量,因此一旦创建,其内容和长度是不可改变的(重新赋值的时候是重新开辟了内存空间,而不是内容与长度的改变)。如果需要对一个字符串进行修改,则只能创建新的字符串。为了对字符串进行修改,Java提供了一个StringBuffer类(也称字符串缓冲区)。
      StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。
    常用方法:
	StringBuffer sb = new StringBuffer();//创建内容为空的字符串缓冲区对象。
	   
	sb.append("a");//添加数据
	sb.append("b");
	sb.append("c");
	sb.append("d");
	sb.append("e");
	System.out.println(sb);
	
	sb.insert(2,"d");//将字符串插入指定索引位置。
	System.out.println(sb);
	
	sb.deleteCharAt(0);//删除指定索引处的字符。
	System.out.println(sb);
	
	sb.delete(0,1);//删除指定索引范围的字符。
	System.out.println(sb);
	
	sb.replace(1,2, "d");//替换指定位置数据,参数1:开始索引,参数2:结束索引,参数3:替换的数据。
	System.out.println(sb);
	
	sb.setCharAt(0,'A');//修改指定索引处的字符
	System.out.println(sb);
	
	sb.reverse();//反转数据
	System.out.println(sb);
	
	String str = sb.toString();//转换为字符串对象。(转换后可调用String类里的方法 *** 作数据)
	if (str instanceof String){
	    System.out.println("String类型");
	}
  1. StringBuilder类
      StringBuilder类也可以对字符串进行修改,StringBuffer类和StringBuilder类的对象都可以被多次修改,并不产生新的未使用对象,成员变量与StringBuffer一样。
    与StringBuffer区别:
    ①线程安全:
      StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有修饰。

    ②缓冲区:
      StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。
      StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。

    ③性能:
      StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以毫无疑问,StringBuilder 的性能要远大于 StringBuffer。
    使用场景:
      StringBuffer 适用于用在多线程 *** 作同一个 StringBuffer 的场景,如果是单线程场合 StringBuilder 更适合。

  2. System类
      这句代码中就使用了System类。System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,想要引用这些属性和方法,直接使用System类调用即可。

	long time = System.currentTimeMillis();//获取当前系统时间
	System.out.println(time);
	//System.exit(0);//终止当前正在运行的java虚拟机。
	
    Properties prop = System.getProperties();//取得当前系统属性。
    System.out.println(prop);
    
    String name = System.getProperty("os.name");//取得当前指定系统属性。
    System.out.println(name);

	
    int[] arr1 = {1,2,3,4,5,6,7,8};
    int[] arr2 = new int[8];
     //(复制数组)参数1:数据源,参数2:源数组起始索引,参数3:目标数组,参数4:目标数组起始索引,参        int[] arr1 = {1,2,3,4,5,6,7,8};
    int[] arr2 = new int[8];
    System.arraycopy(arr1,0,arr2,0,3);
    for (int i = 0;i< arr2.length;i++)
        System.out.println(arr2[i]);
   
  1. Runtime类
      Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此在Runtime类定义的时候,它的构造方法已经被私有化了(单例设计模式的应用),对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能通过以下方式:
    Runtime run = Runtime.getRuntime();
      由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。
	Runtime rt = Runtime.getRuntime();//获取Runtime对象。
	//rt.exec("notepad.exe");//执行dos命令。
	System.out.println(rt.freeMemory());//获取虚拟机空闲内存。
	System.out.println(rt.maxMemory());//获取虚拟机最大可用内存。
	System.out.println(rt.totalMemory());//获取虚拟机总内存
	System.out.println(rt.availableProcessors());//获取虚拟机处理器个数
  1. Math类
      提供了大量的静态方法方便实现数学计算,求绝对值、最大值、最小值等。
     System.out.println(Math.abs(-1));//求绝对值
     System.out.println(Math.ceil(8.2));//向上取整
     System.out.println(Math.floor(7.9));//向下取整
     System.out.println(Math.round(4.5));//四舍五入
     System.out.println(Math.max(3,4));//计算两个数的最大值
     System.out.println(Math.min(3,4));//计算两个数的最小值
     System.out.println(Math.sqrt(4));//开平方
     System.out.println(Math.pow(2,3));//计算指数函数
     System.out.println(Math.random());//获取0.0~1.0之间随机小数(不包含1.0)
  1. Random类
      java.util中的Random类,可以在指定范围内随机产生数字。
       构造方法:
	Random r = new Random();//创建随机数对象
	int num = r.nextInt(10);
	System.out.println(num);
	
	Random r1 = new Random(5);//根据指定种子创建随机数对象
	int num1 = r1.nextInt(10)+10;//可通过+10表示获取10-20范围的随机数
	System.out.println(num1);
  1. 日期时间类
	//Instant,时间元年:1970年1月1日 0点0分0秒,世界时间,与国内时差8小时。
	//Instant i1 = Instant.now();
	System.out.println(Instant.now());//获取当前系统时间。
	System.out.println(Instant.ofEpochSecond(60));//根据时间元年过了指定秒数获取对象
	System.out.println(Instant.ofEpochMilli(1000*60));//根据时间元年过了指定毫秒数获取对象
	Instant instant = Instant.parse("1970-01-01T00:01:00.1Z");
	System.out.println(instant);//根据字符串时间获取对象
	System.out.println(Instant.from(instant));//根据指定时间获取对象。
	System.out.println(instant.getEpochSecond());//获取秒数
	System.out.println(instant.getNano());//抛开整秒不算,获取纳秒

②其他时间、日期类
  LocalDate、LocalTime、LocalDateTime常用方法使用。

    public static void method01(){
        //获取日期对象
        LocalDate d = LocalDate.now();//获取当前系统时间日期对象。
        System.out.println(d);
        System.out.println(LocalDate.parse("2022-03-08"));//根据字符串日期获取对象。
        System.out.println(LocalDate.of(2022,3,12));//根据指定年月日获取日期对象。

        DateTimeFormatter pattern=DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        System.out.println(d.format(pattern));//根据指定格式转为字符串
        System.out.println();
    }
    public static void method02(){
        //获取日期字段
        LocalDate d = LocalDate.now();//获取当前系统时间日期对象。
        System.out.println(d);
        System.out.println(d.getYear());//获取年份
        System.out.println(d.getMonthValue());//获取月份
        System.out.println(d.getDayOfMonth());//获取日期
    }
    public static void method03(){
        //判断相关
        LocalDate d1 =  LocalDate.of(2024,3,12);
        LocalDate d2 =  LocalDate.of(2022,3,11);
        LocalDate d3 =  LocalDate.of(2022,3,11);
        System.out.println(d1.isBefore(d2));//判断是否在指定日期之前
        System.out.println(d1.isAfter(d2));//判断是否在指定日期之后
        System.out.println(d2.isEqual(d3));//判断指定日期是否相同
        System.out.println(d1.isLeapYear());//判断是否是润年
    }

    public static void method04(){
        //增减日期
        LocalDate d1 =  LocalDate.of(2024,3,12);
        System.out.println(d1.plusYears(1));//增加或减少年份(正数向后加、负数向前减)
        System.out.println(d1.plusMonths(1));//增加或减少月
        System.out.println(d1.plusDays(1));//增加或减少日
    }
    public static void method05(){
        //增减日期
        LocalDate d1 =  LocalDate.of(2024,3,12);
        System.out.println(d1.minusYears(1));//增加或减少年份(正数向前减、负数向后加)
        System.out.println(d1.minusMonths(1));//增加或减少月
        System.out.println(d1.minusDays(1));//增加或减少日
    }
    public static void method06(){
        //修改日期
        LocalDate d1 =  LocalDate.of(2024,3,12);
        System.out.println(d1.withYear(2022));//年
        System.out.println(d1.withMonth(1));//月
        System.out.println(d1.withDayOfMonth(1));//日
    }
        //LocalTime类,包含时分秒,与LocalDate类似
    public static void method07() {
        LocalTime time = LocalTime.now();
        System.out.println(LocalTime.now());
        System.out.println(LocalTime.of(10,10,10));
        DateTimeFormatter pattern= DateTimeFormatter.ofPattern("HH时mm分ss秒");
        System.out.println(time.format(pattern));
        System.out.println(time.getHour());
        System.out.println(time.plusHours(1));
    }
    //LocalDateTime类
    public static void method08() {
        LocalDateTime time = LocalDateTime.now();
        System.out.println(time);
        System.out.println(LocalDateTime.of(2022,10,10,10,10,10));
        DateTimeFormatter pattern= DateTimeFormatter.ofPattern("yyyy年MM月dd日  HH:mm:ss");
        System.out.println(time.format(pattern));
        System.out.println(time.getYear());
        LocalDate t1 = time.toLocalDate();//对象转换年月日
        LocalTime t2 = time.toLocalTime();//对象转换时分秒
        System.out.println(t1);
        System.out.println(t2);
    }
    //Duration类:时间间隔对象
    public static void method09() {
        LocalTime time1 = LocalTime.of(1,1,1);
        LocalTime time2 = LocalTime.of(2,2,2);
        Duration duration = Duration.between(time1,time2);
        System.out.println(duration.toHours());//小时
        System.out.println(duration.toMinutes());//分钟
        System.out.println(duration.toMillis());//毫秒
        System.out.println(duration.toNanos());//纳秒
    }
    //Period类:日期间隔对象
    public static void method10() {
        LocalDate d1 = LocalDate.of(2022,8,8);
        LocalDate d2 = LocalDate.of(2023,9,9);
        Period period= Period.between(d1, d2);
        System.out.println(period.getYears());//年
        System.out.println(period.getMonths());//月
        System.out.println(period.getDays());//日
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/867835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存