来自各种地方以及自己的总结
1.equals() 和 == 的区别?
equals() 是 Object 类中的方法,而 == 是运算符
equals() 比较的是内容,而 == 比较的是地址
2.传值和传址
传值:例如 a=b 把 b 的值传给 a 修改 a 并不会影响到 b
传址:例如 a=b 把 b 的地址传给 a ,修改 a 的同时会影响到 b
3.为什么我们常说 字符串 是不可变的?
字符串的底层是 char[] 类型的字符数组
字符串被创建的时候保存在字符串常量池里(jdk1.7之前字符串常量池在方法区,jdk1.7之后, 字符串常量 池在堆区),加入有 String str=”abc” ,当执行 str=”def” 的时候,字符串常量池这的 abc 并不会销毁,而是在字符串常量池中添加新的 def 并将其指向 str
4.switch()-case 可以接受的类型
jdk1.7之前 switch-case 所接受的参数只能是整形或者转换为整形后没有损失的类型 int char byte short
还有枚举 enum jdk1.8之后在此基础之上增加了 String 类型.
5.运行时异常和编译器异常有和异同?
运行时异常 这意味着程序存在bug,如数组越界,0被除,传参不规范
编译器异常也叫检查期异常,编译器直接飙红
十种常见的异常
1. Java . lang .NullPointerException 空指针异常
2.java.lang.ClassNotFoundException 指定的类不存在
3.java.lang.NumberFormatException 数字格式异常
4.java.lang.IndexOfBoundsException 数组下标越界异常
5.java.lang.IllegalArgumentException 方法参数异常
6.java.lang.IllegalAccessException 访问权限异常
7.java.lang.ArithmeticException 数学运算异常
8.java.lang.ClassCastException 数据类型转换异常
9.java.lang.FileNotFoundException 文件未找到异常
10.java.lang.NoSuchMethodException 方法不存在异常
6.try-catch throws 和 throw 如何使用
try-catch 是在方法内部处理异常
throws 是在方法参数列表后向上抛出异常(可以抛出多个,所以是复数)被抛出的异常并没有被处理,只是抛给了 上层调用
的 方法,谁调用谁处理
throw 是抛出一个异常,获取这个异常的引用,
单例模式实现的两种方式:
懒汉式
饿汉式
8.String s=new String("xyz"); 在运算的时候涉及几个 String 实例
两个 “xyz” 的时候会有一个实例,然后 new String 的时候产生一个实例
9.冒泡排序
10一个中文几个字节?
不同编码下一个中文所占的字节数是不同的 另外utf-8下不同中文所占的字节数也不相同可能是 2 3 4 字节,GBK下是 2 字节
11. String a=1+9+”abc”; 和 String b=”abc”+1+9; 中 a 和 b 的值是什么?
a 的结果为 10abc
b 的结果为 19abc
12.java 基础数据类型的大小
抽象类 和接口的区别?
接口定义的是规范,表示的是你能干什么,你能炒菜, 能跑步,能做家务
抽象类本质上还是类,所以表示的你是什么,你是人,是动物.
其他区别:
*成员变量
接口中的只有常量,默认修饰符是 public static final
抽象类中可以有变量,可以有常量
* 构造方法
接口中没有构造方法,
抽象类中有构造方法
*成员方法
接口中的只有默认方法和抽象方法
抽象类中可以有普通方法,可以有抽象方法
14.什么是 多态 ?
成员变量
编译看左边,运行看左边
普通成员方法
编译看左边,运行看右边
静态成员方法
编译看左边,运行看右边
总结 编译看左边,运行看左边,即没有发生多态,多态发生的三个前提分别是 要有继承关系 父类引用执行子类对象 要有方法的重写 因为成员变量和静态成员方法不存在 方法的重写 所以不发生多态.
15..static 和 final 位置问题
public static fianl void method(){}
public final static void method(){}
16.隐式转换问题
注:所有的基本类型对应的包装类都是 final 的
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!