1. 八种基本数据类型的大小,以及他们的封装类
- 八种基本数据类型:int、short、float、double、long、boolean、byte、char。
- 封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。
2. 引用数据类型 - 引用数据类型是由类的编辑器定义的,他们是用于访问对象的。这些变量被定义为不可更改的特定类型。例如:Employee, Puppy 等等
- 类对象和数组变量就是这种引用数据类型。
- 任何引用数据类型的默认值都为空。
- 一个引用数据类型可以被用于任何声明类型和兼容类型的对象。
3. Switch能否用string做参数 - jdk7之前:switch 只能支持 byte、short、char、int 这几个基本数据类型和其对应的封装类型。
switch后面的括号里面只能放int类型的值,但由于byte,short,char类型,它们会?自动?转换为int类型(精精度小的向大的转化),所以它们也支持。 - jdk1.7后:整形,枚举类型,boolean,字符串都可以。
原理
switch (expression) // 括号里是一个表达式,结果是个整数{
case constant1: // case 后面的标号,也是个整数
group of statements 1;
break;
case constant2:
group of statements 2;
break;
default:
default group of statements
}
jdk1.7后,整形,枚举类型,boolean,字符串都可以。
public class TestString {
static String string = "123";
public static void main(String[] args) {
switch (string) {
case "123":
System.out.println("123");
break;
case "abc":
System.out.println("abc");
break;
default:
System.out.println("defauls");
break;
}
}
}
4. equals与==的区别
使用==比较原生类型如:boolean、int、char等等,使用equals()比较对象。
- ==是判断两个变量或实例是不是指向同一个内存空间。equals是判断两个变量或实例所指向的内存空间的值是不是相同。
- ==是指对内存地址进行比较。equals()是对字符串的内容进行比较。
- ==指引用是否相同。equals()指的是值是否相同。
public static void main(String[] args) {
String a = new String("ab"); // a 为一个引用
String b = new String("ab"); // b为另一个引用,对象的内容一样
String aa = "ab"; // 放在常量池中
String bb = "ab"; // 从常量池中查找
System.out.println(aa == bb); // true
System.out.println(a == b); // false,非同一对象
System.out.println(a.equals(b)); // true
System.out.println(42 == 42.0); // true
}
public static void main(String[] args) {
Object obj1 = new Object();
Object obj2 = new Object();
System.out.println(obj1.equals(obj2));//false
System.out.println(obj1==obj2);//false
obj1