Java常用类

1、包装类

Java语言中,为了能够把基本数据类型当做对象处理,通过包装类将八个基本数据类型包装成类,并提供了多种方法供以调用。

Java中8个基本数据类型各自对应的包装类
在这里插入图片描述

package com.xiang.wrapper;

public class TestA {
    public static void main(String[] args) {
        String a ="10";
        int aa=20;//基本类型的数据
        Integer bb = new Integer(30);//包装类表示的数据

        //把String类型的数据转成int类型
        int i = Integer.parseInt(a);

        System.out.println(Integer.SIZE);//32
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(i);
        System.out.println(aa);
        System.out.println(bb);
    }

}
/*
32
2147483647
-2147483648
10
20
30
*/

package com.xiang.wrapper;

//基本类型的数据和包装类之间的相互转化
public class TestB {
    public static void main(String[] args) {
         int aa = 10;

         //把基本类型的数据转成包装类
         Integer bb = new Integer(aa);

         //把一个包装类转成基本类型
        int cc = bb.intValue();


        int a = 10;
        //自动装箱     基本类型--->包装类
        Integer b=a;//底层使用Integer.valueOf()完成自动装箱的操作

        //自动拆箱   包装类--->基本数据类型
        int c =b;//底层使用intValue()完成自动拆箱的过程
    }
}

在这里插入代码package com.xiang.wrapper;

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

        int a = 10;
        Integer b = 10;//自动装箱

        System.out.println(a==b);//T + - * / == 自动的拆箱的操作
        System.out.println(b.equals(a));//T自动装箱 a会自动转成包装类

        Integer aa =new Integer(10);
        Integer bb = new Integer(10);

        System.out.println(aa==bb);//false
        System.out.println(aa.equals(bb));//T

        Integer aaa=122;//自动装箱

        Integer bbb=122;


        System.out.println(aaa==bbb);//T
        System.out.println(aaa.equals(bbb));//T

        Integer aaaa=258;
        Integer bbbb=258;
        System.out.println(aaaa==bbbb);//F
        System.out.println(aaaa.equals(bbbb));//T
    }
}

2、String类

package com.xiang.string;

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

        String a ="xiang";

        String b=new String("xiang");
    }
}

package com.xiang.string;

import java.util.Locale;
import java.util.UUID;

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

        String a="xiang翔xiang";
        String b="";//空字符串  在常量池中是空的字符串
        String c=null;//空对象  没有任何的地址

        System.out.println("==============字符串简单方法=================");
        System.out.println(a.length());//返回字符串的长度  掌握
        System.out.println(b.isEmpty());//判断字符串是否为空
        System.out.println(a.startsWith("xiang"));//判断字符串是用xx开头语
        System.out.println(a.endsWith("翔"));//判断字符串是用xx结尾
        System.out.println(a.toUpperCase());//使字符串中所有英文全部大写
        System.out.println(a.toLowerCase());//使字符串中所有英文全部小写

        System.out.println("==============字符串查找/截取方法(全部掌握)=================");

        System.out.println(a.charAt(5));//我们可以知道String底层是一个char类型的数组,返回的是指定下标对应的字符

        System.out.println(a.indexOf("翔"));//根据指定字符串查询指定的下标,只返回查询到的第一个元素下标,查询不到返回-1

        System.out.println(a.indexOf("x",4));//从指定位置查询字符串下标

        //1.jpg  1.1.1.jpg
        System.out.println(a.lastIndexOf("x",7));

        System.out.println(a.substring(5));//从下标为5的位置开始截取字符串 一直到结束

        System.out.println(a.substring(5,6));//[5,6) 指定开始截取字符串的开始和结束下标

        //获得.jpg后缀
        String fileName="1.2.3.jpg";
        //获得最后一个.所在的下标
        int i=fileName.lastIndexOf(".");
        System.out.println(i);

        String substring = fileName.substring(i);
        System.out.println(substring);

        String uuid = UUID.randomUUID().toString();
        System.out.println(uuid);

        System.out.println(uuid+substring);
    }
}
/*输出结果:
11
true
true
false
XIANG翔XIANG
xiang翔xiang
==============字符串查找方法=================
翔
5
6
6
翔xiang
翔
5
.jpg
6a5a0999-d863-4496-9c4d-6c7e4c446676
6a5a0999-d863-4496-9c4d-6c7e4c446676.jpg
*/
package com.xiang.string;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class StringC {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String str ="xiang翔";
        System.out.println("==============字符串中转化方法=======================");

        byte[] bytes = str.getBytes();

        String str2 = new String(bytes, "GBK");//可以给指定的字符串进行重新的编码,我们以后会使用


        System.out.println(str2);
        System.out.println("==============字符串中拼接、替换、查询是否含有方法=======================");

        String str3="x-i-a-n-g-b";
        System.out.println(str3.contains("l"));//是否包含指定的字符串

        System.out.println(str3.replace("b","翔"));//替换所有指定的字符串内容
        System.out.println(str3.replaceAll("b","翔"));//替换所有指定的字符串内容支持正则表达式

        System.out.println(str3.concat("xxx"));//字符串的拼接

//        str3 = str3.concat("a").concat("b").concat("c");
//        System.out.println(str3);

        //按照指定的字符串进行分割,返回值是一个String数组
        String[] split = str3.split("-");

        System.out.println(Arrays.toString(split));

        String str4 = " x ia n g b ";
        System.out.println(str4.trim());//去除字符串中开始和结束的空格

        System.out.println(str4.replace(" ",""));//替换

    }
}

