- String可以被继承吗?
答:是不可以的,String是被final修饰的类,java规范中,被final修饰的类都不可以被继承 - OOP的五大原则
答:单一职责原则、开放闭合原则、里氏替换原则、依赖倒置原则、接口隔离原则,参考:点击打开链接 - 抽象类可以继承普通类吗?
答:是的可以继承实体类的,抽象类不能实例化,抽象类也可以实现接口,接口可以继承一个或多个接口,但不能实现接口 - switch参数类型
答:参数值类型必须是这几种类型之一:int,byte,char,short,在jdk1.7之后新增了String类型,在jdk1.7一下版本可用枚举类型实现字符串类型的判断,参考:点击打开链接 - final,finally,finalize的区别,参考:点击打开链接
- try...catch...finally语句中,如果再try中有return,那么return和finally中的代码是他们的顺序怎么执行的,
答:会先执行return,但不会立即返回,会把返回值保存起来,待执行完finally中的代码才会把值返回,参考:点击打开链接 - 抽象类和接口的区别
答:参考:点击打开链接 - 依赖注入的方式
答:1、构造函数注入,2、setter注入,3、接口注入 - 重写和重载的区别
答:参考:点击打开链接 - 构造函数可以重写吗?
答:不可以重写,但是可以重载 - String str2 = new String("abc");创建了几个对象
答:要看字符串abc有没有被定义过,比如String str="abc";String str2 = new String("abc");这样就只创建了一个对象,否则就是两个 - 错误和异常的区别
答:参考:点击打开链接 - jsp和servlet的关系
答:参考:点击打开链接 - oracle select * from xxx where rownum>10;xxx百万级数据量,该语句能查到多少条记录?
答:查到的是一个空集,因为rownum是根据查询的结果集来对记录进行编号,所以当你查询rownum大于2的记录时会得到一个空的结果集。因为当oracle查询得到第1条记录时,发现rownum为1不满足条件,然后就继续查询第2条记录,但此时第2条记录又被编号为1(也即rownum变为1),所以查询得到的始终是rownum=1,因此无法满足约束,最终查询的结果集为空。参考:点击打开链接 - Spring注解@Resource和@Autowire的区别
答:@Autowire默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可以结合@Qualifier注解一起使用;
@Resource默认按照名称装配,当找不到与名称匹配的bean才会按照类型装配,可以通过name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象.
注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖的对象时候,会回退到按照类型装配,但一旦指定了name属性,就只能按照名称装配了.
建议使用@Resource。 - 内部类的作用
答:1.内部类可以很好的实现隐藏,一般的非内部类,是不允许有 private 与 protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可是实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。 - Java 泛型 <? super T> 中 super 怎么 理解<?与 extends> 有何不同?
答:<? extends T> 表示上界通配符 它表示T以及T的子类, 类型最高是T
<? super T> 表示下界通配符 它表示T以及T的超类,类型最高可到Object ,最低是T - JAVA中子类是否可以可以继承、重写父类的静态方法
答:可以继承,但不能重写 - String为什么会被设计成不可变的
答:参考:点击打开链接 - 线程池知识点
答:参考:点击打开链接