今儿面试某公司的Java研发工程师面试题,把相关面试题回忆了一下,大家可以看看
1、写出下列程序的输出结果
public class TestFor { public static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] args) { int i = 0; for (foo('A'); i < 2 && foo('B'); foo('C')) { i++; foo('D'); } } }
分析:该题目主要考察了 for 循环语句的执行,平时开发的时候并没有注意过这个问题,其实想想还是比较基础的问题,对于for(A; B; C) { D; } 执行顺序是 A、B、D、C 再次循环的时候 B、D、C ,同时该题目还考察了短路与的用法,到此你是否明白了输出结果? 如果上题修改为下面的形式,其打印结果又不一样了。
public class TestFor { public static boolean foo(char c) { System.out.print(c); return true; } public static void main(String[] args) { int i = 0; for (foo('A'); foo('B') && i < 2; foo('C')) { i++; foo('D'); } } }
2、finally的用法,写出程序输出结果,记住一条finally无论如何都是必须且一定要执行的,所以打印结果就了然了,我在做这个题的时候第二输出结果搞错了。
public class TestException { public static int testExp(int n) { try { if (n > 0) { return n; } else { throw new Exception(); } } catch (Exception e) { return 0; } finally { return -1; } } public static void main(String[] args) { System.out.println(testExp(1)); System.out.println(testExp(-1)); } }
3、写出打印结果,该题考的是static关键字,到现在我也还没想明白,有高手路过可以留言指点一下!!!
public class B { public static int y = A.x + 1; public B() { } public static void main(String[] args) { String str = String.format("x={%d}, y={%d}", A.x, B.y); System.out.println(str); } } class A { public static int x; static { x = B.y + 1; } }
4、设计题
略过
5、编程题
5.1、实现一个线程安全的懒汉式单例类,尽可能高效
public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { // 同步块,可以高效处理多线程 synchronized (Singleton.class) { // 防止一根线程正好释放了synchronized时 第二根线程获取了对象锁又重新new了一个对象 if (instance == null) { instance = new Singleton(); } } } return instance; } }
5.2、写一个写文件的函数,实现多线程同时写入同一个文件成功,不能使用synchronized、Lock同步锁:
集思广益,面试官说实现不唯一,能把你想到的方法留下么?
5.3、请实现一个函数能够判断一个数组是否有序(升序降序都有可能,可能含有相同的元素),有序则返回true,无序则返回false
/** * 可以改成判断首尾两个元素,这样就可以了 如果相等,在有序情况下,所有元素都应相等 */ public class ArrayIsSort { public static void main(String[] args) { // int[] arr = { 2, 2, 5, 6, 7, 8, 20 }; int[] arr = { 100, 100, 80, 70, 60, 50, 40, 30 }; boolean fg = isSort(arr); System.out.println(fg); } private static boolean isSort(int[] arr) { boolean flag = true;// 有序 int len = arr.length; if (len > 1) { for (int i = 0; i < len; i++) { if (arr[0] >= arr[len - 1]) { // 如果排序了则应该为升序 if (i != len - 1 && arr[i] < arr[i + 1]) { flag = false; } } else { // 如果排序了则应该为降序 if (i != len - 1 && arr[i] > arr[i + 1]) { flag = false; } } } } return flag; } }
5.4、输入一个表达式,没有括号,数字小于 0-99之间,输出计算结果,所有的中间结果化为整数字符串,如果输入是非法表达式 返回 ""
例如: 输入 3+8*2/9-2
输出:2
6、被问到的算法问题:
一个小猴子边上有100根香蕉,它要走过50米才能到家, 每次它最多搬50根香蕉,(多了就被压死了),它每走 1米就要吃掉一根,请问它最多能把多少根香蕉搬到家里。
提示:他可以把香蕉放下往返的走,但是必须保证它每走 一米都能有香蕉吃。也可以走到n米时,放下一些香蕉,
拿着n根香蕉走回去重新搬50根。
相关推荐
java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助。java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助
Java作为一门广泛使用的编程语言,其高级工程师面试题往往涵盖了多方面的知识点,旨在考察候选人的技术深度、广度以及实际问题解决能力。2018年最全的Java高级工程师面试题集锦,包含了十几个文档,可以预见这些文档...
### Java高级工程师面试知识点解析 #### JSP与Servlet的异同及联系 - **相同点**:JSP和Servlet都属于Java Web开发的核心技术之一,主要用于动态网页的生成。 - **不同点**: - **本质区别**:JSP本质上是简化版...
这是我找java软件工程师时候,收集的java面试题,汇集了主要的试题,实际我在笔试中有80%的内容和这里面的是重复的.希望能帮助找java工作的您. EJB方面.doc java.doc Java中文问题详解(高手必读).txt Java中文问题...
java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java工程师社招经典面试题java...
JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 ...
java初级程序员面试题 java初级工程师面试题
java中级面试题整理,自身经验遇到的问题整理,希望对您有帮助
新浪微博2015校园招聘java研发工程师笔试题
"2022年Java初级工程师面试题" 本文档总结了Java初级工程师面试题,涵盖了数据库优化、JS弹出式消息提示、JSP和Servlet的区别、Java语言基础知识等多方面的知识点。 数据库优化 1. 硬件调整性能:扩大虚拟内存、...
java中级程序员面试题 java程序员面试题 java工程师面试题
面试必备,学习java所必需的掌握,java工程师面试题之三大框架
本压缩包包含了一系列由IT资深专家单兴华整理的最新各大公司企业的真实Java面试题,旨在帮助求职者提升自己的技术水平和面试准备。 首先,我们来看"java练习题2.doc",这可能是针对基础语法和编程技巧的练习,涵盖...
java程序员面试题150例 java常见面试题 java工程师面试题 java面试题大全 带搜索功能,能非常方便的查找到你想要了解的 java面试题目 推荐大家下载。
java高级软件工程师面试题.pdf
【标题】:“国能日新公司的java开发面试题JAVA研发工程师题”通常涵盖了Java编程语言的核心概念、高级特性以及在实际开发中的应用。这可能是针对Java研发工程师职位的一系列技术面试问题,旨在评估候选人的技能水平...
------------------------------------- java程序员早期面试题汇总 BAT经典面试题汇总.pdf ...java面试题-外企软件工程师面试题大全.rar 程序员面试题精选100题.pdf ... -------------------------------------
包含各公司的面试题及部分笔试题,希望能给各位Java求职者带来帮助!
【高级工程师面试题】Java高级工程师简历表格.docx【高级工程师面试题】Java高级工程师简历表格.docx【高级工程师面试题】Java高级工程师简历表格.docx【高级工程师面试题】Java高级工程师简历表格.docx【高级工程师...