自我介绍篇

可包含如下信息:

我是谁

例如我是小明,毕业于xxxx大学xxxx专业,今天面试的岗位为xxxxx.

职业相关经历介绍

提示
举出几个与面试职位相关的经历,结合具体事例,善用数字。
例如“在实习的两个月内先后帮助同事完成了xxxx,xxx和xxx三个项目/报告,为公司带来xx利润。
“我被破例允许以实习生的身份在毎天的晨会上做宏观经济简报

我为什么想要这份工作

提示结合工作要求,谈谈你为什么能胜任这个工作。
例如xxx是我的强项,这份工作和我一直以来所做的以及职业生涯的发展非常匹配。

个人其他值得一提的经历

提示
能够给面试官留下深刻印象的个人经历。
例如
我曾经做过义工,我曾经骑行去过西藏。

自我评价篇

可包含如下信息:

你最大的缺点是什么?

提示
说出自己的缺点及改正它的过程。
例如
工作经验较少,需要学习和掌握的知识很多,所以有些不够自信,但是一定会加倍努力。

你的优点是什么?

提示
自己觉得还不错且和工作有关的的优点。
例如
处事能力类——沉着冷静、条理清矬;
优秀品质类—一不怕困难、喜欢挑战;
团队精神类乐于助人、关心他人。

最能概括你的三个词是什么?

提示
不仅给出关键词,还应举出具体例子说明。
例如“我的适应能力强,有责任心和做事有始终”,并结合具体例子解释

谈谈你某次失败的经历

提示
应表达出曾做过的努力,并介绍从失败中总结出的经验,及如何处理、克服和改变。
例如
虽然方杗没有通过,但是拢到了存在的问题,并以更饱满的热情面对之后的工作。

求职意愿篇

可包含如下信息:

你为什么想来这里工作?

提示
可以从行业平台岗位这三个角度来回答。
例如
依据行业大环境与局部小环境的具体了解详细回答,充分表达自对于用人单位的向往和长期的职业规划等,突出自己与这份工作的契合点。

你如何评价这份工作?

提示
可以回答对工作环境很向往,对工作内容很感兴趣。
例如
之前受到从事过类似工作的前辈对自己产生的积极影晌,加上自己亲身的学习与实践体会,觉得这份工作的确有与众不同之处。

你觉得你有什么优势?

提示充分了解招聘单位期待这个职位所能发挥的作用,根据自己的实际情况和优势,站在招聘单位的角度表明“我能做什么语句尽量简短有力,语气自信笃定。

你能接受加班吗?

提示面试官提出这样的问题,通常是想看你愿不愿意为单位付出、奉献
例如
根据实际情况作答。或者表达出“我会提高效率,减少不必要的卩班类的意思。

职业规划篇

可包含如下信息:

说说你对行业内热点事件/热门现象的看法?

提示热点事件与热门现象往往众说纷纭,所以不必过度纠结持哪种见解。
回答问题时,理由要支撑观点,井依循一定的要点,有逻辑、有条理、有节奏地说出自己的想法。

说说你对行业、技术发展趋势的看法?

提示在面试前充分了解你所在行业的新近热点与发屐趋势,并在思考后整理出相对独特的见解。
聪明的求职者往往对所要涉足的领域预先了解很多,用人单位更青睐“知己”,而不是盲人

你的职业规划是怎样的?

提示这个问题涉及个人定位,回答时可以多侧重对于进步的渴望。未来规划是否是空想,是否能清楚地意识到风险的存在等,都会在规划中得到体现。因此要慎重考虑回答。

就你所申请的这个职位,你认为你还欠缺什么?

可以通过个人经历的不足之处,以自省为角度回答问题可以表达“我相信自己可以胜任这份工作,目前只是缺验,我可以进入公司后以最短的解决,我的学习能力很强,相信可以很快融入单位,进入工作状态。

临场压力篇

可包含如下信息

你并非毕业于名校?

提示
没必要被这类问题激怒,要强调比学历更重要的是能力,并举列说明自己的优势。而且要强调你目前所掌握的技能可以匹配招聘需求。

从简历上看,你的学习成绩似乎并不突出?

提示
突出与应聘岗位相关的高分课程;突出实习、兼职或社囫经历通过实践证明面试者的综合素质和能力;突出自己在大学长期坚持的某项爱好及取得的成绩。

你还有什么问题要问吗?

提示
根据个人情况作答,可以适当体现自己的个性,也可以表达自己的学习热情及上进心。
例如“贵单位对新入职的员工么培训项目?”“贵单位的xxx部门或产品)是怎样运生的?

当你遇到真的无法回答的问题时

提示
不要着急回答,先要做认真思考,以示自己的认真态度与这个问题的难度诚恳向对方表明自己在这个问题上只知道皮毛,从来不知道深意;适时将问题抛给对方,表示出愿意聆听教导的诚意。

群面篇

提示
无论扮演的角色是什么,群面考察的本质上都是个人的气度礼仪、表达能力、沟通能力及合作能力等。
1提前熟悉队友:
群面是一次团队合作,沟通非常重要。在面试前与队友简单交流、相互熟悉,讨论的氛围会变得更加融洽;
2.善于倾听他人:
注意聆听别人的发言,一方面可以结合自己的思考推陈出新,另一方面可以通过总结让自己的发言更加全面;
3.逻辑清晰:
发言务必要有逻辑、有要点,力争让人能够及时理解你的观点、你的理由,提前列出框架会对你更有帮助;
4.学会及时应变:
在规定时间内达成共识,是群面中重要的考核点。适当妥协,勇于受更加合理的建议在群面中也是加分项。

参考资料

https://m.weibo.cn/detail/4448389053509435

考点1 JSP内置对象

下面有关JSP内置对象的描述,说法错误的是?

  • A session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
  • B request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
  • C application对象:多个application对象实现了用户间数据的共享,可存放全局变量
  • D response对象:response对象包含了响应客户请求的有关信息

解析

显示答案/隐藏答案正确答案: C

application对象是共享的,多个用户共享一个,以此实现数据共享和通信
JSP内置对象和属性列举如下:
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3.session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

考点2 集合 异常 接口 继承

下面叙述那个是正确的?()

  • A java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
  • B 在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
  • C java接口包含函数声明和变量声明。
  • D java中,子类不可以访问父类的私有成员和受保护的成员。

解析

显示答案/隐藏答案正确答案: B

创建对象比方法调用内存开销大

B选项说的情况就是我们自定义异常的情况,因为函数调用是入栈出栈,栈是在寄存器之下的速度最快,且占的空间少,而自定义异常是存在堆中,肯定异常的内存开销大!所以B对。

接口中只有常量定义 没有变量声明

