本文编写于 117 天前,最后修改于 117 天前,其中某些信息可能已经过时。

附:2019年Java最新面试指南80题*(点击链接进入)

Java 最新面试题大全 11-20 题 http://blog.zh66.club/index.php/archives/109/
Java 最新面试题大全 21-30 题 http://blog.zh66.club/index.php/archives/110/
Java 最新面试题大全 31-40 题 http://blog.zh66.club/index.php/archives/111/
Java 最新面试题大全 41-50 题 http://blog.zh66.club/index.php/archives/112/
Java 最新面试题大全 51-60 题 http://blog.zh66.club/index.php/archives/113/
Java 最新面试题大全 61-70 题 http://blog.zh66.club/index.php/archives/114/
Java 最新面试题大全 71-80 题 http://blog.zh66.club/index.php/archives/115/

问题 #51

学历低,怎么找一份编程的工作?

共 642 次阅读

答案

二本、大专学历的,第一份工作可以投 外包公司 或 50人以下的小公司,赚取一定的工作经验之后再跳槽。

外包公司:此类公司对学历要求不高,他们是来之不拒的。具体原因请站内搜索 “外包”

小公司:这种初创公司招人困难,因此不会太计较学历。

对于低学历人群,直接去中等以上公司是不现实的。曲线救国,才是行得通的战略。

问题 #52

Spring学会的标志是什么?

共 580 次阅读

答案

学会了:"哇哈哈,配好了,终于有输出了"

没学会:"唉,还是不行,不知道哪配的不对,有没有大神帮我看看?"

Spring架构师: 上家公司的项目代码拷贝了出来,直接能用,,别改,千万别改,改了出问题我也搞不好!

Spring非架构师: 等等,等那个架构师把框架配好了,,什么!都一周了还没配好?那咱们继续歇着

问题 #53

一个网站要在首页显示点赞量最大的10条文章在首页显示。那么页面刷新时,每次后台用select从数据库选取排名靠前的10条。这种设计有什么问题?

共 368 次阅读

答案

新人可能觉得简单,每次用户访问的时候,去查询一下、然后按点击量排行就好?

这样有两个问题:

1 每次访问都查询一次数据库,排一下序,系统开销也太大了

2 排行榜不是实时更新的,一般会保持一定时间(如2个小时不变)

设计思路:

需要借助全局对象和线程来实现。

(1) 新建一个线程,随webapp启动

(2) 每隔2个小时,做一下查询和排序,得到排行榜的前10名,并存到全局对象randList

(3) 当有用户访问时,将randList 数据通过MVC或 RESTful 返回给客户端。

如此,便实现了一个2小时刷新一次的排行榜,同时减轻了后台数据库的查询压力。

问题 #54

什么是"线性表"?有非线性的表吗?给出一个例子。

共 323 次阅读

答案

线性表,是数据结构与算法里的术语。

线性的,就是一条线下去,没有分支的结构。所以基于数组和链表的结构,都是一条线的,都称为线性表。比如,堆、栈、单向链表、双向链表等。

比如,数组是这样的:

□ □ □ □ □ □ (好比一排座位)

链表是这样的:

□→□→□→□→□→□ (好比一条链子)

那有没有非线性的呢?有的,还有树状的、网状的结构,哈希结构,它们都不是线性表。

比如,哈希表是这样的:

■→□→□→□→□→□→□

■→□→□→□→□→□→□

■→□→□→□→□→□→□

显然,这种复杂的结构就不是线性的了。(这根本就不是一条线!)

面试常考的 哈希表 HashMap,其原理可以在《数据结构与算法》课程中找到。

问题 #55

什么是全局对象,如何创建全局对象?

共 478 次阅读

答案

在程序运行期间,一直存在的对象,称为全局对象。(或者说,生命期与程序运行时间相同的对象)

第一种,以 static 修饰的引用,是比较常见的形式。

形如,

public class Config

{

​ public static Config i = new Config(); // i 是一个全局对象

​ public String server;

​ public String username;

}

则 Config.i 指向一个全局对象,此引用永远不会被gc回收,直到程序运行结束。

一人得道,鸡犬升天。相应的,Config.i.server 和 Config.i.username 也都是全局对象了,它们也不会被gc回收。

第二种,即使不以static修饰,但只是实质上一直存在,也是全局对象。

比如,在Swing开发中,主窗口对象 myFrame 会一直存在,直到程序关闭。

