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以后表达式可以是字符串。
=============================================================================

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

第九天 面向对象-类,封装,对象,private,this【悟空教程】

25460
来自专栏坚毅的PHP

【python学习】文本处理之-translate

2011-09-15 看cookbook 看到很神奇的string.translate 函数 可以剔除字符串中你不需要的串,并可做 maketrans映射 ...

37640
来自专栏Java学习网

开发中最常见的Java字符串问题总结

开发中最常见的Java字符串问题总结  1.怎样比较字符串?用”==”还是用equals()?   简单地说,”==”测试两个字符串的引用是否相同,equals...

250100
来自专栏逸鹏说道

我为NET狂面试题-基础篇-答案

面向过程: 答案:图片只贴核心代码,完整代码请打开解决项目查看 (答案不唯一,官方答案只供参考,若有错误欢迎提出~) 99乘法表 https://githu...

373130
来自专栏菩提树下的杨过

字符编码-使用c#研究

微软的那个臭屁的JOEL(就是写《JOEL说软件》的那个牛人)曾说:“每一位软件开发人员必须、绝对要至少具备UNICODE与字符集知识(没有任何例外)”,我也常...

20270
来自专栏数说工作室

统计师的Python日记【第1天:谁来给我讲讲Python?】

统计师的Python日记 【第一天】谁来给我讲讲Python? 我是一名数据分析师,曾在漫长的岁月中使用SAS、Matlab和R(使用频率依次递减)。其他如...

48670
来自专栏程序员的碎碎念

Unicode?utf-8?GB2312?

分享一点关于字符编码的来源的知识,是前段时间在廖雪峰老师的python教程里看到的,觉得很通俗易懂,现在复制了过来分享给各位没看过这个教程的朋友们。Unico...

46690
来自专栏java达人

Java 8 Stream 教程 (二)

作者:Benjamin 译者:java达人 来源:http://winterbe.com/posts/2014/07/31/java8-stream-tuto...

263100
来自专栏软件开发

数制系统

一、基础 1、计算机系统及数字设备使用2进制 2、世界上除了十进制,还存在多种其它进制如8,16,60,1024 3、人工智能之父:图灵 4、N进制,就有N个数...

24090
来自专栏大史住在大前端

野生前端的数据结构基础练习(1)——栈

9940

扫码关注云+社区

领取腾讯云代金券