C选项说的是接口包含方法声明和变量声明。因为接口中方法默认是
abstract public,所以在接口只写函数声明是符合语法规则。但是变量默认是用public
final static 修饰的,意思它是静态常量,常量不管在接口中还是类中必须在声明时初始化!所以C的后半句是错的,必须在声明时并给出初始化!

考点3 静态成员和普通成员的执行顺序

以下代码的输出结果是?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class B
{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("构造块");
}
static
{
System.out.println("静态块");
}
public static void main(String[] args)
{
B t = new B();
}
}
  • A 静态块 构造块 构造块 构造块
  • B 构造块 静态块 构造块 构造块
  • C 构造块 构造块 静态块 构造块
  • D 构造块 构造块 构造块 静态块

解析 多个静态成员按顺序执行

显示答案/隐藏答案正确答案: C

考点1 case穿透

给定代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println("value="+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}

第三行将输出什么?

  • A value=6
  • B value=8
  • C value=3
  • D value=5
  • E value=4

解析

显示答案/隐藏答案正确答案: B

考点2 servlet内置对象

从以下哪一个选项中可以获得Servlet的初始化参数?

  • A Servlet
  • B ServletContext
  • C ServletConfig
  • D GenericServlet

解析

显示答案/隐藏答案正确答案: C

通过ServletConfig接口的getInitParameter(java.lang.String name)方法

考点3 运算符优先级

下面的程序将来打印什么?()
public class TestIncr {
public static void main(String args[]) {
int i = 0;
i = i++ + i;
System.out.println(“I =” +i);
}
}

  • A I = 1
  • B I = 2
  • C I = 3
  • D 编译出错

解析

显示答案/隐藏答案正确答案: A

考点4 持久区jvm堆内存溢出

下面哪种情况会导致持久区jvm堆内存溢出?

  • A 循环上万次的字符串处理
  • B 在一段代码内申请上百M甚至上G的内存
  • C 使用CGLib技术直接操作字节码运行,生成大量的动态类
  • D 不断创建对象

解析

显示答案/隐藏答案正确答案: C

http://blog.csdn.net/sivyer123/article/details/17139443

考点5 CMS垃圾回收器

CMS垃圾回收器在那些阶段是没用用户线程参与的

  • A 初始标记
  • B 并发标记
  • C 重新标记
  • D 并发清理

解析

显示答案/隐藏答案正确答案: AC

考点6 序列化

transient 变量和下面哪一项有关?

  • A Cloneable
  • B Serializable
  • C Runnable
  • D Comparable

解析

显示答案/隐藏答案正确答案: B

考点7 网络编程

关于 Socket 通信编程,以下描述错误的是:( )

  • A 服务器端通过new ServerSocket()创建TCP连接对象
  • B 服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象
  • C 客户端通过new Socket()方法创建通信的Socket对象
  • D 客户端通过new ServerSocket()创建TCP连接对象

解析

显示答案/隐藏答案正确答案: D

考点8 HashMap

下面有关java hashmap的说法错误的是?

  • A HashMap 的实例有两个参数影响其性能:”初始容量” 和 “加载因子”。
  • B HashMap 的实现不是同步的,意味着它不是线程安全的
  • C HashMap通过开放地址法解决哈希冲突
  • D HashMap中的key-value都是存储在Entry数组中的

解析

显示答案/隐藏答案正确答案: C

解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的。 注:
链表法是将相同hash值的对象组成一个链表放在hash值对应的槽位;
用开放定址法解决冲突的做法是:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。
沿此序列逐个单元地查找,直到找到给定
的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。
拉链法解决冲突的做法是: 将所有关键字为同义词的结点链接在同一个单链表中
。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数
组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。在拉链法中,装填因子α可以大于1,但一般均取α≤1。拉链法适合未规定元素的大小。

考点9 补码运算

变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()

  • A 1
  • B -(2^62+2^61+2^60+1)
  • C 2^62+2^61+2^60+1
  • D 2^59+(2^55+2^54+…+2^2+2^1+2^0)

解析

显示答案/隐藏答案正确答案: C

考点10 反射机制

Java是一门支持反射的语言,基于反射为Java提供了丰富的动态性支持,下面关于Java反射的描述,哪些是错误的:( )

  • A Java反射主要涉及的类如Class, Method, Filed,等,他们都在java.lang.reflet包下
  • B 通过反射可以动态的实现一个接口,形成一个新的类,并可以用这个类创建对象,调用对象方法
  • C 通过反射,可以突破Java语言提供的对象成员、类成员的保护机制,访问一般方式不能访问的成员
  • D Java反射机制提供了字节码修改的技术,可以动态的修剪一个类
  • E Java的反射机制会给内存带来额外的开销。例如对永生堆的要求比不通过反射要求的更多
  • F Java反射机制一般会带来效率问题,效率问题主要发生在查找类的方法和字段对象,因此通过缓存需要反射类的字段和方法就能达到与之间调用类的方法和访问类的字段一样的效率

解析

显示答案/隐藏答案正确答案: ADF
  • A选项错误,类Class在java.lang包下,类Method、Filed在java.lang.reflet包下。
  • D选项错误,反射的本质就是从字节码中查找,动态获取类的整容结构,包括属性,构造器,动态调用对象的方法,而不是修剪类
  • F选项错误,使用了反射的效率都会降低,就算加了缓存

考点1 进制加权展开

以下哪个式子有可能在某个进制下成立()?

  • A 13*14=204
  • B 12*34=568
  • C 14*14=140
  • D 1+1=3

解析

显示答案/隐藏答案正确答案: A

(1n+3)(1n+4)=2n^2+4;
解得: n=-1或n=8; 进制不为负数,所以 n=8成立

考点2 字符流 字节流

下面的类哪些可以处理Unicode字符?

  • A InputStreamReader
  • B BufferedReader
  • C Writer
  • D PipedInputStream

解析

显示答案/隐藏答案正确答案: ABC

考点3 字符集

在Java语言中,下列关于字符集编码(Character set encoding)和国际化(i18n)的问题,哪些是正确的?

  • A 每个中文字符占用2个字节,每个英文字符占用1个字节
  • B 假设数据库中的字符是以GBK编码的,那么显示数据库数据的网页也必须是GBK编码的。
  • C Javachar类型,通常以UTF-16 Big Endian的方式保存一个字符。
  • D 实现国际化应用常用的手段是利用ResourceBundle

解析

显示答案/隐藏答案正确答案: CD

A 显然是错误的,Java一律采用Unicode编码方式,每个字符无论中文还是英文字符都占用2个字节。
B 也是不正确的,不同的编码之间是可以转换的,通常流程如下:
将字符串S以其自身编码方式分解为字节数组,再将字节数组以你想要输出的编码方式重新编码为字符串。
例:String newUTF8Str = new
String(oldGBKStr.getBytes(“GBK”), “UTF8”);
C 是正确的。Java虚拟机中通常使用UTF-16的方式保存一个字符
D 也是正确的。ResourceBundle能够依据Local的不同,选择性的读取与Local对应后缀的properties文件,以达到国际化的目的。
综上所述,答案是 C 和 D。

