当前位置 : 首页> 交流分享 > 一文囊括2018最新java面试题及答案

一文囊括2018最新java面试题及答案

时间:2018-07-04 13:17:18   已访问:939次
热门专业

2018最新的java面试题是什么?技术的番新连带着面试题也是与时俱进,java面试中能够胜出,这是一个关键因素,下面IT培训网小编就帮助大家盘点2018年最新的java面试题及其答案,详见如下!

一文囊括2018最新java面试题及答案_www.cnitedu.cn

2018最新最全java面试题及答案

一、代码查错(每个5分)

1.short s1 = 1;

s1 = s1 + 1;

答:s1+1运算结果是int型,需要强制转换类型。

2.abstract class Name {

private String name;

public abstract boolean isStupidName(String name) {}

}

答:abstract method必须以分号结尾,且不带花括号

3.public class Something {

void doSomething () {

private String s = "";

int l = s.length();

}

}

答:局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量

4.abstract class Something {

private abstract String doSomething ();

}

答:abstract的methods不能以private修饰。

5.public class Something {

public int addOne(final int x) {

return ++x;

}

}

答:int x被修饰成final,意味着x不能在addOne method中被修改

6.interface A{

int x = 0;

}

class B{

int x =1;

}

class C extends B implements A {

public void pX(){

System.out.println(x);

}

public static void main(String[] args) {

new C().pX();

}

}

答:在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,两个x都匹配(就象在同时import java.util和java.sql两个包时直接声明Date一样)。对于父类的变量,可以用super.x来明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确

二、问答题

1.数组有没有length()这个方法? String有没有length()这个方法?(3分)

答:数组没有length()这个方法,有length的属性。String有length()这个方法。

2.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?(3分)

答:可以。必须只有一个类名与文件名相同

3.String 和StringBuffer的区别?(3分)

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

4.说出Servlet的生命周期?(5分)

答:Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

5.forward 和redirect的区别?(6分)

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

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

6.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? (3分)

答:switch(expr1)中,expr1是一个整数表达式。因此传递给switch 和case 语句的参数应该是int、short、char 或者byte。long,string 都不能作用于swtich。

7.JSP的内置对象及方法?(5分)

答:request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

8.说出你知道的设计模式?(3分)

答:Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式),

Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式),

Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式),

Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),

Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式),

Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式),

Observer(观察者模式), State(状态模式), Strategy(策略模式),

Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)

三、数据库(每个4分)

为学生选课,建立3个表:

Studen学生表 (

SID --学号,

SNAME --学生姓名,

SDEPT --所属单位,

SAGE --学生年龄

)

Course课程表 (

CID --课程编号,

CNAME --课程名称,

)

Stugrade成绩表(

SID --学号,

CID --课程编号,

GRADE --成绩

)

(1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名?

答案:select SID ,SNAME from student where SID in(select SID from course,stugrade where course.CID=stugrade.CID and course.CNAME=’税收基础’)

(2) 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位?

答:select SNAME,SDEPT from student s,stugrade sc where s.SID=sc.SID and sc.CID=’c2’

(3) 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位?

答:select SNAME,SDEPT from student where SID not in(select SID from stugrade where CID=’c5’)

(4)查询选修了课程的学员人数

答:select count(distinct SID) from sc

(5) 查询选修课程超过5门的学员学号和所属单位?

答:select SNAME,SDEPT from student where SID in(select SID from stugrade group by SID having count(distinct CID)>5)

四、编程实现字符串abcdefg倒序输出。(10分)

五、说说职业规划(8分)


推荐内容