面试题

基础题

1、 String str = new String(“xyz”)一共产生几个对象

A 1个

B 2个

C 3个

D 4个

 

2、 下面代码片段的输出结果是:

int count = 0;

if(count ++ == 1){

       System.out.println(“count== 1”);

}else if(count == 2){

       System.out.println(“count== 2”);

}else{

       System.out.println(“其他结果”);

}

A count == 1

B count == 2

C 其他结果

 

3、 下列关于访问修饰符的问题,哪一个是正确的

A 不带任何访问修饰符的成员方法可被子类调用

B 带有protected 访问修饰符的成员方法可以被同一包中的其他类调用

C 带有priivate 访问修饰符的成员变量可被子类引用

D private 不能和static同时使用

答:

修饰符

当前类

 

 

其他包

public

protected

×

default

×

×

private

×

×

×

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。

4、 下列关于final的说法,哪个是错误的

A final 修饰的类不能被继承

B final 方法不能被覆盖

C final 变量必须在声明的时候初始化

D final 变量引用的对象本身可能被修改

 

5、 变量”result”是boolean类型,下列哪个答案是合法的

A result = true;

B if(resule = true){//do something..}

C if(result <> 0 ){// do something..}

D result = 1;


编程题:

1、 一个ip地址:192.168.1,将中间两段替换成*(192.*.*.1),最好用正则表达式实现

2、 给一个三位数的正整数(如123),求各个位上数字的和(sum= 1 + 2 + 3)

3、 任意位数的正整数,求各个位上数字的和

 

回答题

1、 java接口相对于抽象类的优缺点

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

2、 项目开发中什么时候用StringBuffer,为什么

JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。


3、 在synchronized修饰的方法中sleep()和wait(),有什么区别

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。


4、 Forward和redirect有什么区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

 

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。


5、 数据库连接池的工作机制

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。


6、 有如下三张表:

订单表(order)

Cost_id

客户号

Goods_id

商品id

Sale_Date

购买日期

Qty

数量

Price

单价


客户表(Customer)

Cust_id

客户号

Cust_name

客户名称

 

希望统计出如下形式的报表,每个客户购买的总数量和总金额

客户名称

商品名称

购买数量

购买金额

张三

键盘

5

100

 

7、 有表如下:

表1:user

Id

Name

1

Tom1

2

Tom2

3

Tom3

 

表2:userinfo

Id

address

1

长宁

2

浦东

3

静安

4

普陀

请写出如下SQL的结果:select * from user u left joinuserinfo ui on u.id = ui.id

 

id

Name

Id

address

1

Tom1

1

长宁

2

Tom2

2

浦东

3

Tom3

3

静安

8、 有学生选课的需求,请您设计一下数据库表结构,要求可以方便的实现如下功能:

(不要考虑诸如授课老师,授课地点等细节)

1、 查询某个学生选了哪些课程

2、 查询某个课程被哪些学生选择

S( Sid, Name, ...)
C(Cid, CourseName, ...)
SC( Sid, Cid,...)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值