考点4 EJB

下列说法正确的是()

  • A WebLogic中开发消息Beannonpersistent 方式可以保证消息的可靠
  • B EJB容器发生错误,non-persistent方式下JMS容器仍然会将消息发送
  • C EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送
  • D EJB容器发生错误,两种方式下JMS容器仍会在MDB可用的时候将消息发送

解析

显示答案/隐藏答案正确答案: C

weblogic中开发消息Bean时的persistent与non-persisten的差别:
persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来。
non-persistent方式的消息将被丢弃。

考点5 中间件

关于中间件特点的描述.不正确的是()

  • A 中间件运行于客户机/服务器的操作系统内核中,提高内核运行效率
  • B 中间件应支持标准的协议和接口
  • C 中间件可运行于多种硬件和操作系统平台上
  • D 跨越网络,硬件,操作系统平台的应用或服务可通过中间件透明交互

解析

显示答案/隐藏答案正确答案: A

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/服务器的操作系统之上应用软件之下,用来管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

(简单来说,中间件并不能提高内核的效率,一般只是负责网络信息的分发处理)

中间件位于操作系统之上,应用软件之下,而不是操作系统内核中

考点6 存根类 适配器模式

存根(Stub)与以下哪种技术有关

  • A 交换
  • B 动态链接
  • C 动态加载
  • D 磁盘调度

解析

显示答案/隐藏答案正确答案: B

什么是存根类

存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的。 

存根类的作用

如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦

考点7 静态方法

阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

1
2
3
4
5
6
7
8
9
10
11
12
13
package NowCoder;
class Test {
public static void hello() {
System.out.println("hello");
}
}
public class MyApplication {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=null;
test.hello();
}
}
  • A 能编译通过,并正确运行
  • B 因为使用了未初始化的变量,所以不能编译通过
  • C 以错误的方式访问了静态方法
  • D 能编译通过,但因变量为null,不能正常运行

解析

显示答案/隐藏答案正确答案: A

类方法不依附与对象。所以可以正常运行

考点8 lambda表达式

下面哪些写法能在 java8 中编译执行()

  • A dir.listFiles((File f)->f.getName().endsWith(".Java"));
  • B dir.listFiles((File f)=>f.getName().endsWith(".Java"));
  • C dir.listFiles((_.getName().endsWith(".Java")));
  • D dir.listFiles( f->f.getName().endsWith(".Java"));

解析

显示答案/隐藏答案正确答案: AD

Lanbda表达式的主要作用就是代替匿名内部类的繁琐语法, 它由三部分组成:

  1. 形参列表。
    • 形参列表允许省略形参类型
    • 如果形参列表中只有一个参数,甚至连形参列表的圆括号也可以省略
  2. 箭头(->)。必须通过英文减法符号和大于符号组成。
  3. 代码块。
    • 如果代码块只包含一条语句,Lambda表达式允许省略代码块的花括号,那么那条语句就不要用花括号表示语句结束。
    • Lambda代码块只有一条return语句,甚至可以省略return关键字。
    • Lambda表达式需要返回值,而它的代码块中仅有一条省略了return的语句。Lambda表达式会自动返回这条语句的值。

考点9 Servlet过滤器

在J2EE中,使用Servlet过滤器,需要在web.xml中配置()元素

  • A <filter>
  • B <filter-mapping>
  • C <servlet-filter>
  • D <filter-config>

解析

显示答案/隐藏答案正确答案: AB

Servlet过滤器的配置包括两部分:
第一部分是过滤器在Web应用中的定义,由元素表示,包括两个必需的子元素
第二部分是过滤器映射的定义,由元素表示,
两个子元素
可以将一个过滤器映射到一个或者多个Servlet或JSP文件,也可以采用url-pattern将过滤器映射到任意特征的URL。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 字符编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

没有

考点1 二维数组的遍历

下面程序段执行完成后,则变量sum的值是( )。

1
2
3
4
5
6
7
int  b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++) {
sum+=b[i][j];
}
}
  • A 32
  • B 11
  • C 2
  • D 3

解析

显示答案/隐藏答案正确答案: B

考点2 main方法的书写

main 方法是 Java Application 程序执行的入口点,以下描述哪项是合法的()。

  • A public static void main( )
  • B public static void main( String args[] )
  • C public static int main(String [] arg )
  • D public void main(String arg[] )

解析

显示答案/隐藏答案正确答案: B

考点3 数据库 事务隔离级别

事务隔离级别是由谁实现的?

  • A Java应用程序
  • B Hibernate
  • C 数据库系统
  • D JDBC驱动程序

解析

显示答案/隐藏答案正确答案: C

考点4 子类调用父类构造器

根据以下代码段,执行new Child(“John”, 10); 要使数据域data得到10,则子类空白处应该填写( )。

1
2
3
4
5
6
7
8
9
10
11
class Parent {
private int data;
public Parent(int d){ data = d; }
}
class Child extends Parent{
String name;
public Child(String s, int d){
___________________
name = s;
}
}
  • A data = d;
  • B super.data = d;
  • C Parent(d);
  • D super(d);

解析

显示答案/隐藏答案正确答案: D

子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员,格式:super.xx
创建子类对象时,默认会调用父类的无参构造方法,但是,如果父类中提供了带参构造函数,却没有提供无参构造器,则子类构造函数必须显示调用父类带参构造器。

考点5 检查异常

Thread. sleep()是否会抛出checked exception?

  • A 会
  • B 不会

解析

显示答案/隐藏答案正确答案: A

Thread.sleep() 和 Object.wait(),都可以抛出 InterruptedException。这个异常是不能忽略的,因为它是一个检查异常(checked exception)

考点6 排序 快速排序

