Java面试题大全21-30
- WebRoot下哪些文件可以被客户端访问?哪些不可以访问?
- 一个文本文件,如何知道它是GBK编码、还是UTF-8编码?BOM是什么东西?
- interface里可以定义属性吗?
- war包和zip包用法有什么区别?
- 我们知道Eclipse界面本身是用java语言写的,但我们看到的主程序却是eclipse.exe?不是说exe使用C语言写的吗?
- javac.exe是用来把.java文件转成.class的编译器。请问Eclipse是用javac来编译的吗?
- 面试的时候,感觉可以要10000,但是只敢要8000。怎么办?
- 经常有人说: 只要有公司接受我实习,就是不发工资也可以。这种说法有什么问题?
- 找工作需要有工作经验,而没工作就没工作经验。如何理解这种死循环?
- 怎么把Java程序做成exe发布?
问题 #21
WebRoot下哪些文件可以被客户端访问?哪些不可以访问?
共 次阅读
答案
默认的,tomcat允许浏览器访问webroot下的所有文件,但除了WEB-INF目录之外。
为什么呢?因为约定WEB-INF目录用于存储程序和配置,如lib,classes,xml配置。显然,这些东西不应该让客户端下载。
但是,我们也可以通过servlet和filter技术,来改变这个默认行为。例如,我们可以专门servlet,让客户端能访问WEB-INF下的东西。
问题 #22
一个文本文件,如何知道它是GBK编码、还是UTF-8编码?BOM是什么东西?
共 426 次阅读
答案
我们平时看到的文本文件,虽然都是文本,但有的是GBK编码,有的UTF-8编码。
那么,对于一个阅读器,它在读取一个文本文件时如何知道它是GBK还是UTF-8呢?
奥秘在于文件头部的几个字节。
规定如下:当以UTF16或UTF-8编码存储时,头部需要添加几个字节作为标识。称为 BOM
UTF8: 头部3个字节 EF BB BF
UTF16BE (Big-Endian) : FE FF
UTF16LE (Little-Endian) : FF FE
由于UTF-8是我们常见的类型,所以只要关闭UTF-8的BOM即可。
当我们自己读取一个文本文件时,便要注意这种事情。要检测头部是否有 EF BB BF ,这三个字节是编码标识,不是有效内容。
final byte[] bom= { (byte)0xEF, (byte)0xBB, (byte)0xBF };
if ( buf[0] == bom[0] && buf[1] == bom[1] && buf[2] == bom[2] )
{
// It’s UTF8 encoded …
}
反之,如果没有检测到这几种BOM,但是ANSI(本地字符编码)。对于Windows中文版来说,本地编码就是GBK编码。
问题 #23
interface里可以定义属性吗?
共 471 次阅读
答案
本质上不可以。
如果强行在interface里加一个属性,则该属性自动变成public static。显然,这不算是个属性。
例如,
public interface Listener
{
int number;
}
虽然number没加static,但是编译会自动把它按public static处理。
为什么这样呢?因为接口就是用来定义接口的,在里面加属性没有意义。
另外,静态属性还叫属性吗?不算了。因为属性表示属于,某对象有属性、这个属性就属于这个对象。但静态对象则表示,这个东西是属于大家的!
问题 #24
war包和zip包用法有什么区别?
共 372 次阅读
答案
其实也没什么区别了。war 包就是一个 zip ,改了个后缀。
war包的工作原理 : 把 war 包放在 webapps 目录之下,然后启动 tomcat 时、会由tomcat 自动将其解压、然后加载这个应用。
但是从实际的部署实践来说,为什么不直接手工解压缩好呢?
一般来说,把项目的WebRoot目录压缩成zip,拷贝到服务器主机之上。解压缩到指定位置,重启 Tomcat ,即完成网站的升级 (数据部分的升级不在本文阐述之中)。显然,使用war让它tomcat来解压缩并没什么好处。
问题 #25
我们知道Eclipse界面本身是用java语言写的,但我们看到的主程序却是eclipse.exe?不是说exe使用C语言写的吗?
共 502 次阅读
答案
平时我们双击 eclipse.exe 就可以启动eclipse,而 eclipse.exe 确实是C/C++写的。
但是我们注意到, eclipse.exe 文件大小只有300多K,是一个非常小的文件。而我们看到Eclipse功能却是非常庞大,显然,Eclipse这么多功能不可能是用300K的程序完成的。
实际上,我们看到的 eclipse.exe只是一个启动器,它启动之后,会使用进程创建的技术,创建一个java进程来运行Eclipse的主程序 ( jar )。所以,在任务管理器里可以看到两个进程:eclipse.exe 和 javaw.exe 。
其实,我们自己在发布 Java 程序的时候,也可以使用相同的思路,发布为一个exe。具体办法,请参考《Swing入门篇》之18章。
问题 #26
javac.exe是用来把.java文件转成.class的编译器。请问Eclipse是用javac来编译的吗?
共 448 次阅读
答案
Eclipse自身就是个编译器,它可以编译java,或者说它自己就相当于javac。
在新建项目时,可以指定编译水平。也就是说,Eclipse可以按JavaSE1.7编译,也可以按1.8的标准来编译。
Java的这个编译方法是个公开的标准, 原则上我们也可以按标准来自己实现一个Java编译器。
问题 #27
面试的时候,感觉可以要10000,但是只敢要8000。怎么办?
共 606 次阅读
答案
从公司的角度看,10000和8000没有任何差别。
从你的面试官角度看。你的面试官就是将来的直接领导。那么,他省下2000块会进入他自己的腰包吗?不会。他想去招你,却因为少给了2000块让你闷闷不乐。你如果不去了或者过早离职了,他岂不是还得花力气再招?显然,这不符合他的利益,他没有理由少给你2000。除非他傻,他不会给自己找不必要的麻烦。
所以,在整个公司范围内,其实没有人关心你这是8000还是10000。人家关心的核心问题,是你行,还是不行?公司允许的额度范围内,面试官会尽量让你心满意足。
记住: 一切的核心在于你行还是不行。他若喜欢你,觉得你行,就会尽量给你满意的工资。
你需要把握对方的情绪,到你是对你满意,一般,还是不满意。如果对方对你满意,就开最高价吧!
问题 #28
经常有人说: 只要有公司接受我实习,就是不发工资也可以。这种说法有什么问题?
共 576 次阅读
答案
求职时要把握两点:
首先,公司不是学校,不是慈善机构,也不是收容所。
其次,公司不差钱,差的是人才。
所以,不要说”不发工资也行”这种话,就是他原意每月倒贴一万块钱给公司,会有公司收他吗?至少正规公司是不会的。( 题外话,不发工资违法 )
为什么呢?因为让他进项目组后,得找个人(导师) 来带这个新人。假设导师月薪2,3万,因为要带新人,至少有1/3的时候要投在新人身上了。人家本来是一个100%战力的干将,因为新人的存在,他的输出值将到70%。同时,整个项目的进度拖延,效率降低,而一般项目会是百万级别的,少的也有几十万。整个项目的损失将更严重,大BOSS一怒之下,整个项目组都得遭殃。
综上,即便每月倒贴一万,他整体上仍然还是个负值。所以,没有哪家公司敢让他进他们的项目组,除非是嫌倒闭的不够快。只有能贡献正的价值,价值越高,人家才越愿意招募。
最后,也有一种公司会不嫌弃,只要交钱,他们就收。什么样的公司呢?当然是培训机构。
问题 #29
找工作需要有工作经验,而没工作就没工作经验。如何理解这种死循环?
共 678 次阅读
答案
“找工作需要有工作经验,而没工作就没工作经验”。这其实是一个梗,大家不要当真了。
否则,你无法解释每年百万的毕业生是怎么找到工作的。大学生会有工作经验?开什么玩笑,那样的大学估计是个培识机构吧!
用人单位对求职者最本质的要求,并不是工作经验。
工作经验能说明什么问题呢?假设你做过京东商场项目,请问,你在项目里的价值有10万分之一吗?恐怕没有。核心功能都是别人做的,你只做了一个小角角,那这工作经验能有什么说服力呢?
所以,用人单位其实最本质的要求,是你的个人能力。
并不是说工作了才能获得能力,你在前期的训练过程中就已经获得了能力!这就好比,歼20从未参加过实战,但没有敌人敢怀疑它的战斗力。人家有实战化训练的!没错,训练不是真的战斗,但是战力是可以通过训练评测的。
用一句老话:有志不在年高,无志空活百岁。虽有十年搬砖经验,并不会有什么核心价值;但有一年 〖Java学习指南系列〗的自学经验,就可以越过他们了!
问题 #30
怎么把Java程序做成exe发布?
共 435 次阅读
答案
参考『Swing入门篇』第18章。
其实独立的exe是很少的,比如微软的Visual Studio,体积有十几G。它是一个独立exe吗,显然不是。
一个软件往往是有多形态的文件或程序组合起来的,比如有exe,有dll,有jar,有xml,有各种资源。它们作为一个整体,来实现一个系统或一个平台。
所以,不要单纯的以为把程序编程一个单独exe文件就是好。正规的软件很少是那么干的。
按照我们提供的解决方案,便是可以满足想要的形态。即,以一个exe来启动我们的java程序。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以加QQ(2602138376)
文章标题:Java面试题大全21-30
文章字数:2.4k
本文作者:Zevs
发布时间:2019-08-12, 15:08:56
最后更新:2019-08-25, 17:40:40
原始链接:http://zhsh666.xyz/2019/08/12/Java面试题大全21-30/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
√本站访问人数:人次 | ◎本站总访问量:
次