再比如,在Web开发中,Filter和Servlet都是全局唯一实例,它们的实例被Tomcat框架管理着。它们也是全局对象。

相当于:

public static void main(String[] args)

{

    Object  a = new Object();

​ ....

}

因为对象a是在main() 里创建的,直到main()退出a才被回收,所以在main() 里创建的引用,便可以认为是全局对象了。

问题 #56

网站后台里,如何初始化一个全局对象?

共 361 次阅读

答案

很多时候,网站后台需要创建一些全局对象,并且在Tomcat应用启动时初始化。

按照我们在 网站中级篇 的介绍,可以创建Filter,在Filter.init() 中对各个全局对象初始化

public class Beans implements Filter

{

public static SomeGlobal sg;

@Override

public void init(FilterConfig filterCfg) throws ServletException

{

​ sg = new SomeGlobal();

​ sg.init();

}

..

}

这里, Beans 是一个 Filter,它会随着Tomcat应用的启动而加载。在 init() 时,会全局引用sg进行初始化。

然后,便可以使用 Beans.sg 来访问这个全局对象了。

注意:为了确保这个 Filter 先于其他 Filter启动,应该在 web.xml 里的保证此Filter优先启动。

问题 #57

POJO 是什么意思 ?

共 302 次阅读

答案

POJO, Plain Ordinary Java Object , 简单Java对象

一个类只有属性、构造方法、Getter/Setter,就称为POJO类。这种类看起来”没啥用“。一般都是在框架技术里用到,比如数据库框架中,将一个POJO类与一个Table中的字段一一对应。

问题 #58

为什么说人生的第一份职业就是最后一份职业?转行很难吗?

共 478 次阅读

答案

很多人会认为,第一份工作没关系,选错了就转行就好了,是吗?

可以,对于强者而言是可行的,但大部分人没有这么强。

以下几点原因让你难以转行:

1 当你换第二份工作时,用人单位会参考你的前面的工作经验

比如,人家招的是研发人员,但是一看你的简历说以前干的是测试、运维、销售,接下来会发生什么事情?你应该猜得到:你的简历直接被刷。

2 经验优势

你已经有了几年运维的工作经验,已经获取了部分经验优势。此时转研发的话,你的经验归零,假设对方不介意你的过往;然而,你自己能够接收新人的待遇吗?工资下降、从零开始,你的心理、你的家人的心理能接受吗?

3 工作中再学习?

有人天真的认为,可以边干边学啊。白天上班做运维,晚上回来学习编程,现实吗?一点都不现实。大多工作人士回家就是躺着休息,很少有那个毅力下班回家还继续学习的。你如果真的有此毅力,那你应该早已经上清华了,不是吗?

更何况,你可能不会准点下班,比如,晚上9点才到家。此时的你,还有精力再学习?

以上,便是职业惯性,大部分人将遵守惯性。少数极强者,能够打破惯性,挣脱命运的束缚,但亦须付出常人难以接受的代价。

37

问题 #59

java.exe 与 javaw.exe 的区别是什么?

在 Java 的 bin 目录下,可以发现 java.exe 和 javaw.exe 。java.exe 可以用来运行一个 java程序,那javaw 是做什么的呢?

共 305 次阅读

答案

※ javaw 是什么?

javaw ,w 表示的是 windows,即窗口程序

当你编写一个窗口程序 (如 Swing程序 ),运行时可以用 javaw

例如

javaw.exe -jar YourApp.jar

※ java 与 javaw 的区别?

以下命令行都可以用来运行Swing窗口程序

java.exe -jar YourApp.jar

javaw.exe -jar YourApp.jar

区别在于,当以java.exe来运行时,在显示窗口的同时、还同时显示黑色的控制台窗口。而以javaw运行时将不显示控制台窗口。

具体可以参考《Swing入门篇》第18章

问题 #60

面试的时候好紧张,是好事还是坏事?

共 445 次阅读

答案

有些许紧张,是好事。因为紧张的你将分泌更多的肾上腺素,这就像兴奋剂一样,会让你大脑反应加快,有助于超水平发挥。

( 注意:肾上腺 不是 荷尔蒙 。。)

但过分紧张,说话都哆嗦,就是坏事。怎么缓解呢?你只要看看面试指南,知道面试找工作是概率事件,就能够让你舒缓。因为只要你平时学的还可以,经过多次面试后,按概率你肯定能拿到Offer。

这次可能不中,那就下次。无论你这次准备多充分,都有各种随机因素让你不中的,所以,又何必那么紧张呢?