package com.xiang.string;

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

        String str="sxt";
        String str2="Sxt";

        System.out.println(str.equals(str2));
        System.out.println(str.compareTo(str2));//忽略大小写比较
        System.out.println(str.compareToIgnoreCase(str2));//不忽略大小写比较
    }
}

package com.xiang.string;

import java.util.Locale;

public class StringE {
    public static void main(String[] args) {
        String str1 = "bjsxt";

        System.out.println(str1.toUpperCase());
        System.out.println(str1);

        System.out.println(str1.length());
        System.out.println(str1.isEmpty());//是否为空
        System.out.println(str1.charAt(4));//取出指定位置的值

        System.out.println("bjsxt".equals(str1));

        System.out.println("bjsxdsdat".compareTo(str1));//若数为正则前面的数大,为负则为后面的数大

        System.out.println(str1.concat("p"));//拼接


    }
}

package com.xiang.string;

public class Test01 {
    public static void main(String[] args) {
        String s0= "5";
        String s1= "52";
        String s2= "5"+"2";
        String s3= "5"+2;
        String s4= s0+2;



        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s1==s4);
        
        /*
        true
        true
        false
         */
    }
}

3、StringBuffer和StringBuilder类

package com.xiang.string;

public class StringF {
    public static void main(String[] args) {
        StringBuilder stringBuilder =new StringBuilder("bjsxt");

        long l = System.currentTimeMillis();

        for (int i = 0; i < 100000; i++) {
            stringBuilder.append("sxt");
        }
        long l1 = System.currentTimeMillis();
        System.out.println(l1-l);
    }
}
/*
    String 拼接使用StringBuilder效率更高

 */

package com.xiang.string;

public class StringG {
    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder("xiang");

//        builder.append("bda");//内容追加的方法

//        builder.insert(3,"翔");//可以在指定位置追加内容

//        System.out.println(builder.charAt(2));//取出指定下标字符

//        builder.setCharAt(3,'u');//可以给指定位置设置字符

//        builder.replace(1,3,"翔");//[1,3) 进行指定字符替换

//        builder.deleteCharAt(3);//删除指定位置字符

//        builder.delete(1,3);//删除多个字符 [1,3)

//        builder.reverse();//倒叙输出字符串
        System.out.println(builder);

        //String 类型转成stringBuilder
        String str="xiang";
        StringBuilder stringBuilder = new StringBuilder(str);

        //stringBuilder 转成String
        String s = stringBuilder.toString();
    }
}

package com.xiang.string;

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

        StringBuilder builder = new StringBuilder("bjsxt");

        System.out.println("真实内容长度:"+builder.length());//真实内容长度

        System.out.println("底层数组长:"+builder.capacity());//底层数组的长度

        for (int i = 0; i < 16; i++) {
            builder.append("s");
        }

        System.out.println(builder);
        System.out.println("真实内容长度:"+builder.length());//真实内容长度

        System.out.println("底层数组长:"+builder.capacity());//底层数组的长度

        builder.append("s");
        System.out.println("底层数长度(扩容1):"+builder.capacity());//底层数组的长度

        for (int i = 0; i < 22; i++) {
            builder.append("a");
        }
        builder.append("a");
        System.out.println("底层数长度(扩容2):"+builder.capacity());//底层数组的长度

    }
}
/*
StringBuilder底层默认char数组长度为16

StringBuilder底层的扩容机制是 原有长度*2+2
 */
package com.xiang.string;
/*
String常用面试题
 */
public class StringI {
    public static void main(String[] args) {
        String a ="a";
        String b ="b";
        String c = "c";
        String d = "d";
        String str = "abcd";
        //字符串拼接的时候如果全部是常量 和直接写一个结果的含义是一样
        String str2 = "a"+"b"+"c"+"d";//创建了一个对象
        String str3 = a+b+c+d;//创建了1个对象

        //只要含有变量的连接 采用的就是这个优化机制
        StringBuilder builder =new StringBuilder();
        builder.append(a);
        builder.append(b);
        builder.append(c);
        builder.append(d);

        System.out.println(str==str2);
        System.out.println(str2==str3);
    }
}

4、Date类和DateFormat类

package com.xiang.date;


import java.util.Date;

/*
日期类中常用方法
 */
