java基础和面向对象面试题_01
java基础和面向对象面试题_01
============================================================================= 逻辑思考题: 1:矿泉水1元钱1瓶,每2个空瓶换一瓶矿泉水,现有20元钱,请问可以买多少瓶矿泉水? 20 (虽然感觉有道理,但是肯定不是这个) 39 程序员 40 销售 – 管理岗位 逻辑思维能力是没有问题的: 39=20+10+5+2+1+1和1个空瓶子 如何能达到40呢? (请问可以买多少瓶矿泉水?应改为:你可以喝到多少瓶矿区水?40瓶才能成立) 借一个。 如何借?考验交流沟通能力。 1个空瓶子先给商店,再向别人借一个,喝完水,再把瓶子还给别人。 ----------------------------------------------------------------------------- 2:下面这个表达式,你移动一个数字或者符号就可以把这个表达式变成正确的。请试试: 62-63=1 把6移动到2的次方位置。2的6次方是64。 2的10次幂以内的值要非常的敏感。 ----------------------------------------------------------------------------- 3: 一栋房子需要一个工匠七天建成,这个工匠的工钱是一份金条,假如现在你需要盖一栋房子, 而你只有一根完整的金条,怎么能把金条分三份的情况下每天都付给工匠工资,最后一天刚好付完? 1/7,2/7,4/7 ============================================================================= 面试题: 1:谈谈final、finally、finalize的区别 final:最终的意思,可以修饰类,方法和变量。 它修饰的类,不能被继承 它修饰的方法,不能被重写 它修饰的变量,不能被改变 finally:是异常处理的一部分,用于释放资源的。它控制的代码永远会执行。 特殊情况:在执行到finally之前,JVM退出了。 finalize:是Object类的一个方法,用于垃圾回收。 ----------------------------------------------------------------------------- 2: &和&&的区别 A:作为逻辑运算符,&&具有短路效果。 B:&还可以做为位运算符。 ----------------------------------------------------------------------------- 3: Math.round(11.5)等於多少? Math.round(-11.5)等於多少? Math类的成员方法: public static int round(float a) 四舍五入(参数为double的自学) 要深刻理解四舍五入的具体含义: 满足五入的条件后,得到的值要比原来的值大; 满足四舍的条件后,得到的值要比原来的值小; 不管是正数还是负数。 12 -11 ----------------------------------------------------------------------------- 4: short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 前者有错,s1会自动提升为int类型,结果赋值给short类型,所以报错。 后者无错,+=这种赋值运算符隐含了强制类型转换。其实变量s1的值未被使用。 示例代码如下: public class Test { public static void main(String[] args) { System.out.println(Math.round(11.5)); // 12 System.out.println(Math.round(-11.5)); // -11 // short s1 = 1; // s1 = s1 + 1; // Type mismatch: cannot convert from int to short 类型不匹配:不能从int转换为short short s1 = 1; // The value of the local variable s1 is not used 局部变量s1的值未被使用 出现了警告 s1 += 1; } } ----------------------------------------------------------------------------- 5:数组有没有length()这个方法? String有没有length()这个方法? 没有。特别注意:因为数组求长度是:数组名.length,而不是:数组名.length() 有。 ----------------------------------------------------------------------------- 6: Overload和Override的区别。Overload的方法是否可以改变返回值的类型? Overload:重载 Override:重写 重载: 同一个类中,方法名相同,参数列表不同。与返回值类型无关。 重写: 存在于子父类,或者子父接口中,方法声明相同。 Overload的方法可以改变返回值的类型,因为它与返回值类型无关。 ----------------------------------------------------------------------------- 7:给我写出JDK提供的5个常用类名、5个常用接口名、5个常用包名。 5个常用类名 String StringBuilder Integer 集合类(ArrayList,LinkedList,HashSet,HashMap) IO流(FileReader,FileWriter,FileInputStream,FileOutputStream) (BufferedXxx系列) -------------------------------------- 5个常用接口名 Collection List Set Map Iterator Comparable Comparator 跟数据库相关的接口:Connection,Statement,PreparedStatement,CallableStatement,ResultSet -------------------------------------- 5个常用包名 java.lang java.util java.io java.net java.sql java.math java.awt ----------------------------------------------------------------------------- 8:构造方法是否可被override? 不可以。 ----------------------------------------------------------------------------- 9: try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会
前
----------------------------------------------------------------------------- 10: 编程题: 用最有效率的方法算出2乘以8等於几? 2<<3 左移 ----------------------------------------------------------------------------- 11: 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性吗? 引用传递对象,可以。 ----------------------------------------------------------------------------- 12: switch是否能作用在byte上,是否能作用在long上,是否能作用在String上? 可以 不可以 JDK7以后可以 可以是byte,short,int,char。 JDK5以后表达式可以是枚举。 JDK7以后表达式可以是字符串。 =============================================================================
我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:是值传递。Java编程语言只有值传递参数。 当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。 1.Java中没有指针,所以也没有引用传递了,仅仅有值传递。不过,可以通过对象的方式来实现引用传递。类似java没有多继承,但可以用多次implements接口实现多继承的功能。 2.在Java应用程序中永远不会传递对象,而只传递对象的引用。因此是按引用传递对象。但重要的是要区分参数是如何传递的。 3.Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java应用程序是按值传递对象引用的。 4.Java应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的,没有一种按引用传递。 按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。 按引用...
- 下一篇
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的好用,今天我们为了博客的保质保量,也就不分开写,我们直接拿比较火的Gson和Fast-json来使用,末尾在进行一些分析 一.各有千秋 两大解析库的东家都是巨头,一个来自于Google官方,一个来自阿里巴巴,我们这里对他做一个简单的介绍(大多数来源于网络) Gson Google提供的用来java对象和JSON数据之间进行映射的JAVA类库,可以将一个JSON字符转成一个java对象,或者反过来 来看看他的优点 快速,高效 代码量少 面向对象 数据传输解析方便 Fast-json FastJson是一个性能很好的java语言实现的Json解析器和生成器,来自阿里巴巴的工程师,具有极快的性能,超越其他的java json parser,而阿里的工程师程,fastjson是闲着全球最快的解析库 优点 快速FAST(比任何一款都快) 面向对象 功能强大(支持普通JDK类任意java bean C...
相关文章
文章评论
共有0条评论来说两句吧...