JAVA API学习2

 String类/String Buffer类/String Builder类:

String类:

字符串是由多个字符组成的一串字符串,java所有字符串都是String类的实例

创建方式有两种:

package com.ffyc.api.day6.Stringdemo;

public class String1 {
    public static void main(String5[] args) {
        /*
        java.lang.String
           java中所有字符串都是此类的实例
           "abc"-->字符串对象    底层是一个char数组  private final char value[]
           字符串对象创建方式:
           1.String s=“abc";
              创建时,先去字符串常量池中去查找有没有相同值的对象,没有就创建一个字符串对象1,并返回地址
              如果字符串已经存储,不用创建新的,直接返回已存在对象的地址
           2.String s1=new String("abc");每次都是在堆中创建新的字符串对象

         */
        String s="abc";
        String ss="abc";
        System.out.println(s==ss);
        System.out.println(s.equals(ss));

        String s1=new String("abc");
        String s2=new String("abc");
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));

    }
}

String类型赋值后不能被改变,所以诞生了StringBuffer类和StringBuilder类

StringBuffer:

StringBuffer 类概述
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的 String 对象,
既耗时,又浪费空间。而StringBuffer 就可以解决这个问题
因为它是线程安全的可变字符序列
代码示例:
package com.ffyc.api.day6.StringBufferdemo;

import java.util.Arrays;

public class StringBuffer1 {
    public static void main(String[] args) {
        /*
        StringBuffer类概述
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String
对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题
线程安全的可变字符序列
         */
        StringBuffer s1=new StringBuffer(66);//创建默认容量为16的char数组s1;   capacity:指定数组容量

        StringBuffer s2=new StringBuffer("hidsfbiigdgoogo");//创建内容长度加16的容量的char数组s2
        s1.append("smdkfjseohfhedaodojwoid");
        System.out.println(s1);
        s1.replace(0,9,"oop");
        System.out.println(s1);
        s1.reverse();
        System.out.println(s1);
        System.out.println(s2);
        s2.insert(4,6);
        System.out.println(s2);
        s2.deleteCharAt(6);
        System.out.println(s2);

    }
}

StringBuilder:

StringBuilder类和StringBuffer类的功能是一样的,只不过StringBuffer是线程安全的

String/StringBuffer/StringBuilder三者间对比:

● String :是字符常量 , 适用于少量的字符串操作的情况
● StringBuilder :适用于单线程下在字符缓冲区进行大量操作的情况
● StringBuffer :适用多线程下在字符缓冲区进行大量操作的情况
package com.ffyc.api.day6.Stringbuilderdemo;

public class StringBulider1 {
    public static void main(String[] args) {

        //总结:
       //String:是一个值不可以改变的字符串
        // StringBuffer:值可以改变且不需要创建新对象,方法上都加了锁,在多线程(任务)执行时是线程安全的
        //StringBuilder:值可以改变且不需要创建新对象,方法上都没加锁,多线程时不安全,适合单线程
        StringBuilder s=new StringBuilder(999999);
        s.append(666);//向字符串末尾添加内容
        s.append(65515536);
        System.out.println(s);
        s.insert(6,"fafysehifiuewfuei");//向索引位置插入字符串
        System.out.println(s);

    }
}

Math类/Random类:

Math类:

● java.lang.Math 提供了一系列静态方法用于科学计算;其方法的参数和
返回值类型一般为 double 型。
abs 绝对值
sqrt 平方根
pow(double a, double b) a b 次幂
max(double a, double b)
min(double a, double b)
random() 返回 0.0 1.0 的随机数
long round(double a) double 型的数据 a 转换为 long 型(四舍五入)

Random类:

这个类是用来产生随机数的
●  构造方法
public Random()
● 成员方法
public int nextInt()
public int nextInt(int n)

 Date类/Calendar类/ SimpleDateFormat类:

Date类
使用Date类代表当前系统时间
Date d = new Date();
Date d = new Date(long d);
package com.ffyc.api.day7;

import java.util.Date;

public class DateDemo {
    public static void main(String[] args) {
        Date da=new Date();//获取程序运行时刻时间
        System.out.println(da);
        System.out.println(da.getDate());
        System.out.println(da.getDay());
        System.out.println(da.getSeconds());
        System.out.println(da.getMonth());
        System.out.println(da.getTime());
    }
}
Calendar类
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建
对象的过程对程序员来说是透明的,只需要使用getInstance方法创建
即可。
Calendar c1 = Calendar.getInstance();
c1.get(Calendar. YEAR);
package com.ffyc.api.day7;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Calender1 {
    public static void main(String[] args) {
        Calendar ca=Calendar.getInstance();
        System.out.println(ca.get(Calendar.YEAR));
        Calendar calendar=new GregorianCalendar();
        System.out.println(calendar.get(Calendar.HOUR));
    }
}
SimpleDateFormat 日期格式化类
构造方法
SimpleDateFormat(格式); // yyyy-MM-dd
日期转字符串
Date now=new Date();
myFmt.format(now);
字符串转日期
myFmt.parse(“2018-02-10”);
字符串日期格式与 指定格式必须一致
例如:String s = “2018-03-15”;
new SimpleDateFormat(“yyyy-MM-dd”)
package com.ffyc.api.day7;

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

public class  SimpleDateFormat6 {
    public static void main(String[] args) throws ParseException {
        /*
        把字符串日期 转为 Date对象
         */
        String s="2020-05-20";
        SimpleDateFormat sdf=new SimpleDateFormat("yy-mm-dd");
        Date date=sdf.parse(s);
        System.out.println(date.getYear()+1900);
        /*
        把日期对象 转为 指定格式的字符串
         */

    }
}

BigInteger类/BigDicimal类:

BigInteger:

BigDicimal:

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值