14-面试题总结

1.查询每科成绩都大于80分的学生名字(面试遇到)

table_name:score
id  name    object  score
1   小强  语文  85
2   小强  数学  73
7   小强  美术  90
5   小狗  语文  80
6   小狗  数学  92
9   小狗  美术  95
3   小花  语文  70
4   小花  数学  79
8   小花  美术  85


2.接口和抽象类的区别(面试遇到)
1.接口是公开的,里面不可以有私有方法或者变量,是用于让别人使用的。抽象类可以有私有方法或变量。
2.实现接口一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
3. 接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
3.Java支持的数据类型有哪些?什么是自动拆装箱?
byte short int   long float double char boolean

装箱
    基本数据类型 --转化--->对象包装类型   int ---->integer
拆箱
    对象包装类型--转化---->基本数据类型  integer --->int
4.list是底层实现是动态数组,初始化大小是多少?(面试遇到)
    /**
     * Constructs an empty list with an initial capacity of ten.
     */
    public ArrayList() {
        super();
        this.elementData = EMPTY_ELEMENTDATA;
    }

可以从ArrayList()构造方法中看出初始化大小为10.
    /**
     * Default initial capacity.
     */
    private static final int DEFAULT_CAPACITY= 10;
5.进程和线程的区别是什么?(面试遇到)
进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。
6.Jsp九大内置对象?(面试遇到)
request,response,session,application,out,page,pageContext,config,exception
7.写一个单例模式?(面试遇到)
/** 
 * @ProjectName:Test 
 * @ClassName:Singleton 
 * @Description:单例模式 
 * @date: 2015-3-9上午11:14:47 
 * @author: 徐凯强 
 * @version: V1.0 
 * @date:2015-3-9上午11:14:47 
 */  
public class Singleton {  
    // 声明该类私有的唯一静态全局变量实例  
    private static Singleton singleton;  
  
    // 私有的构造方法  
    private Singleton() {  
    }  
  
    // 公开的getInstance方法  
    public static Singleton getInstance() {  
        if (singleton == null) {  
            singleton = new Singleton();  
        }  
        return singleton;  
    }  
}
8.servlet生命周期?(面试遇到)

1,初始化阶段  调用init()方法

2,响应客户请求阶段  调用service()方法

3,终止阶段  调用destroy()方法

9.String,StringBuilder ,StringBuffer区别?(面试遇到)

String是不可变对象,频繁改变的字符串不要用String,因为没改变一次会创建一个对象,对系统性能产生影响。

StringBuilder非线程安全效率

StringBuffer线程安全,效率低。

 使用优先级StringBuilder>StringBuffer>String

10.说一个设计模式?

 23种设计模式随便说一个,工厂模式,观察者模式,迭代器模式,外观模式

11.说说常见的异常?

 NullPointerException(空指针),ClassNotFoundException(类不存在),ClassCastException(类型强制转换异常),SQLException(SQL异常),IOException(输入输出异常)

12.http中get和post区别?(面试遇到)

    1.get请求将参数拼接到url中传递,不安全,传输

    2.post请求将参数放到http消息头传递,安全,传输

13.servlet转发重定向区别?(面试遇到)

1.转发地址栏不变,重定向地址改变。

2.转发只能是程序内部的页面,重定向可以是程序发布页面。

3.转发request存放的变量不会失效,重定向request存放的变量不会失效

14.jsp指令?

  page、include、taglib

15.jsp标签?

 <jsp:include/>  <jsp:useBean/> <jsp:forward/><jsp:getProperty/><jsp:setProperty/>

16.ibatis中#和$的区别?(面试遇到)

#用于变量替换

        select * from table where id = #id#

        等效于

        prepareStement =stmt.createPrepareStement("select * from table where id = ?")

        prepareStement.setString(1,'abc'); 

$ 的作用实际上是字符串拼接

         select * from  $tableName$

         等效于

         StringBuffer sb = new StringBuffer(256);

         sb.append("select * from").append(tableName);

         sb.toString();

1.实现方式

    一个是预编译方式,另一个是拼接,一个可以进行类型匹配,另一个不可以。

2.安全性

    #可以防止sql注入,$不可以

3.使用场合

    #用于引用变量,$用于引用数据库对象,例如表名。

17. Spring中Bean有几种作用域?(面试遇到)

singlton,prototype,request,session,gloable session

18. Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

Java中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问

19.Java中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。Java中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。

20.Java支持多继承么?

不支持,Java不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

21.HashSet和TreeSet有什么区别?(面试遇到)

HashSet是由一个hash表来实现的,因此,它的元素是无序的。add(),remove(),contains()方法的时间复杂度是O(1)。

另一方面,TreeSet是由一个树形的结构来实现的,它里面的元素是有序的。因此,add(),remove(),contains()方法的时间复杂度是O(logn)。

垃圾收集器(Garbage Collectors)

22. Java中垃圾回收有什么目的?什么时候进行垃圾回收?

垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。

23.求每个学生的平均成绩



select name ,avg(score) from student group by name;


求每科的平均成绩?

 select object,avg(score) from student group by object;

24.&和&&的区别?

电路问题总结:

对于:&   -- >  不管怎样,都会执行"&"符号左右两边的程序

对于:&& -- >  只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值