常用类

Object类

在这里插入图片描述

getClass()

获取类对象

hashCode()

返回该对象的哈希码值

toString()

返回类地址+类名+hashCode

equals()

比较两对象地址是否相等

finalize()

在这里插入图片描述

包装类

装箱与拆箱

包装类在堆。基本数据类型在栈

JDK1.5之后,提供自动装箱和拆箱

public class Demo01 {
    public static void main(String[] args) {
        //类型转换:装箱,基本类型转成引用类型的过程   栈-->堆的操作
        //基本类型
        int num1 = 18;
        Integer integer1 = new Integer(num1);
        Integer integer2 =Integer.valueOf(num1);
        System.out.println("装箱");
        System.out.println(integer1);
        System.out.println(integer2);

        //类型转换:拆箱,引用类型转成基本类型
        Integer integer3 = new Integer(100);
        int num3 = integer3.intValue();
        System.out.println("拆箱");
        System.out.println(integer3);
        System.out.println(num3);

//        JDK1.5之后,提供自动装箱和拆箱
        int age = 30;
        //自动装箱
        Integer integer4 = age;
        System.out.println("自动装箱");
        System.out.println(integer4);

        //自动拆箱
        int age2 = integer4;
        System.out.println("自动拆箱");
        System.out.println(age2);

        System.out.println("========================基本类型和字符串之间的转换==================");

        //基本类型和字符串之间的转换
        //1.基本类型转字符串类型
        int n1 = 100;
        //1.1.使用+号
        String s1 = n1+"";
        //1.2.使用Integer中的toString方法
        String s2 = Integer.toString(n1);

        System.out.println(s1);
        System.out.println(s2);


        //2.字符串转成基本类型
        String str = "150";
        //使用Integer.parsexxx();
        int n2 = Integer.parseInt(str);
        System.out.println(n2);


        //boolean字符串形式转成基本类型:"true"--->true     非:"true"--->false
        String str2 = "true";
        String str3 = "treu";
        String str4 = "fales";

        boolean b1 = Boolean.parseBoolean(str2);
        boolean b2 = Boolean.parseBoolean(str3);
        boolean b3 = Boolean.parseBoolean(str4);
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);

    }
}

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

Integer缓冲区

  • Java预先创建了256个常用的整数包装类型对象。
  • 在实际应用当中,对已创建的对象进行复用
  • 如果不在-128-127之间则在堆中开辟新空间
  • 在-128-127之间则直接在缓冲区中找
//整数缓冲区
public class Demo02 {

    public static void main(String[] args) {
        //面试题

        Integer integer1 = new Integer(100);
        Integer integer2 = new Integer(100);
        System.out.println(integer1==integer2);

        /*
        Java预先创建了256个常用的整数包装类型对象。
        在实际应用当中,对已创建的对象进行复用
        如果不在-128-127之间则在堆中开辟新空间~
        在-128-127之间则直接在缓冲区中找
         */


        Integer integer3 = 100;  //自动装箱
        Integer integer4 = 100;
        System.out.println(integer3==integer4);  //true


        Integer integer5 = 200;  //自动装箱
        Integer integer6 = 200;
        System.out.println(integer5==integer6);  //false  超过缓冲区大小

        
    }
}

结果:

在这里插入图片描述

String类

比是否相等

public class Demo01 {
    public static void main(String[] args) {
        String name = "hello";  //常量存储在字符串池中,(方法区)
        String name1 = "hello";  //常量存储在字符串池中,(方法区)

        System.out.println(name==name1);  //true
        //name = "zhangsan";  //在赋值时候并不是直接替换了hello而是
                            //在方法区的字符串池中又开辟了一块属于zhangsan的空间


        //演示字符串的另一种创建方式  会创建对象
        String str = new String("java");//这种创建方法会在栈和堆中创建对象
                                               //栈存的堆的地址,堆存的方法区的地址
        String str2 = new String("java");

        System.out.println(str==str2);  //比地址  false
        System.out.println(str.equals(str2));  //比数据   true
    }
}

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

length();返回字符中的长度

charAt(int index);返回某个位置的字符

contains(String str);判断是否包含某个子字符串

tocharArray() ;返回字符串对应的数组

index0f();返回子字符串首次出现的位置

lastIndex0f( );返回字符串最后一 次出现的位置

trim();去掉字符串前后的空格

toUpperCase( );//把小写转成大写 toLowerCase() ;把大写转成小写.

endWith(str) ;判断是否已str结尾, startsWith(str);判断是否已str开头