下面程序的输出结果是什么。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class A2{ 
public static void main(String[] args){
int[] a={2,4,6,8,3,6,9,12};
doSomething(a,0,a.length-1);
for(int i=0;i<=a.length-1;i++)
System.out.print(a[i]+" ");
}
private static void doSomething(int[] a,int start,int end){
if(start<end){
int p=core(a,start,end);
doSomething(a,start,p-1);
doSomething(a,p+1,end);
}
}
private static int core(int[] a,int start,int end)
{
int x=a[end];
int i=start;
for(int j=start;j<=end-1;j++){
if(a[j]>=x){
swap(a,i,j);
i++;//交换了几次
}
}//把最大的放到最后
swap(a,i,end);//把最大的放到i的位置
return i;
}
private static void swap(int[] a,int i,int j)
{
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
  • A 找到最大值
  • B 找到最小值
  • C 从大到小的排序
  • D 从小到大的排序

解析

显示答案/隐藏答案正确答案: C

考点7 线程

当我们需要所有线程都执行到某一处,才进行后面的的代码执行我们可以使用?

  • A CountDownLatch
  • B CyclicBarrier
  • C Semaphore
  • D Future

解析

显示答案/隐藏答案正确答案: A

CountDownLatch 是等待一组线程执行完,才执行后面的代码。此时这组线程已经执行完。
CyclicBarrier 是等待一组线程至某个状态后再同时全部继续执行线程。此时这组线程还未执行完。

考点8 java编译

下列说法正确的有( )

  • A 环境变量可在编译source code时指定
  • B 在编译程序时,所能指定的环境变量不包括class path
  • C javac一次可同时编译数个Java源文件
  • D javac.exe能指定编译结果要置于哪个目录(directory)

解析

显示答案/隐藏答案正确答案: ACD

考点1 修饰符混用

下列关于修饰符混用的说法,错误的是( )

  • A abstract不能与final并列修饰同一个类
  • B abstract类中不应该有private的成员
  • C abstract方法必须在abstract类或接口中
  • D static方法中能直接调用类里的非static的属性

解析

显示答案/隐藏答案正确答案: D

abstract类中的确不应该有private的成员,但是是可以有的

考点2 求余运算

以下代码段执行后的输出结果为

1
2
3
4
5
6
7
public class Test {
public static void main(String args[]) {
int x = -5;
int y = -12;
System.out.println(y % x);
}
}
  • A -1
  • B 2
  • C 1
  • D -2

解析

显示答案/隐藏答案正确答案: D

Y(被除数) % X(除数) 当除数与被除数的符号相同时,取余和取模的结果是完全相同的; 当除数与被除数的符号不相同时,结果不同。具体说,取余结果的符号与%前面的数的符号(被除数)相同

考点3 java只有值传递

关于Java中参数传递的说法,哪个是错误的?

  • A 在方法中,修改一个基础类型的参数不会影响原始参数值
  • B 在方法中,改变一个对象参数的引用不会影响到原始引用
  • C 在方法中,修改一个对象的属性会影响原始对象参数
  • D 在方法中,修改集合和Maps的元素不会影响原始集合参数

解析

显示答案/隐藏答案正确答案: D

考点4 多态 编译看左边 运行看右边

下列代码输出结果为( )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Animal{
public void move(){
System.out.println("动物可以移动");
}
}
class Dog extends Animal{
public void move(){
System.out.println("狗可以跑和走");
}
public void bark(){
System.out.println("狗可以吠叫");
}
}
public class TestDog{
public static void main(String args[]){
Animal a = new Animal();
Animal b = new Dog();
a.move();
b.move();
b.bark();
}
}
  • A
    1
    2
    3
    动物可以移动
    狗可以跑和走
    狗可以吠叫
  • B
    1
    2
    3
    动物可以移动
    动物可以移动
    狗可以吠叫
  • C 运行错误
  • D 编译错误

解析

显示答案/隐藏答案正确答案: D

考点5

假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),最终的输出结果是什么?

1
2
3
4
5
6
7
8
9
10
11
12
private List<Integer> nums;
//precondition: nums.size() > 0
//nums contains Integer objects

public void numQuest() {
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size()) {
if (nums.get(k).equals(zero))nums.remove(k);
k++;
}
}
  • A [3, 5, 2, 4, 0, 0, 0, 0]
  • B [0, 0, 0, 0, 4, 2, 5, 3]
  • C [0, 0, 4, 2, 5, 0, 3, 0]
  • D [0, 4, 2, 5, 3]

解析

显示答案/隐藏答案正确答案: D

List中的 get ( i )指的是获取下标(索引)为 i 的元素,也就是第 i+1 个元素
本题:
zero==0,如果get(k)==0,执行remove(k); ;
size==8 ; k==0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()–;
此时集合元素为 :[0,4,2,5,0,3,0]
size==7; k==1,因此get(1)==4 !=0 , 不执行remove(); k++,因没有删除元素,size()不变,
此时集合元素为:[0,4,2,5,0,3,0]
size==7;k==2,k++;
size==7;k==3,k++;
size==7;k==4,get(4)==0,remove(4) ; k++, size()–;
此时集合元素为: [0,4,2,5,3,0]
size==6;k==5,get(5)==0,remove(5);k++, size()–;
此时集合元素为: [0,4,2,5,3]
size==5; k==6 ;退出循环;最终输出此时集合元素为 [0,4,2,5,3] ;
一般更改删除集合元素,使用iterator()迭代器,不推荐使用这种;

此方法的目地就是排除重复元素

考点6 Math.round四舍五入 舍变小入变大

Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).

  • A 11 ,-11
  • B 11 ,-12
  • C 12 ,-11
  • D 12 ,-12

解析

显示答案/隐藏答案正确答案: C

floor : 意为地板,指向下取整,返回不大于它的最大整数
ceil : 意为天花板,指向上取整,返回不小于它的最小整数
round: 意为大约,表示”四舍五入”,而四舍五入,入是往数值大数的方向入
Math.round(11.5)的结果为12,12>11.5
Math.round(-11.5)的结果为-11。-11>-11.5

考点7 Log4j

下列语句哪一个是不正确的()

  • A Log4j支持按分钟为间隔生成新的日志文件
  • B Log4j是一个打印日志用的组件
  • C Log4j支持按年为间隔生成新的日志文件
  • D Log4j的日志打印级别可以在运行时重新设置

解析

显示答案/隐藏答案正确答案: D

Log4j在运行期间不可重置

考点8 默认构造器

It is an important feature of the Java language that it always provides a default constructor to a class.

  • A FALSE
  • B TRUE

解析

显示答案/隐藏答案正确答案: A

只有在不显示声明构造方法时,系统才提供默认无参构造方法

考点9 线程安全集合

下面哪些具体实现类可以用于存储键,值对,并且方法调用提供了基本的多线程安全支持:()

  • A java.util.ConcurrentHashMap
  • B java.util.Map
  • C java.util.TreeMap
  • D java.util.SortMap
  • E java.util.Hashtable
  • F java.util.HashMap

解析

显示答案/隐藏答案正确答案: AE

线程安全的map

HashTable,
SynchronizedMap,
ConcurrentHashMap

考点10 java内存区域

关于Java内存区域下列说法不正确的有哪些

  • A 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.
  • B Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息
  • C Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。
  • D 方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

解析

显示答案/隐藏答案正确答案: BC

B错误. java虚拟机栈没有类信息,类信息是在方法区
C错误. java堆线程共享,主要是存放对象实例和数组

考点11 编译原理 循环优化

下列哪些方法是针对循环优化进行的

  • A 强度削弱
  • B 删除归纳变量
  • C 删除多余运算
  • D 代码外提

解析

显示答案/隐藏答案正确答案: ABD

常见的代码优化技术有:复写传播,删除死代码, 强度削弱,归纳变量删除
有空了解一下

1到10题