public class DateA {
    public static void main(String[] args) {
        Date date = new Date();

        System.out.println(date);

        System.out.println(date.getYear());//从1900年到现在的差值
        System.out.println(date.getMonth());//0-11个月
        System.out.println(date.getDate());//今天是当前月第几天
        System.out.println(date.getDay());//周几
        System.out.println(date.getHours());//24小时
        System.out.println(date.getMinutes());//分钟
        System.out.println(date.getSeconds());//秒

        System.out.println(date.getTime());//自1970-01-01 00:00:00以来的毫秒数

        System.out.println(date.toLocaleString());//获得年月日时分秒


    }
}

package com.xiang.date;

import java.sql.Date;

/*
Date中三个子类

sql包下的类
Date:只含有年月日
Time:只含有时分秒
Timestamp:时间戳 既含有年月日又含有时分秒
 */
public class DateB {
    public static void main(String[] args) {

//        Date date = new Date();
        //只含有年月日,没有时分秒
        java.sql.Date date1 = new java.sql.Date(System.currentTimeMillis());

        System.out.println(date1);

        //字符串类型的数据转成Date类型的数据
        String d="2019-09-10";
        Date date = Date.valueOf(d);
        System.out.println(date);
    }
}

package com.xiang.date;

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

/*
作用:格式化日期类
 */
public class DateFormatA {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
//        System.out.println(date);
        //设置时间格式
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        //调用格式化方法
        String format = dateFormat.format(date);
        System.out.println(format);

        System.out.println("==================================");
        String str="2021-09-03 09:09:09";
//        java.sql.Date date1 = java.sql.Date.valueOf(str);
        DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        Date parse = dateFormat1.parse(str);
        System.out.println(parse);
    }
}

5、Calendar类

package com.xiang.calendar;

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

public class MyCalendar {
    public static void main(String[] args) {
        //1.创建日历类对象
        Calendar calendar = new GregorianCalendar();

        System.out.println(calendar);

        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.MINUTE));
        System.out.println(calendar.get(Calendar.SECOND));

//        calendar.set(Calendar.YEAR,2000);//可以对年月日进行修改实现

        //获得本月中一共有多少天
        int max = calendar.getActualMaximum(Calendar.DATE);
        System.out.println(max);

        /*
        Calendar 和Date 类之间的相互转化

         */

        //把date类对象转化成calendar类对象
        Date date =new Date();
        Calendar calendar2 =new GregorianCalendar();
        calendar2.setTime(date);

        //判断给定的年份是否为闰年
        GregorianCalendar ca = (GregorianCalendar) GregorianCalendar.getInstance();
        System.out.println(ca.isLeapYear(GregorianCalendar.YEAR));


        //把calendar类对象转化成date类对象
        Date time = calendar2.getTime();


    }
}

package com.xiang.calendar;

import java.time.Instant;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class MyCalendar2 {
    public static void main(String[] args) {
        Instant now = Instant.now();
        System.out.println(now);
        System.out.println(now.MAX);
        System.out.println(now.MIN);
        System.out.println(now.EPOCH);

        //LocalDate这个日期中只含有年月日
        LocalDate localDate =LocalDate.now();
        System.out.println(localDate);

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String format = localDate.format(dtf);
        System.out.println(format);

        //String 类型数据转成LocalDate类型
        LocalDate parse = LocalDate.parse("2021-09-03");

    }
}

6、Math类和Random类

package com.xiang.math;

import java.util.Random;

/*
数学类对象
 */
public class MathA {
    public static void main(String[] args) {

        System.out.println(Math.PI);
        System.out.println(Math.E);
        System.out.println(Math.round(3.5));//四舍五入
        System.out.println(Math.ceil(3.1));//向上取整
        System.out.println(Math.floor(3.1));//向下取整
        System.out.println(Math.random());//[0,1)
        System.out.println(Math.sqrt(64));//开平方
        System.out.println(Math.pow(2,3));//2^3
        System.out.println(Math.abs(-11));//取绝对值
        System.out.println(Math.max(2,3));//比大
        System.out.println(Math.min(2,3));//比小
        System.out.println(Math.addExact(2,3));//加法

        //产生一个随机数 0-9内随机整数
        Math.floor(Math.random()*10);






    }
}

package com.xiang.random;

import java.util.Random;

public class RandomA {
    public static void main(String[] args) {
        Random random = new Random();

        //产生0-10内随机整数
        int i = random.nextInt(10);
        System.out.println(i);

        //获得4位随机整数
        int s = random.nextInt(9000)+ 1000;
        System.out.println(s);
    }
}

7、枚举

所有的枚举类型隐性地继承自 java.lang.Enum。枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用他们

注意

  • 强烈建议当你需要定义一组常量时,使用枚举类型
  • 另外尽量不要使用枚举的高级特性
package com.xiang.demo;

public class Student {
    private String name;
    private Gender sex;

    public Student(String name, Gender sex) {
        this.name = name;
        this.sex = sex;
    }
    public Student(){

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Gender getSex() {
        return sex;
    }

    public void setSex(Gender  sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}

package com.xiang.demo;

public enum Gender {,}

package com.xiang.demo;

public class Test {
    public static void main(String[] args) {
        Student stu =new Student("张三",Gender.);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值