上海久亚Java面试问题

九亚科技JAVA软件工程师面试问题

1.有哪些基本的集合类及其特点?

集合有三种主要类型:集合、列表和映射。

List关心的是索引。与其他集合相比,List在一些与索引相关的方法上比较独特:get(int index),add(int index,Object o),indexOf(Object o)。

Set关心的是唯一性,不允许重复。

Map与唯一标识符有关。他将唯一键映射到一个元素。当然,键和值都是对象。

2.下面代码的运行结果:(a)

公共类Foo {

公共静态void main(String[] args) {

字符串s;

string . out . println(" s = "+s);

}

}

A.因为字符串s未初始化,所以代码无法编译。b .代码编译,输出结果为“s=”。

C.代码被编译,输出是“s = null”。代码被编译,但是NullPointException异常被捕获。

3.请解释equal和= =的区别。

int I = 1;int j = 1;

在一个判断条件中使用i==j是否成立?

如果I和j都是整数呢?

= =该运算比较两个变量的值是否相等。对于引用变量,表示堆中存储的两个变量的地址是否相同,即堆栈中的内容是否相同。

equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。

= =比较两个对象的地址,而equals比较两个对象的内容。

4.写一个判断奇偶性的方法。

int num = 0;

System.out.println("请输入整数:");

Scanner inputScanner =新扫描仪(system . in);

num = input scanner . nextint();

if(num%2==0){

System.out.println(num+"是偶数");

}否则{

System.out.println(num+"为奇数");

}

5.下面的代码正确吗?

String[] name={ "汤姆","迪克","哈利" };

for(I = 0;我& lt=名称.长度;i++){

system . out . print(name[I]+' \ n ');

}

此代码错误将触发“ArrayIndexOutOfBoundsException”异常,这是一条运行时错误消息,当代码试图访问不在数组索引值范围内的元素时,将显示该消息。

6、下面两个打印,分别输出什么结果:

double amount 1 = 2.0;

double amount 2 = 1.1;

double amount3 = 0.9

System.out.println(金额1-金额2 = =金额3);

BigDecimal damount 1 = newBigDecimal(" 2.0 ");

BigDecimal damount 2 = newBigDecimal(" 1.1 ");

BigDecimal damount 3 = newBigDecimal(" 0.9 ");

system . out . println(da mount 1 . subtract(da mount 2)。equals(da mount 3));

7.jsp和servlet有什么区别?

Jsp本质上是一个servlet,但是它们是以不同的方式创建的。

Servlet完全由Java程序代码组成,擅长流程控制和事务处理,通过jsp生成动态网页;Jsp由HTML代码和JSP标签组成,可以很方便的编写动态网页。

因此,在实际应用中,servlet用于控制业务流程,而JSP用于生成动态网页。在struts框架中,jsp位于MVC设计模式的视图层,servlet位于控制层。

8.以下说法有什么错误?(一)

会话存在于服务器中,cookie存在于硬盘中。

B.session机制使用服务器端维护状态,但在应用过程中,使用cookie机制保存logo,从而实现用户登录。

C.cookie只与你的主机(域)相关,与select和jsp页面无关。

D.java对象不能直接在D.cookie中访问,但可以存储在会话中。

9.下列关于转发和重定向的描述中,哪一项是不正确的?(四)

A.向前执行时,浏览器不知道服务器发来的内容来自哪里,地址栏还是原来的地址。

执行转发时,服务器端告诉浏览器再次请求地址。

转发是内部重定向,重定向是外部重定向。

D.forward是指服务器将控制权转移给另一个内部服务器对象,新对象完全负责响应用户的请求。

10 、. MySQL . JDBC . driver ";

私有字符串username = " root

私有字符串password = " 123 ";

private int maxconn = 5000

公共DBConnpool(){ }

公共void setdbid(字符串dbid)

{ this.dbid = dbid}

public void setusername(字符串用户名)

{ this.username =用户名;}

公共void setpassword(字符串密码)

{ this.password =密码;}

public void setmaxconn(int maxconn)

{ this . max conn = max conn;}

公共字符串getdbid()

{ return dbid}

公共字符串getusername()

{返回用户名;}

公共字符串getpassword()

{返回密码;}

public int getmaxconn()

{ return maxconn}

//将连接返回到连接池

公共同步无效重新连接(连接连接)

{连接con = conn

connections . add element(con);

inUse-;

}

//从连接池中获取连接

公共同步连接getConnection()

{

Connection con = null

if(connections . size()& gt;0)

{

con =(Connection)connections . element at(0);

connections . removeelementat(0);

尝试{

if(con.isClosed())

{ con = getConnection();}

}catch(异常e){

e . printstacktrace();

}

} else if(maxconn = = 0 | | inUse & lt;maxconn)

{ con = new connection();}

如果(con!=空)

{ inuse++;}

返回con

}

专用连接newConnection()

{

Connection con = null

尝试{

class . for name(driver name);

con = driver manager . getconnection(dbid,用户名,密码);

}catch(异常e){

e . printstacktrace();

返回null

}

返回con

}

公共同步void closeConn()

{

枚举all connections = connections . elements();

while(all connections . hasmoreelements())

{

Connection con =(Connection)all connections . nextelement();

尝试{

con . close();

}catch(SQLException e){

e . printstacktrace();

} } } }

使用连接池,把暂时不用的链接放入连接池,需要的时候把链接从连接池中取出来使用。

15,给定以下数组,如何用最简单的方式打印出每个值?

String[] arry=new String[]{"john "," Marry "," Bob " };

system . out . println(array . tostring(arry));

16.java项目中引入了第三方库,运行到某个代码时抛出NoClassDefFoundError或NoSuchMethodError。这个问题是怎么产生的,你们是怎么解决的?

17.有一个字符串要判断,条件是:至少要有1位,1位,10位以上。你用什么技术来实现这个判断?

If (/\ d+$/。test(str)){所有数字,执行...}当然也可以用isNaN判断是否(isNaN(str)){ str是数字,执行...}

18.Chrome浏览器调试用的快捷键有哪些?

F12

19.Chrome浏览器调试面板中的Elemets、网络、资源有什么用?

元素是页面html元素,

网络是页面加载时网络资源的加载。

资源是一个网站的网页资源文件,包括css,js等。

20.在Eclipse中,让java程序看起来更可读的快捷键是什么?

Ctrl+Shift+F

21,简单说说什么是栈迹。

堆栈跟踪称为Stack trace:如果需要打印出某个时刻的调用堆栈状态,就会生成一个堆栈跟踪。

堆栈跟踪包括三个部分,即:. bss.text.data。

Bss:代表程序中未初始化的全局变量的内存区域。

文本:代表程序中已初始化的全局变量的内存区域。

Data:表示存储程序执行代码的内存区域。