Java基础 --常用类

常用类

1.StringBuffer类

String 不可变

 public static void main(String[] args) {
        StringBuffer ss = new StringBuffer();
        //构造一个没有字符的字符串缓冲区(容器),初始容量为16个字符。
        System.out.println(ss);
        ss.append("小白");//追加
        ss.append("小黑");
        System.out.println(ss);
        //插入  这个2 就是下标索引
        ss.insert(2,"小黄");
        System.out.println(ss);
        //字符串反转
        System.out.println(ss.reverse());
        //删除一个字符串delet(int start, int end)  要头不要尾
        System.out.println(ss.delete(2,4));


String Stringbuffer StringBuilder区别

1.String为固定长度的字符串,StringBuilder和StringBuffer为变长字符串;
2.stringBuffer是线程安全的,StringBuilder是非线程安全的;
3.StringBuffer和StringBuilder的默认初始容量是16,可以提前预估好字符串的长度,进一步减少扩容带来的额外开销

2.枚举类(enum)

语法格式:

public enum 枚举类名 {
	写常量,常量之间使用逗号隔开
	一般都是大写的
}
enum Color {
    RED ,YELLOW,WHITE;
}

public class Dome2 {
    public static void main(String[] args) {
        //RED这个数据  属于Color这个类的实例的  常量是static修饰的
        Color red = Color.RED;
        System.out.println(red);
        Color white = Color.WHITE;
        System.out.println(white);
        Color yellow = Color.YELLOW;
        System.out.println(yellow);

    }

可以用swicth (表达式) {}

表达式数据类型 byte short int char String 枚举

enum Color1 {
    RED ,YELLOW,WHITE;
}

public class Dome3 {
    public static void main(String[] args) {
        Color1 yellow = Color1.YELLOW;
        switch (yellow){
            case RED:
                System.out.println("红色");
                break;
            case WHITE:
                System.out.println("白色");
                break;
            case YELLOW:
                System.out.println("黄色");
                break;
        }
    }

枚举类中的几个方法

values();枚举类中所有的值
ordinal();可以找到每个枚举类中常量的索引
valueOf();返回值的是指定字符串的枚举常量

enum Color2{
    RED ,YELLOW,WHITE;
}

public class Dome4 {
    public static void main(String[] args) {
        //values();枚举类中所有的值
        //ordinal();可以找到每个枚举类中常量的索引
        //valueOf();返回值的是指定字符串的枚举常量
        Color2[] values = Color2.values();
        for (Color2 value : values) {
            System.out.println(value+"对应索引"+value.ordinal());
        }
        //valueOf返回的是字符串的枚举常量对象
        //只是换了一种写法而已。
        Color2 yellow = Color2.valueOf("YELLOW");
        Color2 yellow1 = Color2.YELLOW;
        System.out.println(yellow);
        System.out.println(yellow1);
    }

3.包装类

Java有八大基本数据类型,都有与之对应的包装类

int-Integer

byte-Byte

short-Short

long-Long

float-Float

double-Double

boolean-Boolean

char-Character

1.自从JDK1.5之后,有拆箱和装箱

自动装箱:基本数据类型转为包装类

自动拆箱:包装类转为基本数据类型

2.***Value();包装类转为基本数据类型

3.toString();基本数据类型转为字符串

4.parse***();字符串类型的数据转为基本数据类型

5.valueOf();基本数据类型转为包装类类似手动装箱

4.Math

Math类包含执行基本数字运算的方法

专门处理数学运算的一个类

绝对值 abs()

最大值 max()

最小值 min()

向上取整 ceil()

向下取整floor()

四舍五入round()

随机数random()

public static void main(String[] args) {
       //绝对值 abs()
        //
        //最大值 max()
        //
        //最小值 min()
        //
        //向上取整 ceil()
        //
        //向下取整floor()
        //
        //四舍五入round()
        //
        //随机数random()
        System.out.println(Math.PI);
        System.out.println(Math.E);
        //PI和E是两个常量
        System.out.println(Math.abs(-88));//绝对值
        System.out.println(Math.max(44,55));//最大值
        //求三个数的最大值
        System.out.println(Math.max(44,Math.max(11,88)));
        System.out.println(Math.min(44,77));//最小值
        System.out.println(Math.ceil(44.2));//向上取整
        System.out.println(Math.floor(44.5));//向下取整
        System.out.println(Math.round(44.7));//四舍五入
        System.out.println(Math.random());//随机数大于等于 0.0 ,小于 1.0   double







    }

5.Random类

专门处理随机数的类

public class Dome6 {
    //处理随机数的类
    public static void main(String[] args) {
        Random random = new Random();
        System.out.println(random.nextInt());
        System.out.println(random.nextDouble());
        System.out.println(random.nextBoolean());
        System.out.println(random.nextInt(45));//[0,45)区间
        System.out.println(random.nextFloat());

    }

6.System类

  public static void main(String[] args) {
        PrintStream out = System.out;
        //是一个流 PrintStream 打印流
        out.println("小河");
        System.out.println("大河");
        //标准输出流打印的东西
        System.err.println("错误输出流打印的东西");
        错误输出流打印的东西
        //输入流
        Scanner scanner = new Scanner(System.in);
        int s = scanner.nextInt();
        System.out.println(s);
        long l = System.currentTimeMillis();
        // 在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位
        System.out.println(l/1000/60/60/24+"天");
        //获取系统的东西  System 英文单词就是系统的意思
        //os.name 系统的名字
        Properties properties = System.getProperties();
        System.out.println(properties.get("os.name"));
        System.out.println(properties.get("os.version"));
        System.out.println(properties.get("user.name"));
        System.out.println(properties.get("user.dir"));
        System.out.println(properties.get("java.version"));
        //Windows 10
        //10.0
        //lzy68
        //E:\day21_lzy
        //1.8.0_241


    }

7.Runtime

  public static void main(String[] args) throws IOException {
        //runtime对象可以启动咱们电脑上面任意的一个软件
        Runtime runtime = Runtime.getRuntime();
        runtime.exec("D:\\Tencent\\eclipse\\eclipse.exe");
        //打开eclipse
        //返回Java虚拟机将尝试使用的最大内存量。字节数
        System.out.println(runtime.maxMemory()/1024/1024+"MB" );
        //MB
        //返回Java虚拟机中的可用内存量 字节数
        System.out.println(runtime.freeMemory()/1024/1024+"MB" );
        //返回Java虚拟机中的内存总量 字节数
        System.out.println(runtime.totalMemory()/1024/1024+"MB" );
    }

8.Date类

专门处理日期的一个类

y年代表整数y -1900

一个月由0到11的整数表示; 0是1月,1是2月,等等; 11月12日。

日期(月的一天)以通常的方式从1到31的整数表示。

 //Date类
    public static void main(String[] args) {
        Date date = new Date();
        //Tue Aug 09 19:24:58 CST 2022
        System.out.println(date);
        System.out.println(date.getYear()+1900);
        //2022
        // 获取年份 这个年份是减去1900以后的值,所以得加上1900
        System.out.println(date.getMonth() + 1);
        //一个月由0到11的整数表示; 0是1月,1是2月,等等; 11月12日。
        System.out.println(date.getDay());
        System.out.println(date.getHours());
        System.out.println(date.getMinutes());
        System.out.println(date.getSeconds());
        //8
        //2
        //19
        //26
        //32
    }
 public static void main(String[] args) {

        Calendar calendar = Calendar.getInstance();
        int i = calendar.get(Calendar.YEAR);
        System.out.println(i);
        //获取当前的年份
        System.out.println(calendar.get(Calendar.MONTH)+1);
        //获取月份  需要加1的
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        // //获取当月的第几天
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK)-1);
        //获取这周的第几天 美国周日为周一
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
        //获取这一年的第几天
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.MINUTE));
        System.out.println(calendar.get(Calendar.SECOND));
        //获取时间
        //获取当前的时间的 返回值是Date类型的数据
        Date ti= calendar.getTime();
        System.out.println(ti);
        //Tue Aug 09 19:37:02 CST 2022
        //看不懂  通过一个类将日期格式转换一下
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(ti);
        System.out.println(format);
        //Tue Aug 09 19:40:11 CST 2022
        //2022-08-09 19:40:11
        //年-月-天 时:分:秒


    }

9.Calendar

国际通用的是Calendar类

  public static void main(String[] args) throws ParseException {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        将一个字符串类型的数据变成一个Date类型的数据
        Date strat = format.parse("2001-08-19");
        Date end = format.parse("2022-08-09");
        //要将字符串转为Date类型才能按照日期来算
        //将Date类型的数据转为时间戳,进行相减  因为时间戳是一个long类型数据可以想减
        long stratTime = strat.getTime();
        //毫秒数
        long endTime = end.getTime();
        long num = endTime - stratTime;
        System.out.println(num/1000/60/60/24);

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值