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;
}
}