Java基础
从40道Java面试题开始来了解Java编程基础
1. 八种基本数据类型的大小,以及他们的封装类
大小:指字节数;
注:第一,boolean类型的大小可为1可为4;
第二,封装类为引用类型;
第三,void为另一种基本数据类型。
2. 引用数据类型
小结:对比基本数据类型和引用数据类型
第一,存储空间的分配;基本-栈,引用-堆;
第二,变量名指向;
第三,声明变量和空间分配的先后关系;
第四,赋值;
第五,"=="、"!="和"equals()";引用相同时,对象内容相同
第六,创建和销毁速度。
3. Switch能否用string做参数
可以。原理:通过调用switch中string.hashCode将string转换为int来实现
1 package com.trust; 2 public class Main { 3 public static void main(String[] args) { 4 /*jdk 1,7后,switch可接受整形、枚举和字符串等*/ 5 String s = "123"; 6 switch (s){ 7 case "123": 8 System.out.println("hello,i am 123"); 9 break; 10 case "abc": 11 System.out.println("hello,i am abc"); 12 break; 13 default: 14 System.out.println("hello, i am only"); 15 break; 16 } 17 } 18 }
4. equals()和"=="的区别
注: "=="作为关系操作符,在《Java编程思想》中有清晰解释:“ 关系运算符生成的是一个“布尔”(Boolean)结果。它们评价的是运算对象值之间的关系。”
从Java中的基本数据类型和引用数据类型来区分!!!
1 package com.trust; 2 public class Main { 3 public static void main(String[] args) { 4 String a = new String("ab"); // a 为一个引用 5 String b = new String("ab"); // b为另一个引用,对象的内容一样 6 String aa = "ab"; // 放在常量池中 7 String bb = "ab"; // 从常量池中查找 8 9 System.out.println(aa == bb); // true 10 System.out.println(a == b); // false,非同一对象 11 System.out.println(a.equals(b)); // true 12 System.out.println(42 == 42.0); // true 13 Object obj1 = new Object(); 14 Object obj2 = new Object(); 15 System.out.println(obj1.equals(obj2));//false 16 System.out.println(obj1 == obj2);//false 17 obj1 = obj2; 18 System.out.println(obj1 == obj2);//true 19 System.out.println(obj2 == obj1);//true 20 } 21 }
5. 自动装箱和自动拆箱
自动装箱是将一个java定义的基本数据类型赋值给相应封装类的变量。 拆箱与装箱是相反的操作,自动拆箱则是将一个封装类的变量赋值给相应基本数据类型的变量。
6. Object有哪些公用方法
7. Java的四种引用,强弱软虚,用到的场景
第一,强引用:如String s = "abc"。只要强引用存在,垃圾回收器就不会回收;
第二,弱引用:可以和引用队列一起使用。是否回收取决于内存是否充足。
第三,软引用:和弱引用大致相同,区别在于“对象的生命周期更短”,垃圾回收器线程扫描到即回收。
第四,虚引用:和引用队列绑定。和对象的声明周期没有关系。
8.
注:原文链接:https://www.cnblogs.com/java1024/p/8622195.html