Java学习记录Day5

1、常用包

java.lang包 - 该包是Java语言的核心包,并且该包中的所有内容有Java虚拟机自动导入。

        - 如:System类、String类、...

java.util包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类。

        - 如:Scanner类、Random类、List集合、...

java.io包 - 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类。

        - 如:FileInputStream类、FileOutputStream类、...

java.net包 - 该包是Java语言中的网络包,里面提供了大量网络编程相关的类。

        - 如:ServerSocket类、Socket类、...

2、== 与 equals()

  == : 基本数据类型比较的是数值大小
       引用数据类型比较的是引用的地址
  equals : 默认比较两个对象的地址,若想要比较两个对象的内容时,需要重写 equals()方法
public class Test {

    public static void main(String[] args) {

        //对于字符串来说,==比较的是内存地址,equals()比较的是字符串内容是否相等
        //创建String类型的对象时,需要注意创建对象的方式不同,创建对象所在的地址空间可能会不同
        String a = "abc";
        String b = "abc"; //如果字符串常量池中有相同内容的值,那么,b和a的引用地址都指向abc
        String c = new String("def");
        String d = new String("def"); //new出来的对象,引用地址肯定不一样

        System.out.println(a == b); //true
        System.out.println(a.equals(b)); //true
        System.out.println(c == d); //false
        System.out.println(c.equals(d)); //true
    }
}
public class Student {
    private int id;
    private String name;
    public Student() {}

    public Student(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public boolean equals(Object o) {
        Student student = (Student)o;
        return this.getId() == student.getId();
    }
//    //重写之前
//    @Override
//    public boolean equals(Object obj) {
//        return (this == obj);
//    }
}

public class StudentTest {
    public static void main(String[] args) {
        //new出来的对象,引用地址肯定不一样
        Student s1 = new Student(1001, "张三");
        Student s2 = new Student(1001, "张三1");
        System.out.println(s1.equals(s2)); //重写之前false,重写后true
    }
}

 将上面Student类中的equals()方法再次重写,比较结果为false。

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (null == o) {
            return false;
        }
        if (o instanceof Student) {
            Student student = (Student)o;
            if (this.getName().equals(student.getName()) && this.getId() == student.getId()) {
                return true;
            }
        }
        return false;
    }

3、包装类

package com.java.object01;

public class IntegerDemo01 {
    public static void main(String[] args) {
        //构造方法 Integer(int value)
        Integer it1 = new Integer(10);
        System.out.println("it1 = " + it1);
        //字符串中只能写数字 Integer(String s)
        Integer it2 = new Integer("20");
        System.out.println("it2 = " + it2);

        //1、将Integer类型的对象,转变int的数值,叫做手动拆箱
        int i1 = it1.intValue();
        System.out.println("i1 = " + i1);

        //static修饰,直接用类名调用
        //2、将int类型的数值,转变Integer类型的对象,叫做手动装箱
        Integer integer = Integer.valueOf(i1);
        System.out.println("integer = " + integer);

        //jdk5提供自动装箱和自动拆箱的功能
        int i3 = 12;
        Integer it3 = i3;
        System.out.println("i3 = " + i3);
        System.out.println("it3 = " + it3);

        String str = "123";
        //static修饰,直接用类名调用
        //3、将字符串类型转换为int类型并返回
        int i2 = Integer.parseInt(str);
        System.out.println("i2 = " + i2);
    }
}

4、数据处理类 BigDecimal类

package com.java.object01;

import java.math.BigDecimal;

public class BigdecimalTest01 {
    public static void main(String[] args) {
        double d1 = 0.1 + 0.2;
        System.out.println(d1);
        System.out.println("----------------");

        //精确的小数
        BigDecimal bd1 = new BigDecimal("0.1");
        BigDecimal bd2 = new BigDecimal("0.23");
        System.out.println(bd1.add(bd2));
        System.out.println(bd1.subtract(bd2));
        System.out.println(bd1.multiply(bd2));
        //static int ROUND_HALF_UP  "四舍五入"
        System.out.println(bd1.divide(bd2, BigDecimal.ROUND_HALF_UP));
    }
}

5、String类

 

public class StringDemo02 {
    public static void main(String[] args) {
        String str = new String("   Let me see you!   ");
        System.out.println(str.charAt(8)); //e
        System.out.println("字符串的长度为:" + str.length()); //21
        System.out.println(str.contains("me")); //true 用于判断当前字符串是否包含参数指定内容
        System.out.println(str.toLowerCase()); //   let me see you!
        System.out.println(str.toUpperCase()); //   LET ME SEE YOU!
        System.out.println(str.trim()); //Let me see you! 去掉前导和后继字符串
        System.out.println(str.startsWith("Let")); //false
        System.out.println(str.endsWith("!")); //false

        String s = new String();
        System.out.println(s); //""空字符串

        byte[] brr = {97, 98, 99, 100, 101};
        String str3 = new String(brr, 0, 5); //左闭右开 字节转字符串
        System.out.println(str3); //abcde
    }
}

6、StringBuffer类和StringBuilder类 

 

public class StringBuilderDemo01 {
    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder(); //初始容量为16个字符
        System.out.println("初始容量为:" + sb1.capacity()); //16
        System.out.println("长度为:" + sb1.length()); //0

        StringBuilder sb2 = new StringBuilder("heihei");
        System.out.println("初始容量为:" + sb2.capacity()); //22
        System.out.println("长度为:" + sb2.length()); //6

        System.out.println(sb2.insert(0, "JJ Lin ")); //JJ Lin heihei
        System.out.println(sb2.append("太厉害了")); //JJ Lin heihei太厉害了
        System.out.println(sb2.delete(0, 7)); //heihei太厉害了
        System.out.println(sb2.replace(0, 5, "haha")); //hahai太厉害了
        System.out.println(sb2.reverse()); //了害厉太iahah
        System.out.println(sb2.indexOf("h")); //6
    }
}

7、日期相关的类 

 

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

public class DateTest01 {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);
        Date date1 = new Date(1000); //1000毫秒
        System.out.println(date1);
        System.out.println(date1.getTime());

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
    }
}

8、可变参数 

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(add(1, 2));
        System.out.println(add());
        System.out.println(add(1, 2, 3));
    }
    //可变参数只能出现在参数列表的最后
    public static int add(int...args) {
        int sum = 0;
        for (int i = 0; i < args.length; i++) {
            sum += args[i];
        }
        return sum;
    }
}
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值