Q1请自我介绍一下

不要只是简单读简历,企业最希望通过这个问题了解你是否能胜任工作,要介绍自己最强的技能、最深入硏究的领域、个性中最积极的部分等,简短但要能突出自己的能力。

Q2你最大的优点和缺点

优点可以答沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和友爱等;从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。

Q3你是否能够接受加班?

你可以回答:“我愿额接受挑战在自己责任范围内的工作,不能算是加班。”
但是也要强调,会努力提高工作效率,因为能力低、完成工作慢造成的加班,并不是一件好事。

Q4你对薪资的要求

如果你要求太低,那显然贬低自己的能力;
如果要求太高,又会显得公司受用不起。
HR第一次提出的价钱往往是他们所能给予的最高价钱,他们问你只不过想证实一下这笔钱是否足以引起你对该职位的兴趣。

Q5在五年的时间内,你的职业规划

最普通的回答是“我准备在技术领域有所作为”或“我希望能按公司的管理思路发展”,也可以说出一些你感兴趣的职位。HR总是喜欢有进取心的应聘者。

Q6我们为什么要聘用你

测试你的沉着与自信。可以根据自己的实际情况和优势加以说明,而一个简短、有礼貌但非常笃定的收尾也很重要.
比如,“我能做好我要做的事情”,“我相信自己”。

Q7你对于我们公司了解多少

面试之前,一定要做好功课,可以在网上查一下该公司主营业务,发展方向近期重大战略调整等。

Q8你为什么愿意到我们公司来工作

可以回答一些详细的原因,像“贵公司的高技术开发环境很吸引我”、
“贵公司在近几年来在市场上很有竞争力”、
“贵公司能够给我提供一个与众不同的发展道路”。
这都显示出你已经做了一些调查,也说明你有较为具体的职业规划。

Q9就你申请的这个职位,你认为自己欠缺什么

你可以重新强调自己的优势,然后说“对于这个职位和我的能力来说,我相信自己是可以胜任的,只是缺乏经验。我的学习能力很强,我相信可以很快融入公司的企业文化,进入工作状态。”

Q10在完成某项顶工作时,你觉得领导的指示不对,你会怎么做?

原则上我会尊重和服从领导的工作安排,私底下以请教的口吻表达自己的想法。如果领导没有采纳我的建议,我同样会按要求认真完成工作,但如果领导要求的方式违背原则,我会提出反对意见。

11到20题

Q11你缺乏工作经验,如何能胜任这项工作?

要体现出诚思、机智、果敢及敬业。如“作为应届毕业生,在工作经验方面的确会有所欠缺,因此在读书期间我一直利用各种机会在这个行业里做兼职和实习。实际工作远比书本复杂,但我有较强的责任心、适应能力和学习能力,而且很勤奋,所以是一个优秀的实习生,也积累了一些经验。请放心,学校所学及兼职的工作经验使我一定能胜任这个职位。”

Q12如果我们没有录取你,你下步有什么打算?

可以表示会认直总结这次面试的经验,找原因,找差距,但也不会就此气馁,会把这次的不成功当作历练积累

Q13如果你的工作出现失误,给公司造成损失,你认为该怎么办?

首先强调,本意是为公司努力工作,如果造成经济损失,首要的是想方设法弥补或挽回。如果确实是工作失误所致,愿意承担责任。同时应该补充,之后会总结经验教训。

Q14如果你的工作成绩很突出;得到领导肯定,但却发现同事们因此孤立你,你如何处理?

以后会更加努力;
检讨自己是不是忽略了与同事的交往,或者有什么事情做得不妥当,产生了误会;
会更注意工作方法,多换位思考。

Q15工作中如果难以和同事、上司相处,你该怎么办?

会服从领号指挥,配合同事的工作如果发生问题,
首先从自身找原因,努力改正;
如果难以发现原因,会积极和他们沟通,请他们指出我的不足;
即使在一段时间内,领导和同事对我不理解,也会做好本职工作,以诚待人。

Q16你何时可以入职?

最好回答“如果被录用的话,到职日可按公司要求的时间入职”。如果做不到,可以告知用人单位,但需要表明愿意在能力所及范围内尽快到岗。

Q17你选离职的原因是什么?

不能表现出对上一份工作的怨言,最好从自身发展来表明离职原因,比如,遭遇职业的天花板,或前份工作与自己的长期职业生涯规划不合等,也可以表明应聘的新职位对自己是很好的机会。

Q18你并排毕业于名牌学校?

不卑不亢地回应,比如,我认为是否毕业于名牌院校并不是最重要的,重要的是我目前掌握的技能完全可以胜任工作。而且我的经历让我比一些名牌院校毕业生的动手能力更强,我想我更适合这个职位

Q19我怎样相信你是这个职位最好的人选呢?

根据要求,说出自己应聘的优势。比如,“根据这个职位的性质和我们刚才的谈话,我推断您需要的是工作积极、能够设定目标,不惧怕挑战的人,我就具有这些品质”。然后再介绍一些经历来说明。

Q20为什么你还没有找到工作?

没有找到工作并不是因为能力不行,而是在寻找更好的机会。比如,“我正在谨慎选择我的工作,也有一些工作可以选择,但并不是非常满意

21到30题

Q21你认为你在学校属于好学生吗?

如果成绩好,可以说:“是的,但判断一个学生是不是好学生有很多标准,还包括思想道德、实践经验、团队精神、沟通能力等我是一个全面发展的学生。”
如果成绩不尽理想可以说:“我认为好学生的标准是多元化的我的学习成绩还可以,在其他方面我的表现也很突出,比如我去很多地方实习过,我在学生会组织过许多活动,有比较强的团队合作精神和组织能力。”

Q22你在大学里的学习成绩、不敢恭维,你如何解释呢?

这类问题往往是一种“压追法”的面试技巧,提到的弱点不是问题关键所在,HR是为了看你在压力下如何反应,所以应沉着应付,想办法扭转劣势,表现出自己的急才与修养。

Q23假如我们聘用你,但有时需要做些倒茶端水的杂务,你会反对吗?

这是一个试探性问题,目的是判断你对工作的态度。可以回答:“如果需要,我不会斤斤计较,这些杂务只是我的工作内容的小部分而已

Q24假如你流落荒岛,可以拥有一本书,你会选择哪一本?为什么?

这是假设性问题,来测试应试者的想象力、解决问题的能力,目的看你有没有急才,思想有没有条理,说清理由即可。

Q25你有哪些兴趣爱好?

回答的兴趣爱好可以体现自己积极主动的性格、团队合作的精神、深入学习的意愿等。

Q26你人生中最令你受挫的事情是什么?

这个问题是为了解你对挫折的容忍度及调节方式。可以说让你受挫的经历,但更重要的是你如何处理、克服或改变。

Q27你朋友对你的评价?