replace(char old,char new); 用新的字符或字符串替换旧的字符或字符串

split();对字符串进行拆分

substring();截取字符串

例如:

  • substring(1);则截取1~最后的字符串
  • substring(1,3);则截取1~2之间的字符串(1-3但是不包括3)

补充

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

        /*
        字符串方法的使用
        1. length();返回字符中的长度
        2、charAt(int index);返回某个位置的字符
        3、contains(String str);判断是否包含某个子字符串
         */
        String content = "我是你爸爸我是你爸爸我是你爸爸";
        System.out.println(content.length());//5
        System.out.println(content.charAt(3));
        System.out.println(content.contains("你爸爸"));

        System.out.println("=======================");
        /*
        4、tocharArray() ;返回字符串对应的数组
        5、index0f();返回子字符串首次出现的位置
        6、lastIndex0f( );返回字符串最后一 次出现的位置
         */
        System.out.println(content.toCharArray());
        System.out.println(Arrays.toString(content.toCharArray()));
        System.out.println(content.indexOf("你"));
        System.out.println(content.indexOf("你",1));
        System.out.println(content.lastIndexOf("爸"));

        System.out.println("=======================");

        /*
        /7. trim();去掉字符串前后的空格
        /8. toUpperCase( );//把小写转成大写toLowerCase() ;把大写转成小写.
        /9、 endWith(str) ;判断是否已str结尾, startWith(str);判断是否已str开头
         */
        String content2 = "   hello world";
        System.out.println(content2.trim());  //只去掉前后的空格
        System.out.println(content2.toUpperCase());
        System.out.println(content2.toLowerCase());
        String filename = "hello.java";
        System.out.println(filename.endsWith(".java"));
        System.out.println(filename.startsWith("hello"));

        System.out.println("=======================");
        /*
        10、replace(char old,char new); 用新的字符或字符串替换旧的字符或字符串
        11、split();对字符串进行拆分
         */
        content.replace("你爸爸","java");
        String say = "java is the best language jaav,as";
        //String[] arr = say.split(" ");   //用空格分隔
        String[] arr = say.split("[ ,]"); //用空格和逗号分隔
        System.out.println(arr.length);
        for (String s : arr) {
            System.out.println(s);
        }


        ///补充两个方法equals  比相等、   a compareTo(b);比大小 (字符前后位置)结果为a-b的ascii码值
        System.out.println("========补充========");
        String s1 = "hello";
        String s2 = "Hello";
        System.out.println(s1.equalsIgnoreCase(s2));  //忽略大小写

        String s3 = "a";
        String s4 = "y";
        System.out.println(s3.compareTo(s4));

    }
}

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

需求:

/*
●已知String str = "this is a text" ;
●1.将str中的单词单独获取出来:
●2.将str中的text替换为practice
●3.在text前面插入-一个easy
●4.将每个单词的首字母改为大写
 */

代码:

public class 需求 {

    /*
    ●已知String str = "this is a text" ;
    ●1.将str中的单词单独获取出来:
    ●2.将str中的text替换为practice
    ●3.在text前面插入-一个easy
    ●4.将每个单词的首字母改为大写
     */
    public static void main(String[] args) {
        String str = "this is a text";

        System.out.println("1.将str中的单词单独获取出来:");
        String[] split = str.split(" ");
        for (String s : split) {
            System.out.println(s);
        }

        System.out.println("2.将str中的text替换为practice");
        String replace = str.replace("text", "practice");
        System.out.println(replace);

        System.out.println("3.在text前面插入-一个easy");
        String replace1 = str.replace("text", "easy text");
        System.out.println(replace1);

        System.out.println("4.将每个单词的首字母改为大写");
        for (int i = 0; i < split.length; i++) {
            char c = split[i].charAt(0);
            char c1 = Character.toUpperCase(c);

            String s = c1 + split[i].substring(1);   //substring为截取
            System.out.println(s);
        }
    }

}

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

StringBuffer 和StringBuilder

可变长字符串

StringBuffer和StringBuilder的使用
和String区别:
    (1)效率比String高
    (2)比String节省内存
    (3)StringBuffer比StringBuilder  效率低
    (4)StringBuffer比StringBuilder  安全
	(5)StringBuffer适合多线程
	(6)StringBuilder 适合单线程

append();追加

insert(); 添加

replace();替换

delete()删除

delete(0,sb.length())清空

public class StringBuffer和StringBuilder {

    /*
    StringBuffer和StringBuilder的使用
    和String区别:
        (1)效率比String高
        (2)比String节省内存
        (3)StringBuffer比StringBuilder效率低
        (4)StringBuffer比StringBuilder安全
     */
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        //StringBuilder sb = new StringBuilder();


