1、局部变量的概念及特点
局部变量是声明在方法内的变量
特点1.必须先赋值才能使用2.作用范围从声明开始到它所在的代码块结束3.在重合的作用范围之内不允许局部变量名字相同
2、方法重载和方法覆盖的区别?
方法的重载要求方法名必须相同,形参列表必须不同,其他不作要求
方法的覆盖是方法名参数列表返回值类型必须相同,访问修饰符相同或者更宽,子类不能抛出更大的异常,子类可以选择不抛或者RuntimeException类型的异常不受限制
3、多态的核心代码
多态即父类引用指向子类对象,也可以使接口指向实现类对象
4、*什么是类加载
JVM在第一次使用一个类的时候,会通过CLASSPATH找到对应的类的.class文件将他的类名属性方法构造方法等读取到内存中,类加载只会进行一次
5、**类加载的时机
1.第一次创建对象的时候会出发类加载2.第一次访问类的静态成员时会触发类加载3.子类加载时会触发父类加载先进行4.class.forName(“类的全限命名”)
6、*Final修饰符可以修饰什么
Final可以修饰类 方法 成员变量 局部变量等 修饰类不可以被继承 修饰方法可以被继承不可以被覆盖 修饰属性 常量不可改变
7、抽象类和接口的区别
抽象类 有构造方法 方法可以是抽象的 不可以直接new对象只能被继承 子类对象如果不想成为抽象类必须实现父类中所有的抽象方法 ,单继承
接口:没有构造方法,接口中的方法一定是公开抽象的,接口中的属性一定是公开静态常量,可以多继承,也可以多实现,接口可以继承多个接口,一个实现类也可以实现多个接口,接口的实现类必须实现接口中所有的方法
8、接口的特点
接口特点:接口:没有构造方法,接口中的方法一定是公开抽象的,接口中的属性一定是公开静态常量,可以多继承,也可以多实现,接口可以继承多个接口,一个实现类也可以实现多个接口,接口的实现类必须实现接口中所有的方法
9、内部类的分类
成员内部类 局部内部类 静态内部类 匿名内部类
10、Equals()方法的步骤
自反性 非空性 一致性 强转 属性逐一对比(基本类型用== String类型用equals)
11、包装类的作用
区分null和0,即区分有效数据和无效数据
12、String a=”Hello”和String s=new String(“Hello”)的区别
第一个是先在串池中查看有无字符串Hello如果有的话引用直接指向串池中的Hello,如果没有先则先在串池中创建一个Hello然后引用指向它
第二个是先在串池中查看有无Hello如果没有,先在串池中创建一个Hello然后去堆中创建一个Hello引用指向堆空间的Hello;如果串池中有Hello则直接去堆空间中创建Hello引用指向堆空间中的Hello
13、StringBuilder和StringBuffer的区别
StringBuffer JDK1.0 线程安全,效率低
StringBuilder JDK1.5 线程不安全,效率高
14、String类中的常用方法
charAt(int i )获取i下标所对应的字符
contains(String s)判断字符中是否包含子串s
endsWith(String s)判断字符串是否已子串s结尾
startsWith(String s)判断字符串是否以子串s开头
indexOf(String s)返回子串s第一次在字符串中出现的下标
lastIndexOd(String s)返回子串s最后一次在字符串中出现的下标
isEmpty()判断字符串是否为空
String(char[] ss)利用字符数组构造String
length()返回字符串长度
split(String s)利用s分割字符串并且返回字符串数组
toCharArray() 将字符串转化为字符数组
15、List接口下学过什么实现类,各个实现类的区别
ArrayList jdk1.2实现类有序有下标,元素可重复 线程不安全 底层数组实现
LinkedList jdk1.2 线程不安全 底层链表实现
Vactor jdk1.0 线程安全 底层数组实现
16、ArrayList和Vector的区别
ArrayList jdk1.2 线程不安全底层数组实现
Vector jdk1.0 线程安全 底层数组实现
17、List和Set接口各自的特点
List元素可重复 有序有下标
Set元素不可重复 无序无下标
18、HashSet的特点是什么
无序需无下标元素不可重复,底层哈希表实现
19、*HashSet如何保证数据唯一
- 覆盖equals方法保证相同对象内容返回的是true
- 重写equals方法保证内容的对象返回值都相同
- 为了哈希表实现最优性能尽量保证不同对象返回不同的整数
20、Map的特点是什么
Map特点存储的是键值对,键不可以重复,值可以重复
21、***HashMap如何添加一个元素
集合名.put(k,v);
22、HashMap和Hashtable的区别
HashMap jdk1.2 允许null作为键或值 线程不安全 效率高
HashTable jdk1.0不允许null作为键或值 线程安全 效率低
23、HashMap的增删改查方法名各自是什么
put remove put containsKey containsValue
24、ArrayList的增删改查方法都是什么
add remove clear set size get
25、ArrayList的遍历方式(四种)
26、HashMap的遍历方式(四种)
27、异常的分类
错误和Exception Exception分为RuntimeException和非RuntimeException
28、IO的分类
按照方向分 输入输出
按照单位分 字节字符
按照功能分 过滤节点
29、方法覆盖对异常的要求
子类方法不能抛出比父类更大的异常,子类可以不抛或者抛出RuntimeException
30、线程的创建方式
两种方式1.继承Thread重写run方法4实现Runnable接口并且实现run方法
31、数据不安全的原因及解决方式
多线程访问和修改导致数据异常出错,解决方式就是加锁
32、*Synchronized的用法
Synchronized修饰方法 Synchronized修饰代码块
33、什么是类对象、
类加载的产物
34、说出三个常见的异常处理结果