“我的朋友都说我是一个可以信赖的人。因为我一旦答应别人的事情,就一定会做到。如果我做不到,我就不会轻易许诺";或“我的朋友都说我是一个比较随和的人,与不同的人都可以友好相处,我总是能站在别人的角度考虑问题。

Q28谈谈你过去做过的成功案例?

举一个你最有把握的例子,把来龙去脉说清楚。切忌夸大其词,把别人的功劳说成自己的。

Q29如果你做的一顶工作受到上级领导的表扬,但你主管领导却说是他做的,你该怎样?

首先,理性地看待这个事情,不能因为这件事影响工作态度。而且平时工作中,领导确实帮助过我,这项工作理应有领导的功劳。但我还是会在适当的时候找领导委婉表达态度,相信领导会明事理。

Q30你能为我们公司带来什么呢?

应再次重复自己的优势,然后说:“就我的能力,我可以给组织带来高效率和更多的收益”。

31到40题

Q31喜欢这份工作的哪点?

不要太直接地把自己的心里话说出来,如果能仔细思考这份工作的与众不同之处,会大大加分。

Q32说你对行业、技术发展趋势的看法?

面试前可以在网上查找该行业、该企业的相关信息,做足功课,包括公司各个部门发展情况。企业欢迎的是“知己”,而不是“盲人

Q33说说你的家庭?

可以回答:虽然我的父母亲都是普通人,但是从小我就看到父亲起早贪黑,工作认真负责,我母亲为人善良,特别乐于助人,父母的一言一行一直在教导我做人做事的道理。

Q34谈你对别槽的看法?

正常的跳槽能促进人才合理流动应该支持;
频繁的跳槽对单位和个人双方都不利,应该反对。

Q35你工作的期望与目标?

回答最好有针对性,如应聘业务员,“我的目标是成为一个超级业务员,将公司的产品广泛推销出去,达到最好的业绩成效。”

Q36如果你被录用了,但工作一段你发现你并不适合这个职位,你怎么办?

首先强调,申请这个职位是你经过了深思熟虑和全面了解的决定,所谓的不适应可能是业务不熟练导致的。而后表明态度,如果发现短时间内能力与职位有差距,你会不断学习,虚心向领导和同事请教经验,力争减少差距。

Q37你和别人发生过争执吗?你是怎样解决的?

千万不要说任何人的过错,成功解决矛盾是一个协作团体中成员所必备的能力,HR希望看到你成熟且乐于奉献。在没有外界干涉的情况下,通过妥协的方式来解决,是较好的答案。

Q38你会如何处理别人的批评?

沉默是金,不必说什么,否则情况更糟,我会等大家冷静下来再讨论,也会接受建设性的批评。

Q39你很努力,但客户始终不满意并投诉,你怎么做?

首先,我会保持冷静,积极应对;
其次,我会反思原因,一是看自己在解决问题上是否有考虑不周之处,二是看客户是否不了解情况,三是看客户是否故意刁难;
再次如果自己确有不周,按照规定作出合理安排;
如果是客户不了解情况,我会做解释;
如果是客户的要求不符合规定,我会明确指出;
把处理情况向领导汇报,不会因客户投诉而丧失工作热情。

Q40对这项工作,你有哪些可预见的困难?

不宜直接说出具体困难,否则可能令HR怀疑你能力。可尝试迂回战术,说出对困难所持有的态度:

  • 工作中出现一些困难是难免的,但是只要有坚忍不拔的毅力、良好的作精神以及周密而充分的准备,任何困难都可以克服。

41到50题

Q41如果我录用你,你将怎样开展工作?

最好不要直接说出具体办法,而是“首先听取领导的要求,然后就有关情况进行了解,接下来制定工作计划并报领导批准,最后根据计划开展工作”

Q42你希望与什么样的上级共事?

最好回避对上级具体的希望,多谈对自己的要求。如“作为刚步入社会的新人,我应该多要求自己尽快适应环境,而不应该对环境提要求,只要能发挥能力,做好工作即可
或“希望我的上级能够在工作中对我多指导对我工作中的错误能够立即指出。”

Q43怎样看待学历和能力?

可以试这样回答“我认为一个人能力的高低,不是看你学了多少知识,而是看你在这个领域上如何发挥。学历只是进入一个企业的敲门砖,工作能力直接决定其职场命运”。

Q44你做的哪件事最自豪?

描述一件能体现你潜在能力的事情

Q45假如你要送同学去机场可单位临时有事非你办不可,怎么办?

如果时间能错开最好
如果工作不是很紧急,跟领导打声招呼,先去机场然后回来加班;
如果工作很紧急,试试能否请其他同事帮忙,实在无法平衡,就打电话给朋友解释一下。

Q46为什么选择这个职务?

表明这一职务一直是自己的兴趣和专长,也累积了一定的经验及人脉,相信自己一定能胜任。
可以适时举出过去取得的成绩,但避免过于夸张或流于炫耀。

Q47对这个职务的期许?

说明自己希望能借此发挥所学及专长同时也吸收公司在这方面的经验。

Q48谈谈如何适应新环境?

遵守规章制度,不迟到不早退,不擅自离岗;
根据领导指示和工作安排,制定工作计划,提前预备,并按计划完成;
多请示并及时汇报,遇到不明白的要虚心请教;
多学习,努力提高自己的业务水平。

Q49除了本公司外,还应聘了哪些公司?

就算不便说出公司名称,也应回答“销售同种产品的公司”,如果应聘的其他公司是不同业界,容易让HR觉得你求职意向不明确。

Q50请问你还有问题要问吗?

不要说没有问题,
可以将没有机会提的问题提出来,
可以强调你没有机会谈到的个人优势,
可以询问何时能得到面试结果,也可以借机表达“我很想得到这份工作,我完全能够胜任,请给我这个机会”。
最后,记得跟HR握手致谢。

参考资料

https://m.weibo.cn/detail/4448391272434927

考点1 GUI

AWT 中用来表示文本框的类是 ( )

  • A TextField
  • B Menu
  • C Label
  • D List

解析

显示答案/隐藏答案正确答案: A

考点2 JDBC

下面哪个不是标准Statement类?

  • A Statement
  • B PreparedStatement
  • C CallableStatement
  • D BatchedStatement

解析

显示答案/隐藏答案正确答案: D

StatementJDBC中相当于SQL语句的载体
A,Statement是最基本的用法,采用字符串拼接的方式,存在注入漏洞
B,PreparedStatementStatement中的SQL语句进行预编译,同时检查合法性,效率高
C,CallableStatement接口扩展
PreparedStatement,用来调用存储过程,它提供了对输出和输入/输出参数的支持。CallableStatement 接口还具有对
PreparedStatement 接口提供的输入参数的支持。
D,不是标准的Statement

考点3 EJB

