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


posted on 2019-09-10 17:54  beyourself_yxs  阅读(187)  评论(0编辑  收藏  举报