java面试3

1. finally语句执行顺序

1.不管出没出现异常,finally块中的语句都会执行;

2.当try或catch块中有return语句时,finally块中的语句仍会执行;

3.finally块中的语句是在return语句执行之后才执行的,即函数返回值是在finally块中语句执行前确定的;

4.finally块中不能包含return语句。

2. Java进行数据访问statement和preparestatement

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程

2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理

 

3. 单例模式

1     单例(Singleton)模式:单例模式确保某一个类只有一个 实例,而且该类只能是自己 实例化自己并向其他类公开 这个实例的对象创建 模式 

     采用单例模式的类:根据单例模式知道其要满足以下三点     

1. 确保某一个类只有一个实例    

     2. 而且自己实例化 

    3. 并向其他类提供这个实例类 。   

2    确保以上三点的所采用的编程策略  

    * 把构造方法声明为Private。确保只能由自己创建,避免外部创建实例或者被子类继承从而创造额外实例; 

    * 定义一个私有静态的该类的实例作为该类的数据域。确保一个类只能有一个实例; 

    *定义一个静态 工厂方法。外部类不能实例化一个该类的对象,所以只能用Static 的方法,提供给其他类调用,返回此单例类唯一的实例。  

3、使用单例模式的条件: 

     使用单例模式有一个必要条件:在一个系统要求一个类只有一个实例时才应当使用单例模式,反过来说,如果一个类可以有几个实例共存,那么就没有必要使用单例模式类。

 方式一:

public class Singleton {

private static Singleton instance = null;

private Singleton(){}

public static Singleton getInstance(){

synchronized (Singleton.class) {

if(instance == null){          

synchronized (Singleton.class) {               

if(instance == null){

 instance = new Singleton();

}

}

 }}

 return instance;

}

}

方式二:

Public class Singleton{

Private Singleton(){}

Private static class SingletonHolder{

Public static Singleton instance = new Singleton();

}

 

Public static Singleton getInstance(){

Return SingletonHolder.instance;

}

}  

4. 分组查询

SQL分组查询

一.分组查询

1.使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:

〉被分组的列

〉为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数

group by的使用在这只写几个例子吧:

例:

select courseID,avg(score) as 课程平均成绩

from score

group by courseID

例:

select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩

from score

group by studentID,courseID

2.使用having子句进行分组筛选

where子句只能对没有分组统计前的数据行进行筛选,对分组后的条件的筛选必须使用having子句

例:

select studentID as 学员编号,courseID as 内部测试,avg(score) as 内部测试平均成绩

from score

group by studentID,courseID

having avg(score)>60

 

在select语句中,where、group by、having子句和统计函数的执行次序如下:

where子句从数据源中去掉不符合去搜索条件的数据;group by子句搜集数据行到各个组中,统计函数为各个组计算统计值;having子句去掉不符合其组搜索条件的各组数据行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值