        //1.append();追加
        sb.append("java牛皮");
        System.out.println(sb.toString());
        sb.append("java真香");
        System.out.println(sb.toString());

        //2.insert(); 添加
        sb.insert(0,"我在最前面");
        System.out.println(sb.toString());

        //3.replace();
        sb.replace(0,5,"hello");
        System.out.println(sb.toString());

        //4.delete()删除
        sb.delete(0,5);
        System.out.println(sb.toString());

        //5.清空
        System.out.println("清空");
        sb.delete(0,sb.length());
        System.out.println(sb.toString());
        System.out.println(sb.length());
        System.out.println("清空了");
    }
}

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCZXskju-1618148741054)(常用类.assets/image-20200809225121397.png)]

效率比较:

//验证StringBuilder效率比String
public class 效率 {

    public static void main(String[] args) {
        //开始时间
        long start = System.currentTimeMillis();
        String string = "";
        for (int i = 0; i < 99999; i++) {
            string+=i;
        }
        System.out.println(string);
        long end = System.currentTimeMillis();
        System.out.println("用时:"+(end-start));

        //开始时间
        long start1 = System.currentTimeMillis();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(string);
        long end1 = System.currentTimeMillis();
        System.out.println("用时:"+(end1-start1));
    }
}

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

BigDecimal

subtract(): 减法

add():加法

multiply():乘法

divide():除法

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

        /*
        double 和float类型存储的值为近似值,经过算数会出现误差
         */
        double d1 = 1.0;
        double d2 = 0.9;
        System.out.println(d1-d2);

        //面试题
        double result = (1.4-0.5)/0.9;
        System.out.println(result);

//        BigDecimal,大的浮点数精确计算
        BigDecimal bd1 = new BigDecimal("1.0");
        BigDecimal bd2 = new BigDecimal("0.9");

        //subtract(): 减法
        BigDecimal r1 = bd1.subtract(bd2);
        System.out.println(r1);

        //add():加法
        BigDecimal add = bd1.add(bd2);
        System.out.println(add);

        //multiply():乘法
        BigDecimal multiply = bd1.multiply(bd2);
        System.out.println(multiply);

        //divide():除法
        BigDecimal divide = new BigDecimal("1.4")
                .subtract(new BigDecimal("0.4"))
                .divide(new BigDecimal("0.2"));
        System.out.println(divide);

        //除不尽会报异常(设置保留几位小数和方法)                     //此处为保留三位小数和四舍五入
        BigDecimal divide1 = new BigDecimal("20").divide(new BigDecimal("3"), 3, BigDecimal.ROUND_HALF_UP);

        System.out.println(divide1);
    }
}

在这里插入图片描述

Date类

getTime() 获得时间戳

before(),after()

compare()

equals()

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

        //1.创建对象
        //今天
        Date date1 = new Date();
        System.out.println(date1.toString());
        System.out.println(date1.toLocaleString());
        //昨天
        Date date2 = new Date(date1.getTime() - (60 * 60 * 24 * 1000));
        System.out.println(date2.toLocaleString());

        //2.方法after  before   (比较大小,返回布尔值)
        boolean after = date1.after(date2);
        System.out.println(after);
        boolean before = date1.before(date2);
        System.out.println(before);

        //比较 compareto  前面减后面的毫秒值 正数1 负数-1
        int i = date1.compareTo(date2);
        System.out.println(i);

        //比较是否相等  equals
        boolean equals = date1.equals(date2);
        System.out.println(equals);
    }
}

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MU6KCnv5-1618148741057)(常用类.assets/image-20200809225532081.png)]

LocalDate,LocalTime,LocalDateTime类

now()获取当前时间

LocalDateTime.of ()设置时间

getXXX() 获取单个值

withXXX()修改单个值

plusXXX()加单个值

