Java面试题之九
四十六、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
对于这个题,只要弄清楚Math提供的三个与取整相关的方法就OK了。
1.ceil,英文含义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11。
2.floor,英文含义是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12。
3.round,表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11。
四十七、Java 有没有goto?
java中的保留字,现在没有在java中使用。与此类似的还有个叫const。
四十八、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
接口可以继承接口,用来拓展接口。抽象类也可以实现接口。抽象类也可以继承实体类,只要该实体类有明确的构造方法。其实,任何抽象类最终都是Object的子类。
四十九、abstract 的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不行。理由:
1.static修饰的方法是不能被重写的,而abstract修饰的方法是没有给出实现的,必须要求子类去实现。很明显,它们是矛盾的。
2.native修饰的方法是要移交给本地操作系统,由其他语言来实现,而abstract 是交给子类实现,两者矛盾。
3.synchronized表示同步,是对具体操作进行同步,而abstract 修饰的方法没有给出具体操作的实现,所以两者矛盾。但是在子类重写后可以添加同步。
五十、数组有没有length()这个方法? String 有没有length()这个方法?
数组是没有length()这个方法的,但有length这个属性。String有length()这个方法。
五十一、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
根据API描述:If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. 翻译成中文意思是:如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
所以,对于Object类来说:如果equals比较结果相等,必然有相同的hash code。
但是这是针对Object类,Object类的equals就是根据==来比较的,即比较是否为同一个对象。
这是符合hashCode的常规协定的:
Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. 翻译成中文:在 Java 应用程序执行期间,在对同一对象多次调用 hashCode方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
至于如果子类重写了equals和hashCode,是否依然有equals相等则hashCode相等的结论,这是没法确定的。我测试过自定义类,该结论是否成立要依赖于equals和hashCode的具体实现。另外,我测试过String类,该结论依然是成立的。
五十二、垃圾回收的优点和原理。并考虑2 种回收机制。
关于垃圾回收前面已介绍过很多。
回收机制有:分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
五十三、描述一下JVM加载class文件的原理机制?
(1)Java中的所有类,必须被装载到JVM中才能运行,这个装载工作是由JVM中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中。
(2)java中的类大致分为三种:
1.系统类 2.扩展类 3.由程序员自定义的类
(3)类装载方式:
1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到JVM中,
2.显式装载, 通过class.forname()等方法,显式加载需要的类 。
(4)java类装载器:
1. Bootstrap Loader - 负责加载系统类
2. ExtClassLoader - 负责加载扩展类
3.AppClassLoader - 负责加载应用类
(5)步骤:装载、链接和初始化,其中链接又可以分成校验、准备、解析
装载:查找和导入类或接口的二进制数据;
链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;
校验:检查导入类或接口的二进制数据的正确性;
准备:给类的静态变量分配并初始化存储空间;
解析:将符号引用转成直接引用;
初始化:激活类的静态变量,初始化Java代码和静态Java代码块
五十四、char型变量中能不能存贮一个中文汉字?为什么?
能够定义成为一个中文的,因为java中以unicode编码,一个char 占2个字节,16位,所以放一个中文是没问题的。
五十五、同步和异步有和异同,在什么情况下分别使用他们?举例说明。
我觉得描述它们的区别是针对多线程而言的。
如果只有一个主线程就只能是同步,上一段代码没有完成,下一段必须等到上一段代码完成后才可以执行。如买票排队。
对于异步,比如说,你在主线程中new Thread,开启一个子线程,就属于异步操作。上一段代码没有完成,下一段不必等到上一段代码完成就可以执行。如手机发送短信。
对于方法或块加了synchronized叫做同步块和同步方法,是为了保证数据的安全性。当一个块或方法的内容没执行完毕,其他线程是不能访问的。但同步也意味着效率低。
Java面试题之九的更多相关文章
- 金九银十,史上最强 Java 面试题整理。
以下会重新整理所有 Java 系列面试题答案.及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新. Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spri ...
- 大公司的Java面试题集
找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...
- Java笔试题解答和部分面试题
面试类 银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...
- 来自投资银行的20个Java面试题
问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你在一个线程里初始化了一个 ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- java面试题—精选30道Java笔试题解答(二)
摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...
- JAVA面试题二
JAVA 综合面试题 2007-08-12 目录 Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,priva ...
- 【面试必备】常见Java面试题大综合
一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...
- Java面试题阶段汇总
初级面试题 Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java面试题-基础篇四 Java面试题-基础篇五 Java面试题-javaweb篇六 Java面试题 ...
随机推荐
- codecomb 2086【滑板鞋】
题目背景 我的滑板鞋时尚时尚最时尚 回家的路上我情不自禁 摩擦 摩擦 在这光滑的地上摩擦 月光下我看到自己的身影有时很远有时很近 感到一种力量驱使我的脚步 有了滑板鞋天黑都不怕 题目描述 你在魅力之都 ...
- UESTC_韩爷的情书 2015 UESTC Training for Graph Theory<Problem H>
H - 韩爷的情书 Time Limit: 6000/2000MS (Java/Others) Memory Limit: 262144/262144KB (Java/Others) Subm ...
- netstat和telnet命令在Windows7中的用法(转载)
在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...
- windows套接字相关函数
windows套接字相关函数 作者:vpoet mail:vpoet_sir@163.com 我们学习TCP/IP协议无非是利用这些协议进行通信开发,然而如果让我们自己来直接根据协议规则和协议格式来进 ...
- Zookeeper 1、Zookeeper 定义与工作原理
1.什么是Zookeeper » Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务 » 它包含一个简单的原语集,分布式应用程序可以基于它实现同步 ...
- kettle工具二次开发-代码启动JOB
kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...
- <ListView>分列显示
<ListView> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Width="{B ...
- EntityFramework1
1.ORM都是Select * ,即使不需要某些字段,也要查询出来,效率是否很低. 可以使用视图来解决,比如对于列表页,可以定义一个视图,只查询列表中需要使用的字段,然后将列表映射为实体 2.ORM中 ...
- ORACLE OCP认证
基本情况介绍 Oracle产品非常多,这里说的是Oracle数据库认证体系. Oracle数据库认证体系包括3层,分别是OCA(助理),OCP(专家),OCM(大师) 一般情况下,需一级一级认证,也就 ...
- 重写TextView,实现圆形背景,文本居中显示
最近,在做考试试题排版,产品提出题号希望显示成圆形背景,序号文本居中显示. (有点问题:文本没有绝对居中,暂时没做处理.) 为此,我采取的方式是重写TextView的onDraw方法,绘制一个圆形背景 ...