目录:
1.Java
2.Spring
3.Mysql
1.Java
1.面向对象的特征:
继承、封装、抽象、多态
2.修饰符public、private、protected、默认的区别:
修饰符 | 当前类 | 同包 | 子类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
3.用最有效率的方法计算2乘以8?
2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)。
4.构造器(constructor)是否可被重写(override)?
不能。可以重载。
5.抽象类(abstract class)和接口(interface)有什么异同?
1.抽象类可以实例化,接口不可以实例化
2.接口比抽象类更加抽象,因为抽象类中定义了构造器,可以有具体方法和抽象方法,而接口没有构造器,只能有抽象方法。
3.接口中的成员必须都是public的,抽象类中的所有都可以。
4.接口中的变量都是常量,抽象类中可以定义变量。
5.有抽象方法的类一定是抽象类,但是声明为抽象类可以没有抽象方法。
6.String s = new String(“xyz”);创建了几个字符串对象?
两个。一个是静态区的,一个是new在堆上的。
7.接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
都可以
8.Java 中的final关键字有哪些用法?
1.修饰类,表示为最终类,不能修改。
2.修饰方法,表示方法不能被重写。
3.修饰变量,被赋值后不能修改。
9.如何将字符串转换为基本数据类型?
调用parsexxx方法
10.如何将基本数据类型转换为字符串?
直接""+
调用String中的valueOf()
11.如何实现字符串的反转及替换?
public static String reverse(String originStr) { if(originStr == null || originStr.length() <= 1) return originStr; return reverse(originStr.substring(1)) + originStr.charAt(0); }
12.列出一些你常见的运行时异常?
1.ArithmeticException(算术异常)
2.ClassCastException (类转换异常)
3.IllegalArgumentException (非法参数异常)
4.IndexOutOfBoundsException (下标越界异常)
5.NullPointerException (空指针异常)
13.Collection和Collections的区别?
Collection是一个接口,它是Set、List等容器的父接口;Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等。
14.Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。
15.线程的sleep()方法和yield()方法有什么区别?
1.sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;
2. 线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态;
16.当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?
不能。其它线程只能访问该对象的非同步方法,同步方法则不能进入。
17.请说出与线程同步以及线程调度相关的方法。
sleep,wait,notify,notifyAll
18.编写多线程程序有几种实现方式?
1.继承Thread类
2.实现Runable接口。
19.事务的ACID是指什么?
ACID。原子性,一致性,隔离性,持久性。
20.设计模式:
工厂模式
代理模式
适配器模式
单例模式
2.Spring
1.Spring的优点:
1.轻量级
2.方便解耦,简化开发
3.支持AOP编程
4.声明式事务控制
5.方便集成各种优秀的框架
2.Spring多值注入的方法:
1.设置set方法 注入
2.构造函数注入
3.Spring中配置bean实例化的方法有哪些:
1.使用类构造器
2.静态工厂
3.实例工厂
4.Spring注入的方法
1.构造函数注入
2.set注入
3.接口注入
5.Spring中用到哪些设计模式?
1.工厂模式
2.代理模式
3.观察者模式
4.单例模式
5.适配器模式
6.装饰着模式
7.策略模式
8.模板模式
6. 怎么样理解IOC和DI
在使用spring框架的过程中,一定会用到控制反转,但是在往往也会用到其他资源的支持,这个过程就需要依赖注入的支持。
7.核心容器的两个接口ApplicationContext和BeanFactory引发的问题。
ApplicationContext:单例对象 多数场景使用此接口。
在构建核心容器时,采用立即加载方式。
BeanFactory:多例对象
在构建核心容器时采用的延迟加载。
8.bean对象的作用范围:
singleton:单例
prototype:多例的
request:作用于web请求范围
session:作用于web会话范围
gloabal-session:作用于集群环境的会话范围(全局会话范围)