你知道为什么考你这个?——Java面试题及答案汇总分析(2)

3.数据类型之间的转换
 
如何将数值型字符转换为数字(IntegerDouble
 
如何将数字转换为字符
 
如何取小数点前两位,并四舍五入。
参考答案:

将数值型字符串转换为Integer

       String s = "123";

    Integer i = Integer.valueOf(s);

将数值字符串转换为Double

       String s = "123.45";

    Double d = Double.valueOf(s);

将数字转换为字符(以float为例):

       float f = 123.00f;

    String s = String.valueOf(f);

取小数点前两位,并四舍五入:

       float f = 34.232323f;  

    BigDecimal b = new BigDecimal(f);  

    float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();

分析:

此题目通过考察字符串、数字之间的转换和小数四舍五入的Java API,来考察应试者平时编码情况。

字符串数字间转换平时工作中,应该是使用比较多的,所以此题对于真正有编码经验的人来说应该不难,但是,小数的四舍五入,恐怕平时编码中就会比较少碰到了,所以,API记不住也很正常。

对于应试者来说,如果四舍五入这个题目的API真的没记住,甚至说没留意过,也没关系,自己写个方法就是了。应试时要讲究应试技巧,API其实不是用来背的,而是用来查的。能写出标准答案的不一定就能出彩,但是如果能写出高效的函数,或许反而会给面试官留下深刻印象。

 

4.日期和时间
 
如何取得年月日,小时分秒
 
如何取得从1970年到现在的毫秒数
 
如何获取某个日期是当月的最后一天
 
如何格式化日期
参考答案:

Calendar cal = Calendar.getInstance();

int year = cal.get(Calendar.YEAR);                   //获取年

int month = cal.get(Calendar.MONTH) + 1;             //获取月

int day = cal.get(Calendar.DAY_OF_MONTH);            //获取日

int hour = cal.get(Calendar.HOUR_OF_DAY);            //获取小时

int minute = cal.get(Calendar.MINUTE);               //获取分钟

int second = cal.get(Calendar.SECOND);               //获取秒

long time = cal.getTimeInMillis();                   //获取1970年至今毫秒数

cal.set(Calendar.DAY_OF_MONTH,

cal.getActualMaximum(Calendar.DAY_OF_MONTH)); //设置日期为当前月的最后一天

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");

String date = sdf.format(new Date());                //格式化时间

分析:

本题同上一题目一样,试图通过对时间处理常见几个API的考察,来检验应试者的代码功底。

可能很多应试者遇到此类题目跟读者有一样的感觉,明明写过无数次的代码,用笔却怎么写怎么觉得别扭。各种IDE用惯了,到笔试的时候却感到那么的无力。

其实,笔试时遇到这种情况,大可不必过于担心,不管是初学者还是多年工作的同志,如果你没有特意去背过题目,能做到完全正确的我相信寥寥无几。更何况,真正工作的时候,那么多的API难道你能都靠记忆去背不成?所以,这种状态下,大可把自己能记住的都写上,然后重点写一下自己写不上的那些,平时工作遇到会如何解决。

本篇一小节:

笔者在面试做笔试时,最讨厌的两类的题目就是概念题和这种考API记忆的编程题,个人感觉,这两类题目,简直是出的有点太那个啥了。为什么这么说?

概念题,出题者无非是想考查应试者对某一方面的熟悉程度。曾经一次面试,考到一题目,问什么是apache,当时一看我就有点懵了,虽然apache http server用的不少,各种开源包也用的不少,可是我当时就是写不出答案——写的太少,怕让人家觉得自己是太不熟悉,想把自己了解的都写上,给的答题纸又不够用。一个字:难呀!至于面试官,真能通过这些题目的作答看出一个人对这方面的熟悉程度吗?我看也未必,一个背过题目的怎么着也比一个经验丰富而又没去背题的人答的好。

而对于这种API记忆的编程题,说实话,能考察出点什么呢?真能考察出一个人代码功底吗?我相信就如上面两个题目,一个有多年工作经验的人真不见得会比没工作过的人答的好。

想想此两类题目,出题者能不能给台电脑,让现场操作一把,不管是装个什么,还是写点什么,最后的测试的结果都要比你做笔试题来的真切!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值