下列说法正确的是()

  • A WebLogic中开发消息Beannonpersistent 方式可以保证消息的可靠
  • B EJB容器发生错误,nonpersistent方式下JMS容器仍然会将消息发送
  • C EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送
  • D EJB容器发生错误,两种方式下JMS容器仍会在MDB可用的时候将消息发送

解析

显示答案/隐藏答案正确答案: C

考点4 多线程

假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()
boolean isOdd = false;
for(int i=1;i<=2;++i)
{
if(i%2==1)isOdd = true;
else isOdd = false;
a+=i*(isOdd?1:-1);
}

  • A -1
  • B -2
  • C 0
  • D 1

解析

显示答案/隐藏答案正确答案: D

考点5 线程生命周期

在Java线程状态转换时,下列转换不可能发生的有()?

  • A 初始态->运行态
  • B 就绪态->运行态
  • C 阻塞态->运行态
  • D 运行态->就绪态

解析

显示答案/隐藏答案正确答案: AC

图片

考点6 标识符命名

在java中,下列标识符不合法的有( )

  • A new
  • B $Usdollars
  • C 1234
  • D car.taxi

解析

显示答案/隐藏答案正确答案: ACD
  • 字母数字下划线美元符
  • 数字不能开头
  • 不能是关键字

考点1 java包的用途

进行Java基本的GUI设计需要用到的包是()

  • A java.io
  • B java.sql
  • C java.awt
  • D java.rmi

解析

显示答案/隐藏答案正确答案: C

图形用户界面(Graphical User Interface,简称 GUI)是指采用图形方式显示的计算机操作用户界面。
java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。
java.sql提供使用 Java 编程语言访问并处理存储在数据源中的数据的 API。此 API
包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源。
java.awt是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类。功能:包含用于创建用户界面和绘制图形图像的所有类。
java.rmi提供 RMI 包。RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法

考点2 构造器的修饰符

Which of the following can be applied to constructors:

  • A final
  • B static
  • C synchronized
  • D native
  • E None of these.

解析

显示答案/隐藏答案正确答案: E

1.构造器不是通过继承得到的,所以没有必要把它声明为final的。
2.同理,一个抽象的构造器将永远不会被实现。(所以也不能声明为abstract的)
3.构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的。
4.没有实际的需要把构造器定义成同步的,因为它将会在构造的时候锁住该对象,直到所有的构造器完成它们的工作,这个构造的过程对其它线程来说,通常是不可访问的。 (synchronized)
5.本地化的方法情况特别复杂,所以JVM调用起来非常麻烦,需要考虑很多种情况,如果构造器使用native关键字的话,JVM实现起来比较困难。

构造器只能被public、private、protected这3个修饰

考点3 抽象

在jdk1.8之前,下列哪一种叙述是正确的( )

  • A abstract修饰符可修饰字段、方法和类
  • B 抽象方法的body部分必须用一对大括号{ }包住
  • C 声明抽象方法,大括号可有可无
  • D 声明抽象方法不可写出大括号

解析

显示答案/隐藏答案正确答案: D
  • abstract修饰方法,不能用于修饰成员变量(字段)。
  • 抽象方法没有方法体,有没有方法体看有没有大括号。

考点4

根据以下代码段,下列说法中正确的是( )。

1
2
3
4
5
6
public class Parent {
private void m1(){}
void m2(){}
protected void m3(){}
public static void m4(){}
}
  • A 子类中一定能够继承和覆盖Parent类的m1方法
  • B 子类中一定能够继承和覆盖Parent类的m2方法
  • C 子类中一定能够继承和覆盖Parent类的m3方法
  • D 子类中一定能够继承和覆盖Parent类的m4方法

解析

显示答案/隐藏答案正确答案: C

静态成员与继承无关

static修饰的成员属于类成员,父类字段或方法只能被子类同名字段或方法遮蔽,父类的静态成员不能被子类覆盖。

4、静态变量或静态方法,在子类中可以写同名的变量和方法,但是仍然各自属于父类或子类,与继承无关,与覆盖(重写)无关;

5、静态变量或静态方法在调用时,各自调用各自的静态的变量或静态方法,不管有没有强转,只取决于调用者是谁;

考点5 图形界面

容器panel缺省使用的布局编辑策略是( )

  • A Border Layout
  • B Flow Layout
  • C GridLayout
  • D Card Layout

解析

显示答案/隐藏答案正确答案: B

默认是流式布局Flow Layout,相当于浏览器,缩小后有滑块,可以滑动查看

考点6

以下哪个I / O类可以附加或更新文件

  • A RandomAccessFile()
  • B OutputStream()
  • C DataOutputStream()
  • D None of the above

解析

显示答案/隐藏答案正确答案: A

RandomAccessFile 可以通过 seek(long pos) 方法去移动文件指针进行追加更新写入.

考点7 Java标识符

下列哪个是合法的 Java 标识符?( )

  • A Tree&Glasses
  • B FirstJavaApplet
  • C First_Applet
  • D 273.5

解析

显示答案/隐藏答案正确答案: BC

Java标识符规则

标识符只有英文,数字,下划线和$,而且数字不能做开头

考点8 循环语句

下列关于while循环、do-while循环和for循环说法错误的是

  • A while循环先执行条件判断,do-while循环执行循环体
  • B do-while循环结束的条件是关键字while后的条件表达式成立
  • C for循环结构中的3个表达式缺一不可
  • D while循环能够实现的操作,for循环也能实现

解析

显示答案/隐藏答案正确答案: BC
1
2
3
while(条件) {
//执行语句
}

都可以替换成

1
2
3
for(;条件;) {
//执行语句
}

所以D:while循环能够实现的操作,for循环也能实现 是正确的。

考点9 构造器修饰符 native import

关于Java以下描述正确的有( )

  • A native关键字表明修饰的方法是由其它非Java语言编写的
  • B 能够出现在import语句前的只有注释语句
  • C 接口中定义的方法默认是publicstatic
  • D 构造方法只能被修饰为public或者default

解析

显示答案/隐藏答案正确答案: AC

A:native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现,A正确
B:import是用于导包语句,其前面可以出现package,用来声明包的,B错误
C:接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{}),C正确
D:构造方法可以用private,protected,default,private,D错误

考点1 正则表达式

正则表达式中,表示匹配非数字字符的字符是()?

  • A \b
  • B \d
  • C \B
  • D \D

解析

显示答案/隐藏答案正确答案: D

元字符描述

