谁知道JAVA工程师面试的脑筋急转弯,越多越好,要有答案的,谢谢~~!
list:允许重复元素,元素有顺序
set:set是无序的集合,Set集合中所有的数据不可以重复,Set集合没有索引不能直接使用循环遍历
针对list和set来说:List适合经常追加数据,插入,删除数据。Set适合经常地随即储存,插入,删除
map:存储的是键值对
新版的java面试题集合、以及各种java面试技巧总结,希望对大家有帮助链接:/s/1o8ELlKe密码:49w2
1.有一个人的了一种很严重的疾病,医生给他开了两种药片,分别称为 A 药片和 B 药片,每种分别为 4 片,每天必须吃两次,每次必须吃 A 和 B 药片各一片,出现错误就会死掉,第一天,他正常吃药,但是,第二天吃药的时候,他不小心把药片搞混了,这两种药片的外观完全一样,他也没有别的办法再获取药片,那么,他应该怎么办?答案
把剩下的四片药全部分开成两半,一半放一堆,另一半放另一堆,第二天每次吃其中一堆就行了
2.5000的阶乘末尾有几个0
答案:
1249个
因为一个5的倍数产生一个零,25的倍数产生二个零
125的倍数产生三个零,625的倍数产生四个零
3025产生五个零,前面计算过的不说,都比前面的多产生一个零
5,10,15,...,5000 一共1000个
25,50,75,...,5000 共200个
125,250,...,5000 共40个
625,1250,...,5000 共8个
3125 只有1个
所以共有1249个零
3.一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%,在牛12岁的时候就送入屠宰场买了。现在有一个农夫有1头1岁大的母牛,在母牛3岁的时候就送到附近的农场去配种,请问40年后这个农夫可能会有多少头牛,写出相关的代码或答题思路,最好用面向对象。
答案:
Java代码
package com.polaris.test;
import java.util.*;
/**
* 问题描述:
*
* 一头母牛在3—10岁的时候每年可以生一头小牛,生公牛和母牛的比率是50%,
* 在牛12岁的时候就送入屠宰场买了。现在有一个农夫有1头1岁大的母牛,
* 在母牛3岁的时候就送到附近的农场去配种,请问40年后这个农夫可能会有多少头牛,
* 写出相关的代码或答题思路,最好用面向对象。
* @author polaris http://www.beijixing001.com
* @version 1.0
*/
public class ComputeCattleNum {
// 保存所有母牛
private static List<Cattle> cows = new ArrayList<Cattle>();
// 保存所有当前农夫拥有的牛
private static List<Cattle> cattles = new ArrayList<Cattle>();
public static void main(String[] args) {
// 第一头母牛
Cattle cow = new Cattle(0,3);
cows.add(cow);
// 40年
for(int i=0;i<40;++i) {
// 大于等于12岁的牛送到屠宰场卖掉;同时每年,所有的牛
for(int j=0;j<cattles.size();++j) {
Cattle temp = cattles.get(j);
if(temp.getDead()) {
cattles.remove(temp);
}
// 开始只有一头母猪,年龄不生长
if(i>0) {
cattles.get(j).grow();
}
}
// 母牛生小牛
for(int j=0;j<cows.size();++j) {
Cattle calf = cows.get(j).bear();
if(calf!=null) {
if(calf.getSex()==0)
cows.add(calf);
cattles.add(calf);
}
}
}
System.out.println("40年后农夫拥有" + cattles.size() + "头牛");
}
}
class Cattle {
// 牛的雌雄:0代表雌,1代表雄
private int sex;
// 牛的年龄
private int age;
// 是否卖掉(已死)
private boolean dead = false;
public Cattle(int sex, int age) {
this.sex = sex;
this.age = age;
}
/**
* 生小牛
* @return 生出的小牛
*/
public Cattle bear() {
Cattle calf = null;
if(this.sex==0) {
if(this.age>=3 && this.age<=10) {
calf = new Cattle(random(),0);
} else {
//System.out.println("抱歉,此牛太小或太老,不能生育。");
}
} else {
//System.out.println("有没有搞错,公牛也想让它生小牛?");
}
return calf;
}
private int random() {
return (int)Math.round(Math.random());
}
/**
* 长大一岁,如果当前大于等于12岁,则卖掉
*/
public void grow() {
if(this.age>=12) dead = true;
else this.age++;
}
public int getSex() {
return this.sex;
}
public boolean getDead() {
return this.dead;
}
}
4.宴会桌旁
在某宾馆的宴会厅里,有4位朋友正围桌而坐,侃侃而谈。他们用了中、英、法、日4种语言。现已知:
A.甲、乙、丙各会两种语言,丁只会一种语言;
B.有一种语言4人中有3人都会;
C.甲会日语,丁不会日语,乙不会英语;
D. 甲与丙、丙与丁不能直接交谈,乙与丙可以直接交谈;
E. 没有人既会日语,又会法语。
请问:甲乙丙丁各会什么语言?
答案:
第一题正解
甲:中日
乙:中法
丙:英法
丁:中
5.借机发财
从前有A、B两个相邻的国家,它们的关系很好,不但互相之间贸易交往频繁,货币可以通用,汇率也相同。也就是说A国的100元等于B国的100 元。可是两国关系因为一次事件而破裂了,虽然贸易往来仍然继续,但两国国王却互相宣布对方货币的100元只能兑换本国货币的90元。有一个聪明人,他手里 只有A国的100元钞票,却借机捞了一大把,发了一笔横财。请你想一想,这个聪明人是怎样从中发财的?
答案:
拿着A国100在A国换好B国的钱,然后再拿着换好的B国的钱去B国换A国的钱
如此循环
6.快马加鞭
墨西哥农村现在仍然可以看到人们用马和驴运载货物。一位商人把四匹马从甲村拉到乙村,而从甲村到乙村,A马要花一小时,B马要花两小时,C马要花四小时,D马要花五小时。
这位商人一次只能拉两匹马,回来时他还要骑一匹马,其中以走得慢的那匹马作为从甲村拉到乙村所需的时间。听说有人花了12小时就把四匹马全部从甲村拉到乙村,请问:他是如何办到的?
答案:
AB一起过B回来 4小时
CD 一起过A回来 6小时
AB 一起过 2小时
一共12小时
7.击鼠标
击鼠标比赛现在开始!参赛者有拉尔夫、威利和保罗。
拉尔夫10秒钟能击10下鼠标;威利20秒钟能击20下鼠标;保罗5秒钟能击5下鼠标。以上各人所用的时间是这样计算的;从第一击开始,到最后一击结束。
他们是否打平手?如果不是,谁最先击完40下鼠标?
答案:
拉尔夫
一个加速然后减速的过程。三个人平均速度相等。达到平均速度时间在中间的人可能性最大。
8.感觉
用第一感觉判断8+8=91这个等式正确吗?说明理由。
答案:
不正确。8+8=16
9.谎话
如果下列每个人说的话都是假话,那么是谁打碎了花瓶?
夏克:吉姆打碎了花瓶。
汤姆:夏克会告诉你谁打碎了花瓶。
埃普尔:汤姆,夏克和我不太可能打碎花瓶。
克力斯:我没打碎花瓶。
艾力克:夏克打碎了花瓶,所以汤姆和埃普尔不太可能打碎花瓶。
吉姆:我打碎了花瓶,汤姆是无辜的。
答案:克力斯。吉姆的话有两个条件,只要一个为false就为false。
10.大有作为
鲁道夫、菲利普、罗伯特三位青年,一个当了歌手,一个考上大学,一个加入美军陆战队,个个未来都大有作为。现已知:
A. 罗伯特的年龄比战士的大;
B. 大学生的年龄比菲利普小;
C. 鲁道夫的年龄和大学生的年龄不一样。
请问:三个人中谁是歌手?谁是大学生?谁是士兵?
歌手 大学 美军陆战队
鲁道夫 X true
菲利普 true X X
罗伯特 true X
由A B=》罗伯特比菲利普小比战士大。所以菲利普不是战士
11.麻省理工大学的学生
美国麻省理大学的学生来自不同国家。
大卫、比利、特德三名学生,一个是法国人,一个是日本人,一个是美国人。现已知:
1、 大卫不喜欢面条,特德不喜欢汉堡包;
2、 喜欢面条的不是法国人;
3、 喜欢汉堡包的是日本人;
4、 比利不是美国人。
请推测出这三名留学生分别来自哪些国家?
答案:
法国人 日本人 美国人
大卫 true X
比利 true X
特德 X true
喜欢汉堡的是日本人,特德不喜欢汉堡=》特德不是日本人
喜欢汉堡的是日本人,所以喜欢面条的可暂假设也不是日本人=》美国人喜欢面条,大卫不喜欢面条=》大卫也不是美国人。所以特德是美国人
喜欢面条的不是法国人可暂假设不喜欢面条的是法国人=》大卫是法国人
所以=》 比利时日本人
然后在那上面假设的结果挨个判断原题条件。每个条件都符合。所以以上假设成立。
如需更多(包括各种面经,笔经)加我QQ:719116861。注明java!
java兄弟连论坛有这样的面试题,有时间可以去看看
shrmdgthftyyyyyyyyyyyyyteyhf
动老金
多看些 书 应该可以吧
JAVA软件工程师有用吗?
JAVA软件工程师是非常有用的职业,尤其在当今的IT行业中。JAVA是一种广泛使用的编程语言,被应用于众多领域,如Web开发、移动应用程序开发、企业级应用程序开发等。因此,具备JAVA技能的人才在就业市场上具有很大的需求量。JAVA软件工程师的就业前景非常广阔,可以在许多大型或小型的企业、金融机构、医疗机构...
Java工程师可以从事哪些工作?
无论是手机软件、手机Java游戏还是电脑软件,你的每一次购物从搜索浏览、咨询问价到每一笔订单最后支付成功,都离不开Java。越来越多的企业也在采用Java语言开发网站。那么,学完Java以后,成为Java开发工程师以后,到底能从事什么行业什么工作呢?Java工程师可以做网站 Java语言可以用来编写网站,现在很多大型...
java工程师是做什么的
更系统全面的学习资料,点击查看岗位职责一:1、参与项目系统设计,完成软件项目的程序开发工作;2、负责产品需求分析、设计和文档编写;3、根据产品需求和设计进行软件开发;4、负责解决开发过程中的技术问题;5、负责网站开发文档编写工作;6、统一代码风格、监督团队开发、落实测试、验收代码质量;7、参与...
想做JAVA工程师,应该具备哪些能力?
作为一名JAVA工程师,应该具备多项核心能力,以确保能够胜任各种开发任务。以下是两个关键能力的例子及详细解释:熟练掌握JAVA语言及面向对象编程:这是JAVA工程师的基础。JAVA语言本身具有丰富的特性,如封装、继承和多态,这些都需要深入理解并熟练运用。面向对象编程(OOP)不仅仅是一种编程范式,更是一种...
云南北大青鸟java培训告诉你软件开发工程师发展前景怎么样?
目前越来越多想要进入IT行业的朋友,已经开始搜索IT行业中目前比较火爆的工作岗位。在大家搜索的时候,Java工程师、大数据分析师、网络工程师等等是陆陆续续进入大家的眼球,很多朋友对Java工程师是特别的感兴趣,今天就跟丽江IT培训http:\/\/www.kmbdqn.cn\/一起来了解下Java工程师发展前景如何?一、什么是...
Java工程师一般月薪是多少?
很多刚进入Java行业的小伙伴,还是对Java的人才需求,就业薪资有疑问。今天就为大家介绍一下Java的收入情况,以及不同城市的就业情况。全国各城市Java职位需求数分布图:可以看到互联网企业集中的北京、上海、深圳的Java工程师需求量最大,杭州、广州紧随其后。全国Java工程师薪资范围分布图:全国超过50%的...
java开发工程师需要学什么(java开发工程师需要学什么软件)
第二阶段、JavaWeb的学习Web前端开发基础和框架、Servlet和JSP在Web后端的应用、Web后端开发相关专题、MVC和分层架构以及项目开发流程及CASE工具的使用等。成为初级java工程师需要学什么?1、面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是...
什么是JAVA软件工程师JAVA怎么理解
JAVA软件工程师是指专门从事JAVA软件开发的工程人员 Java是由Sun公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均...
一个高级java工程师需要具备什么能力和技术
一、 JAVA。 要想成为JAVA(高级)工程师肯定要学习JAVA。一般的程序员或许只需知道一些JAVA的语法结构就可以应付了。但要成为JAVA(高级)工程师,您要对JAVA做比较深入的研究。您应该多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您对JAVA的所有包都浏览一下,知道大概的API,这样您就...
java全栈工程师要求?
Java全栈工程师需要掌握什么技能?哪里可以学?1、想要成为Java全栈工程师必须首先熟悉Java,但是作为一个零基础人员,成为Java全栈工程师的第一步是掌握JavaSE。2、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B\/S架构下的应用开发。泛型,反射,注解。掌握JAVA高级应用,利用泛型,注解,枚举...
兀有封马蔺: 初级部分 Java 程序设计基础,包括 J2sdk基础、Java面向对象基础、Java API使用、数据结构及算法基础、Java AWT图形界面程序开发;J2SE平台Java程序设计,包括Swing图形程序设计, Socket网络应用程序设计,对象序列化,Java 常用...
夏河县19435981265: 明天要去面试java工程师,有点紧张,不知道面试的时候会问什么问题啊 - ?
兀有封马蔺: 刚毕业的吧?,一般情况下面试官知道你是刚毕业的,会多问你一些基础的东西.网上搜一下java工程师面试题,一般情况下都是问里面的东西.其实不用紧张的,你可以想象一下,如果你通过面试了,以后你们就是同事了,还用紧张吗? 我以前也经历过,面试没那么可怕,面试官会问有关技术方面的东西,这个就得靠你自己了,让你谈谈来面试这家公司,对公司的认识?对未来发展的渴望?你在往什么方向努力?也有可能会问你希望公司给你提供一个怎样的发展平台?如果有做过项目的经历,也说说吧.比如在项目中担任的什么角色?用的什么技术? 祝你好运吧,希望不要遇到太刁难的面试官就好.
夏河县19435981265: Java面试中的变态题求解??
兀有封马蔺: 首先,为什么要跳?这个要求不管对你还是这家公司都没有任何好处.其次,没了生命就算得到梦想中的工作又有什么用
夏河县19435981265: java软件工程师!!面试题!! - ?
兀有封马蔺: 我面试过人,也被人面试过,工作了6年.对于1年半的工作经验的人来说,主要问的是基础:一般会问:1,servlet,struts,spr ing,hibernate/ibatis, 问struts的流程和mvc模式,也会问问spring的依赖注入. 然后是数据库方面,会问存储过程, 引擎等.2,到百度上面找点笔试题看看...一年半他不可能问太深入的问题. 比如大数据的处理,并发机制,负载均衡,分布式等.. 最后我还有点建议,在面试的时候先把相关的技术稍微看看,要心里有一个大致的印象,这样才能回答好,回答得好,工资就可以谈高点..
夏河县19435981265: 如何面试 Java工程师 - ?
兀有封马蔺: 我曾经做过一段时间面试的工作,我给你点意见你参考下. 1、网上的基础的面试题一定要看,能理解就理解,不能理解就背下来.尽量看的全面,各个方面都要看到,重点的还是基础方面的,其他方面的要有印象,别人问的时候起码知道是说什么的; 2、面试时要诚实,会就是会,不会就是不会.不会的时候,可以说下类似的你知道的东西,或者换一个角度来回答问题. 3、面试时一定要表现出对岗位的渴望,面试前要多了解要面试的公司和岗位,以及岗位所用到的技术.做完上面这些,应对初级的面试应该问题不大.中级及以上的面试,真的要看技术,不是可以糊弄过去的.
夏河县19435981265: 急求java工程师面试的自我介绍 - ?
兀有封马蔺: [面试中]面试必考问题精华 ① Q:请你自我介绍一下 思路: 1、这是面试的必考题目. 2、介绍内容要与个人简历相一致. 3、表述方式上尽量口语化. 4、要切中要害,不谈无关、无用的内容. 5、条理要清晰,层次要分明.6、事先最好以文...
夏河县19435981265: java面试方面的问题 - ?
兀有封马蔺: 记住我告诉你的几个问题:我整理的 1.介绍一下自己 就说说培训的情况,学的什么,学到什么程度.自己学到很多东西 成熟了很多 2.你进入公司后的3年计划,3年内老老实实的工作就行了 3.你的人生规划. 4.问你一些很难的问题,如果不会,你就说我会到百度上查的.切记切记. 5.你说说我们公司为什么要录取你,这个提很常见.我的可塑性强,适应能力强,学习能力强.可以很快的试音公司环境 等等.问:请举例说明 6.考点:在遵纪守法的条件下听重上级安排. 我一共整理了36道,先给你看这几道把. java方面的你到网上搜搜就行了
夏河县19435981265: 程序员面试的问题 - ?
兀有封马蔺: 数据库 网络 程序设计之类的基础题目.有的有专门的智力测试题 不像你说的 类似 62-1=63 移动一个数字,使等式成立 还有 63 31 15 7 _ 第五个数字是? 等等.....
夏河县19435981265: java程序员笔试题一般都考什么,技术性面试一般又问什么呢?希望有经验的指点指点,谢谢 - ?
兀有封马蔺: 各个公司都不一样,我参加的笔试,刚开始全是逻辑题,都和java没关系,在学校参加的招聘的笔试题就是和网上的差不多了 就是java的基础题,javaEE的题,在网上找的题都可以,认真看看
夏河县19435981265: java 应届生面试? - ?
兀有封马蔺: 同学,如果你运气够好的话,你也有一定java的项目开发经验的话,面试时只要告诉面试官你做的项目以及你负责的模块,以及用到的技术等等,作为应届生就差不多得到面试官的肯定了.如果前面我说的都只是一纸空谈,那你需要提升的空间还有很多,首先java有web开发,现在你知道的还有安卓等应用开发,不同的开发所用的知识面还是有区别的,虽然核心都是一样,但是现在公司需要的是进去就能直接开发或者在短期培训之后就能在某个岗位任职.看你的问题就简单一句话,也许你只是想知道如何通过面试,网上那么多面试宝典,你又该相信哪个?同学,等你自己有技术在手,我估计你也就不会再迷茫了.相信自己,缺什么补什么!没什么过不去的坎!加油!