java面试题09
A卷
1.选择题
public class Test01 {
public static void changeStr(String str) {
str = "welcome";
}
public static void main(String[] args) {
String str = "1234";
changeStr(str);
System.out.println(str);
}
}
答案:输出1234.
解析:八种基本数据类型,外加String,在作为参数传值的时候,传的是值,意思就是另外copy了一份,操作的是copy的那一份。所有在原方法中值不会改变。引用数据类型在作为参数传值的时候,传的是内存地址。在其他方法中修改的话,会改变参数的值。
2.选择题
public class Test01 {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] argv) {
int i = 0;
// for(65;88&&(i<2);67)
for (foo('A'); foo('B') && (i < 2); foo('C')) {
i++;
foo('D');
}
}
}
答案:输出ABDCBDCB
解析:考察for循环的执行流程。
第一次循环:执行foo('A');
然后执行foo('B') && (i < 2);
进入循环执行i++;foo('D');
第一次循环结束,执行:foo('C')
第二次循环:执行:foo('B') && (i < 2);
进入循环执行i++;foo('D');
第二次循环结束,执行:foo('C')
第三次循环:执行:foo('B') && (i < 2);此时,i=2,不满足条件i<2.结束循环。输出ABDCBDCB
3.选择题
class A {
protected int method1(int a, int b) { return 0; }
}
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
答案:AC
解析:考察方法的重写,重写存在于父子类关系中。
01.方法的重写表示子类中的方法可以与父类中的某个方法的名称和参数类型完全相同。通过子类创建出来的对象,在调用这个方法时,调用的是子类中的方法。
这相当于子类中的方法把父类中的方法给覆盖了。这是面向对象多态性的一种体现。
02.在抛出异常方面:子类重写父类方法时,抛出的异常类型只能是父类异常类型的子类,或者和父类异常类型一样。
03.在访问权限方面:子类重写父类方法时,子类方法的访问权限不能严于父类。只能和父类相同,或者高于父类。
04.如果父类的方法时private类型的,那么子类不能重写该方法。相当于在子类中新增了一个全新的方法。
05.在返回值类型方面:如果方法的返回值类型是基本数据类型和String,那么返回值类型不能改变。
如果返回值类型是引用数据类型,例如:父类a方法的返回值类型为User,那么在子类中重写了a方法,那么子类中的a方法的返回值类型,必须是User或者是User的子类。
方法重载:重载存在于同一个方法中。
01.方法名必须相同。
02.与方法返回值类型无关。
03.参数类型必须不同,包括参数的类型,顺序,参数的个数。
04.可以有不同的访问修饰符。
05.可以抛出不同的异常。
4.选择题
public class Outer{
public void someOuterMethod() {
//01
}
public class Inner{}
public static void main( String[]argv ) {
Outer o = new Outer();
//02
}
}
Which instantiates an instance of Inner?
A. new Inner(); //方在01
B. new Inner();//放在02
C. new o.Inner(); //放在01
D. new Outer.Inner(); //放在02
答案:A
解析:在本类中直接创建,在01位置,可以直接new Inner();
在外部类中,在02位置要通过
Outer.Inner inner = new Outer().new Inner();
创建对象。
5.选择题
Which method is used by a servlet to place its session ID in a URL that is written to the servlet’s response output stream?
(译:那个方法是servlet用于将其session ID入在一个URL中,该URL写入servlet的响应输出流)
A. The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C. The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.
答案:B
解析:
不存在rewriteURL这个方法。
/*
* session默认,也是要把sessionID写到客户端的内存当中(内存cookie)
* 重写地址,防止禁用cookie的时候,仍然可以使用session
*/
resp.encodeURL(req.getRequestURL().toString());
6. XML包括哪些解释技术,区别是什么?
答案:xml解析技术主要包括:DOM,SAX,JDOM,DOM4j
区别:
1.DOM(Document Object Modal):文档对象模型。
01.为XML文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个主流内存的树结构,然后代码就可以使用DOM接口来操作这个树结构。
02.优点:整个文档树在内存中,便于操作。支持删除修改,重新排列等多种功能。
03.缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;
04.使用场合:一旦解析了文档还需要多次访问这些数据;硬件资源充足。
2.SAX(Simple API for):事件驱动
01.为了解决DOM的问题,出现了SAX。当解析器发现元素开始,元素结束,文本,文档的开始或结束等时,发送事件,我们可以编写响应事件的代码,保存数据。
02.优点:不用事先调入整个文档,占用资源少,SAX解析器代码比DOM解析代码少,适用于Applet,下载。
03.缺点:不是持久的,事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素。
04.使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少。
3.DOM4J
01.DOM4J是一个非常优秀的Java XML API ,具有性能优异,功能强大和极端易使用的特点。同时它也是一个开源代码的软件。
4.JDOM:
01.为减少DOM,SAX的编码量,出现了JDOM,
02.优点:20-80原则,极大减少了代码量。
03.使用场合:要实现的功能简单,如解析,创建等。但是在底层,JDOM还是使用SAX(最常用),DOM.
7. JSP有哪些内置对象和动作?它们的作用分别是什么
答案:
01.request:用户端请求,此请求会包含来自GET/POST请求的参数
02.response:网页传回用户端的回应
03.pageContext:网页的属性是在这里管理
04.session:与请求有关的会话期
05.application servlet正在执行的内容
06.out:用来传送回应的输出
07.config servlet的构架部件
08.page JSP:网页本身
09.exception:针对错误网页,未捕捉的例外
8. JAVA程序的种类有
A: 类(Class)B:Applet C:application D:Servlet
答案:BCD
解析:B:内嵌于Web文件中,由浏览器来观看的_Applet
C:可独立运行的Application
D:服务器端的servlet
9.选择题
01.在编译程序时,所能指定的环境变量不包括class path
02.javac一次可编译数个Java源文件。
03.javac.exe能指定编译结果要置于哪个目录。
10. 谈谈你对MVC框架的理解
01.MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
02.视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
03.模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
04.控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。
然后根据处理的结果调用相应的视图来显示处理的结果。
05.MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
06.例如SpringMVC的执行流程:
11. set的哪个实现类有排序的功能
答案:treeSet.
12. vector和arraylist的异同?treemap和hashmap的异同?
答案:
相同点:
一:都实现了List接口。
二:都是通过数组实现的。
三:数组进行复制、移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。
不同点:
一:arraylist 属于线程不安全(线程不同步)即当多线程进行对arraylist集合的操作时,有可能对数据进行不正确的操作。
vector是线程安全的(线程同步) 即当在同一时刻只能有一个线程进行对vector集合的操作,但是vector要做到线程同步,需要大量的花费,可能是消耗大量的内存或者cpu。
HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。而HashMap的函数则是非同步的,它不是线程安全的。若要在多线程中使用HashMap,需要我们额外的进行同步处理。 对HashMap的同步处理可以使用Collections类提供的synchronizedMap静态方法,或者直接使用JDK 5.0之后提供的java.util.concurrent包里的ConcurrentHashMap类。
TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。
TreeMap 继承于AbstractMap,所以它是一个Map,即一个key-value集合。
TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。
TreeMap 实现了Cloneable接口,意味着它能被克隆。
TreeMap 实现了java.io.Serializable接口,意味着它支持序列化。
HashMap:底层是哈希表数据结构。线程不同步。
TreeMap:底层是二叉树数据结构,线程不同步,可用于给Map集合中的键进行排序。
13.如何将字串 String 转换成整数 int?
有两个方法:
1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
14. 如何将整数 int 转换成字串 String ?
有3种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
java面试题09的更多相关文章
- Java面试题(全)--视频系列
此系列为面试笔试题的视频讲解,以下均为超链接,点击即可进入每个知识点的讲解. Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环 ...
- 一线互联网企业常见的14个Java面试题,Java面试题集大全等你拿,颤抖吧程序员!
本文由尚学堂学员们根据自己参加过的面试回忆.总结而成,一线互联网企业常见的14个Java面试题,包括各大互联网企业.创业小公司,互联网企业.传统软件公司.对于刚毕业和想要跳槽的宝宝们,再适用不过啦,赶 ...
- Java面试题阶段汇总
初级面试题 Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java面试题-基础篇四 Java面试题-基础篇五 Java面试题-javaweb篇六 Java面试题 ...
- 2018年最新Java面试题及答案整理(持续完善中…)
2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...
- 刷完一千道java笔试题的常见题目分析
java基础刷题遇到的最常见问题 可以先看一下这位博主整理的java面试题(很详细,我看了好几遍了):https://blog.csdn.net/ThinkWon/article/details/10 ...
- java面试题及答案(转载)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- 115个Java面试题和答案——终极列表(下)
第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...
- Java面试题(全)
JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...
- Java面试题大全(四)
JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...
随机推荐
- shell查看系统基本信息脚本
#!/bin/bash echo "IP:" ifconfig |grep "inet addr"|grep -v 127.0.0.1|awk '{print ...
- Android中经常使用的bitmap处理方法
收集了非常多bitmap相关的处理方法,差点儿所有应用在项目中,所以特记录下! package com.tmacsky.utils; import java.io.ByteArrayOutputStr ...
- OpenCV实现图像颜色特征提取
https://github.com/ictlyh/ImageFeature 链接:http://pan.baidu.com/s/1mhUoPxI 密码:3cnn
- requestWindowFeature使用详解
requestWindowFeature可以设置的值有: // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 // 2.FEATURE_CONTEXT_MENU:启 ...
- git系列1
git clone支持多种协议,除了HTTP(s)以外,还支持SSH.Git.本地文件协议等,下面是一些例子. $ git clone http[s]://example.com/path/to/re ...
- grep命令:查看配置文件未注释行(转)
FROM: https://linux.cn/article-6958-1.html 可以使用 UNIX/BSD/OS X/Linux 这些操作系统自身提供的 grep,sed,awk,perl或者其 ...
- Linux 命令汇总总结相关
玩了linux快一年,简单总结下网络相关的命令,具体每个命令的参数可以用到再细看. 1.ifconfig:查询.设置网卡和IP网段等相关参数,包括MTU.2.ifup.ifdown:这两个命令就是一个 ...
- 关于System.Data.ParameterDirection四个枚举类型所起的作用(转)
相信大家都知道.net中有四个关于参数传入传出的类型 分别是: System.Data.ParameterDirection.Input System.Data.ParameterDirection. ...
- 九度OJ 1152:点菜问题 (01背包、DP)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1046 解决:543 题目描述: 北大网络实验室经常有活动需要叫外买,但是每次叫外买的报销经费的总额最大为C元,有N种菜可以点,经过长时间的 ...
- Moving Computation is Cheaper than Moving Data
https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html Introduction The Hadoop Distributed File Syst ...