30天简单了解Java-Day4 包装类、数组

目录

Day4 包装类、数组

1、8种基本数据的包装类,装箱、拆箱

        Java 1.5 版本之前必须手动拆箱装箱,之后可以自动拆箱装箱

自动拆箱装箱

手动拆箱装箱 

 2、Math类、Date类、Character类、随机数Random、Calendar类等常用类

2.1 Math类

2.2 Date类、Calendar类 

2.3 Character类

2.4 Random类

3、数组,二维数组、数组排序、复制数组、Arrays工具类

复制数组

4、String类, equals()、compareTo() 等常用的方法

 区别c,Java中的==不能比较值,比较的是地址

5、StringBuilder、StringBuffer,比较它们的不同,使用它们拼接字符串和变量

6、封装一个工具类StringUtils.java,实现字符串判断空的方法(公共静态方法)

7、使用Calendar类打印本月的日历


Day4 包装类、数组

从本节开始可以使用idea学习

  • 学习8种基本数据的包装类,学习装箱、拆箱,学习包装类常用的方法

  • 学习Math类、Date类、Character类、随机数Random、Calendar类等常用类

  • 学习数组,二维数组、数组排序、复制数组、Arrays工具类使用

  • 学习String类(非常重要)学习他的常用的方法,例如 equals()、compareTo() 等等,多多练习

  • 学习StringBuilder、StringBuffer,比较它们的不同,使用它们拼接字符串和变量

  • (选做)封装一个工具类StringUtils.java,实现字符串判断空的方法(公共静态方法)

  • (选做)使用Calendar类打印本月的日历

1、8种基本数据的包装类,装箱、拆箱

Java包装类、装箱和拆箱 (biancheng.net)http://c.biancheng.net/view/6119.html

        基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int 。

        Java 1.5 版本之前必须手动拆箱装箱,之后可以自动拆箱装箱

也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行装箱及拆箱操作

自动拆箱装箱

public class Demo {
    public static void main(String[] args) {
        int m = 500;
        Integer obj = m;  // 自动装箱
        int n = obj;  // 自动拆箱
        System.out.println("n = " + n);
      
        Integer obj1 = 500;
        System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));
    }
}

手动拆箱装箱 

public class Demo {
    public static void main(String[] args) {
        int m = 500;
        Integer obj = new Integer(m);  // 手动装箱
        int n = obj.intValue();  // 手动拆箱
        System.out.println("n = " + n);
       
        Integer obj1 = new Integer(500);
        System.out.println("obj等价于obj1的返回结果为" + obj.equals(obj1));
    }
}

 2、Math类、Date类、Character类、随机数Random、Calendar类等常用类

2.1 Math类

Java Math类的常用方法 (biancheng.net)http://c.biancheng.net/view/866.html

2.2 Date类、Calendar类 

Java时间日期的处理:Java Date类、Calendar类详解 (biancheng.net)http://c.biancheng.net/view/876.html

2.3 Character类

Java Character类 (biancheng.net)http://c.biancheng.net/view/899.html

2.4 Random类

Java生成随机数(random()和Random类) (biancheng.net)http://c.biancheng.net/view/867.html

3、数组,二维数组、数组排序、复制数组、Arrays工具类

Java数组:针对数组(Array)的各种操作 (biancheng.net)http://c.biancheng.net/java/70/

复制数组

 第二个参数是新数组长度,常用来增加数组大小

4、String类, equals()、compareTo() 等常用的方法

Java字符串比较(3种方法) (biancheng.net)http://c.biancheng.net/view/5808.html

 区别c,Java中的==不能比较值,比较的是地址

5、StringBuilder、StringBuffer,比较它们的不同,使用它们拼接字符串和变量

        StringBuffer 就是为了解决大量拼接字符串时产生很多中间对象问题而提供的一个类。它提供了 append 和 add 方法,可以将字符串添加到已有序列的末尾或指定位置,它的本质是一个线程安全的可修改的字符序列。

        在很多情况下我们的字符串拼接操作不需要线程安全,所以 StringBuilder 登场了。StringBuilder 是 JDK1.5 发布的,它和 StringBuffer 本质上没什么区别,就是去掉了保证线程安全的那部分,减少了开销。

String、StringBuffer和StringBuilder类的区别 (biancheng.net)http://c.biancheng.net/view/5822.html

6、封装一个工具类StringUtils.java,实现字符串判断空的方法(公共静态方法)

Java判断字符串/数组为空需要同时判断null和“”两种状态。

public class StringUtils {
    public static boolean isEmpty(String str){
        if (str == null ||str.length() == 0 ){
            return true;
        }
        return false;
    }
}
public static void main(String[] args){
        String str1 = "";
        String str2 = null;
        String str3 = "123";
        System.out.println("\"\"is" + StringUtils.isEmpty(str1));
        System.out.println("null is" + StringUtils.isEmpty(str2));
        System.out.println("123 is" + StringUtils.isEmpty(str3));
        System.out.println();

    }

结果

true
true
false

Process finished with exit code 0

7、使用Calendar类打印本月的日历

public static void test1(){

        Calendar d = Calendar.getInstance();
        int today = d.get(Calendar.DAY_OF_MONTH);
        int month = d.get(Calendar.MONTH);

        d.set(Calendar.DAY_OF_MONTH, 1);
        int weekday = d.get(Calendar.DAY_OF_WEEK);
        int firstDayOfWeek = d.getFirstDayOfWeek();

        int indent =0;
        while(weekday!=firstDayOfWeek){
            indent ++;
            d.add(Calendar.DAY_OF_MONTH, -1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
        }

        String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
        do{
            System.out.printf("%4s",weekdayNames[weekday]);
            d.add(Calendar.DAY_OF_MONTH, 1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
        }while(weekday!=firstDayOfWeek);

        System.out.println();

        for(int i=0;i<indent;i++){
            System.out.print("    ");
        }
        d.set(Calendar.DAY_OF_MONTH, 1);

        do{
            int day = d.get(Calendar.DAY_OF_MONTH);
            System.out.printf("%3d",day);
            if(day == today){
                System.out.print("*");
            }else{
                System.out.print(" ");
            }
            d.add(Calendar.DAY_OF_MONTH, 1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
            if(weekday==firstDayOfWeek) {
                System.out.println();
            }

        }while(d.get(Calendar.MONTH) == month);

    }

结果

星期日 星期一 星期二 星期三 星期四 星期五 星期六
              1   2   3*  4 
  5   6   7   8   9  10  11 
 12  13  14  15  16  17  18 
 19  20  21  22  23  24  25 
 26  27  28  29  30 
Process finished with exit code 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值