minus()减单个值

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

        //当前的日期、时间、日期+时间
        LocalDate now = LocalDate.now();
        LocalTime time = LocalTime.now();
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(now);
        System.out.println(time);
        System.out.println(localDateTime);

        //of方法指定日期时间    (不会有偏移量)
        LocalDateTime of = LocalDateTime.of(2020, 8, 10, 9, 37, 24);
        System.out.println(of);

        System.out.println("====================");
        //getXXX()    获取
        System.out.println(localDateTime.getDayOfWeek());  //星期
        System.out.println(localDateTime.getDayOfMonth()); // //获取每月的第几日
        System.out.println(localDateTime.getMonthValue()); //月份数字表示
        System.out.println(localDateTime.getMonth());      //月份
        System.out.println(localDateTime.getDayOfYear());  //获取一年中的第几天

        //体现不可变性   withXXX()修改相关值

        LocalDateTime localDateTime1 = localDateTime.withMonth(6);
        System.out.println(localDateTime1);
        System.out.println(localDateTime);

        System.out.println("====================");

        //  plusXXX()加
        LocalDateTime localDateTime2 = localDateTime.plusMonths(2);
        System.out.println(localDateTime2);

        //minus()减
        LocalDateTime localDateTime3 = localDateTime.minusMonths(2);
        System.out.println(localDateTime3);
    }
}

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

Canlendar类

获取时间

月份为0-11

星期日期:周日是1。。。。。周六是七

修改时间

public class canlendar {

    public static void main(String[] args) {

        //创建calendar对象
        Calendar canlendar = Calendar.getInstance();
        System.out.println(canlendar.getTime().toLocaleString());
        System.out.println(canlendar.getTimeInMillis());  //打印毫秒值1970年至今
        System.out.println(canlendar.getTime());

        //2.获取时间信息
        //获取年
        int year = canlendar.get(Calendar.YEAR);
        //月(0~11)
        int month = canlendar.get(Calendar.MONTH);
        //日
        int day = canlendar.get(Calendar.DAY_OF_MONTH);  //和Calendar.DATE都可以
        int day1 = canlendar.get(Calendar.DATE);
        //小时
        int hour = canlendar.get(Calendar.HOUR_OF_DAY);//HOUR 12小时   HOUR_OF_DAY  24小时
//分钟
        int minute = canlendar.get(Calendar.MINUTE);
        //秒
        int second = canlendar.get(Calendar.SECOND);
        System.out.println(year+"年"+(month+1)+"月"+day+"日"+hour+minute+second);
        System.out.println(day1);

        //3. 修改时间
        Calendar Calendar2 = Calendar.getInstance();
        Calendar2.set(Calendar.DAY_OF_MONTH,5);
        System.out.println(Calendar2.getTime().toLocaleString());

        //4.  add方法修改时间
        Calendar2.add(Calendar.HOUR,-1);
        System.out.println(Calendar2.getTime().toLocaleString());

        //5.补充方法
        int max = Calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);//获取本月最大日期
        int min = Calendar2.getActualMinimum(Calendar.DAY_OF_MONTH);//获取本月最小日期
        System.out.println(max);
        System.out.println(min);

    }
}

结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bjiumhiy-1618148741059)(常用类.assets/image-20200809225737489.png)]

SimpleDateFormat类

日期格式化输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w7nQXwHr-1618148741060)(常用类.assets/image-20200809215418180.png)]

public class demo01 {
    public static void main(String[] args) throws ParseException {

        //创建SimpleDateFormat对象  y 年  m月
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd");
        //2.创建date
        Date date = new Date();
        //格式化date(日期转换为字符串)
        String str = sdf.format(date);
        String str1 = sdf1.format(date);
        System.out.println(str);
        System.out.println(str1);

        //解析   (把字符串转成日期)
        Date date2 = sdf1.parse("1990/05/01");
        System.out.println(date2);




    }
}

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

System类

arraycopy:数组的复制

System.currentTimeMillis()毫秒时间,可算出程序运行时间

System.gc();告诉垃圾回收器回收参数(可能会回收可能不回收)(回收调用object.finalize()方法)

System.exit(0);退出jvm、 0为正常退出,,非0为非正常退出

public class Demo01 {

    public static void main(String[] args) {

        /*
        1.arraycopy:数组的复制
            src:源数组
            srcPos:从哪个数组开始复制
            dest:目标数组
            destPos:目标数组的位置
            length:复制的长度
         */
        int[] arr = {20,18,15,16,26,45,90,57};
        int[] dest = new int[8];
        System.arraycopy(arr,0,dest,0,arr.length);
        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest[i]);
        }

        //2.System.currentTimeMillis()毫秒时间,可算出程序运行时间
        System.out.println(System.currentTimeMillis());

        //3.System.gc();告诉垃圾回收器回收参数(可能会回收可能不回收)
        Student aaa = new Student("aaa", 19);
        new Student("bbb", 19);
        new Student("ccc", 19);

        System.gc();

        //4.退出jvm、 0为正常退出,,非0为非正常退出

        System.exit(0);
        System.out.println("程序结束了。。。。");//由于已退出,,所以不会输出


    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值