上海久亚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:表示存储程序执行代码的内存区域。