将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配\n。“\n”匹配换行符。序列“\”匹配“\”而“(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。
^
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
$
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
*
匹配前面的子表达式任意次。例如,zo能匹配“z”,也能匹配“zo”以及“zoo”。等价于o{0,}
+
匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
?
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。
{n}
n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
{n,}
n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o”。
{n,m}
m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
?
当该字符紧跟在任何一个其他限制符(
,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+”将尽可能多的匹配“o”,得到结果[“oooo”],而“o+?”将尽可能少的匹配“o”,得到结果 [‘o’, ‘o’, ‘o’, ‘o’]
.点
匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。
(pattern)
匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。
(?:pattern)
非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分时很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。
(?=pattern)
非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)
非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern)
非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?<!pattern)
非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。这个地方不正确,有问题
此处用或任意一项都不能超过2位,如“(?<!95|98|NT|20)Windows正确,“(?<!95|980|NT|20)Windows 报错,若是单独使用则无限制,如(?<!2000)Windows 正确匹配
x|y
匹配x或y。例如,“z|food”能匹配“z”或“food”(此处请谨慎)。“[zf]ood”则匹配“zood”或“food”。
[xyz]
字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
[^xyz]
负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
[a-z]
字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.
[^a-z]
负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
\b
匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的)。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
\B
匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx
匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
\d
匹配一个数字字符。等价于[0-9]。grep 要加上-P,perl正则支持
\D
匹配一个非数字字符。等价于[^0-9]。grep要加上-P,perl正则支持
\f
匹配一个换页符。等价于\x0c和\cL。
\n
匹配一个换行符。等价于\x0a和\cJ。
\r
匹配一个回车符。等价于\x0d和\cM。
\s
匹配任何不可见字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S
匹配任何可见字符。等价于[^ \f\n\r\t\v]。
\t
匹配一个制表符。等价于\x09和\cI。
\v
匹配一个垂直制表符。等价于\x0b和\cK。
\w
匹配包括下划线的任何单词字符。类似但不等价于“[A-Za-z0-9_]”,这里的”单词”字符使用Unicode字符集。
\W
匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。

考点2 抽象类和接口

关于抽象类与接口,下列说法正确的有?

  • A 优先选用接口,尽量少用抽象类
  • B 抽象类可以被声明使用,接口不可以被声明使用
  • C 抽象类和接口都不能被实例化。
  • D 以上说法都不对

解析

显示答案/隐藏答案正确答案: AC
  1. 一个子类只能继承一个抽象类,但能实现多个接口
  2. 抽象类可以有构造方法,接口没有构造方法
  3. 抽象类可以有普通成员变量,接口没有普通成员变量
  4. 抽象类和接口都可有静态成员变量,抽象类中静态成员变量访问类型任意,接口只能public static final(默认)
  5. 抽象类可以没有抽象方法,抽象类可以有普通方法,接口中都是抽象方法
  6. 抽象类可以有静态方法,接口不能有静态方法
  7. 抽象类中的方法可以是public、protected;接口方法只有public

考点3 java内存区域

关于Java内存区域下列说法不正确的有哪些

  • A 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.
  • B Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息
  • C Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。
  • D 方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

解析

显示答案/隐藏答案正确答案: BC

有空了解一下
A.程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址,每一个线程都有一个独立的程序计数器(程序计数器的内存空间是线程私有的),因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出 ,并且程序计数器是jvm虚拟机规范中唯一一个没有规定 OutOfMemoryError 异常 的区域;
B.java虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。 没有类信息,类信息是在方法区中
C.java堆:对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享,主要是存放对象实例和数组
D.方法区:属于共享内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
上面部分内容从下面文章中总结:
https://blog.csdn.net/qq_41701956/article/details/81664921

考点4 Spring依赖注入方式

下面关于依赖注入(DI)的说法不正确的是()

  • A 只有通过Spring才能实现依赖注入(DI)
  • B 依赖注入的主要目的是解耦合
  • C 常见的依赖注入方式有Setter和构造方法

解析

显示答案/隐藏答案正确答案: A

Spring依赖注入(DI)的三种方式,分别为:

  1. 接口注入
  2. Setter方法注入
  3. 构造方法注入

考点5 整型除法结果为整型

设三个整型变量 x = 1 , y = 2 , z = 3,则表达式 y+=z–/++x 的值是( )。

  • A 3
  • B 3.5
  • C 4
  • D 5

解析

显示答案/隐藏答案正确答案: A

整型出发结果只取整数部分,小数部分丢弃,或者说向下取整。

考点6 基本数据类型占用字节数

以下程序段执行后将有()个字节被写入到文件afile.txt中。

1
2
3
4
5
6
7
8
try {
FileOutputStream fos = new FileOutputStream("afile.txt");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(3);
dos.writeChar(1);
dos.close();
fos.close();
} catch (IOException e) {}
  • A 3
  • B 5
  • C 6
  • D 不确定,与软硬件环境相关

解析

显示答案/隐藏答案正确答案: C

int占用4字节

char占用2字节

考点7 jsp页面导入

java采用的uincode编码,两个字节表示一个字符,因此char型在java中占两个字节
给定includel.isp文件代码片段,如下:
<% pageContext.setAttribute(“User”,”HAHA”);%>
______ // 此处填写代码
给定include2.jsp文件代码片段如下:
<%=pageContext.getAttribute(“User”)%>
要求运行include1.jsp时,浏览器上输出:HAHA

A <jsp:include page=”include2.jsp” flash=”true”>
B <%@include file=”include2.jsp”%>
C <jsp:forward page=”include2.jsp”>
D <% response.sendRedirect(“include2.jsp”); %>

解析

显示答案/隐藏答案正确答案: B

B选项是静态包含,相当于讲include2.jsp页面内容拷贝到此处,因此可以输出User属性值
D选项是转发重定向,转发的时候pageContent内的属性值不能被传递,因此得不到User属性值

考点8 queue

下面几个关于Java里queue的说法哪些是正确的()?

  • A LinkedBlockingQueue是一个可选有界队列,不允许null
  • B PriorityQueue,LinkedBlockingQueue都是线程不安全的
  • C PriorityQueue是一个无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))
  • D PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原则

解析

显示答案/隐藏答案正确答案: AC

有空了解一下

考点9 字符串 字符

java中 String str = “hello world”下列语句错误的是?

  • A str+=' a'
  • B int strlen = str.length
  • C str=100
  • D str=str+100

解析

显示答案/隐藏答案正确答案: ABC

A选项错误:str += ‘a’ 和 str +=”a”都是对的,单引号表示字符里面,只能放一个字符。只有双引号里面才能写多个字符,表示字符串。所以如果a前面加一个空格,那么只能用双引号了。代表字符串
B选项错误:数组才有length属性,字符串是length()方法
C选项错误:int 无法直接转成String类型

考点10 异常处理

以下关于JAVA语言异常处理描述正确的有?

  • A throw关键字可以在方法上声明该方法要抛出的异常。
  • B throws用于抛出异常对象。
  • C try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。
  • D finally语句块是不管有没有出现异常都要执行的内容。
  • E 在try块中不可以抛出异常

解析

显示答案/隐藏答案正确答案: CD

throws用于声明要抛出的异常,一般以s结尾的用于声明,比如extens, implements。
throw用于抛出异常。