四十六、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面试题之九的更多相关文章

  1. 金九银十,史上最强 Java 面试题整理。

    以下会重新整理所有 Java 系列面试题答案.及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新. Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spri ...

  2. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  3. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

  4. 来自投资银行的20个Java面试题

    问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你在一个线程里初始化了一个 ...

  5. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  6. java面试题—精选30道Java笔试题解答(二)

    摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...

  7. JAVA面试题二

    JAVA 综合面试题 2007-08-12 目录 Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,priva ...

  8. 【面试必备】常见Java面试题大综合

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...

  9. Java面试题阶段汇总

    初级面试题   Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java面试题-基础篇四 Java面试题-基础篇五 Java面试题-javaweb篇六 Java面试题 ...

随机推荐

  1. python局域网alive ip侦听

    python局域网alive ip侦听 作者:vpoet mails:vpoet_sir@163.com 注:写着玩,欢迎copy # -*- coding: cp936 -*- # coding = ...

  2. Clone使用方法详解【转载】

    博客引用地址:Clone使用方法详解 Clone使用方法详解   java“指针”       Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文 ...

  3. struct2-json

    一.JSON是什么? :JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解 析和生成.它基于JavaScript(Stan ...

  4. 逐渐深入地理解Ajax

    Ajax的基本原理是:XMLHttpRequest对象(简称XHR对象),XHR为向服务器发送请求和解析服务器响应提供了流畅的接口.能够以异步方式从服务器获得更多信息.意味着用户不必刷新页面也能取得新 ...

  5. 高效CSS書寫規範及CSS兼容性

    一.選擇器針對性說明 某一元素的多个规则集中,选择器的针对性越高,该规则集的权重也就越高.针对性相同的,后出现的规则集的权重更高. * {} /* a=0 b=0 c=0 d=0 -> spec ...

  6. NGUI研究之制作转圈的技能CD特效

     昨天想做一个技能CD转圈的特效,花了大把的时间去用meshRender组件想通过三角形依据数学算法来绘制一个圆形的网格.通过动态绘制圆形网格的方法来实现技能CD特效.奶奶的昨天我研究了一晚上,最 ...

  7. lua 类实现

    Class={}; Class.classList={}; --保存所有已经定义过的类 --类的类型: 类和接口, 接口也是一种类 Class.TYPE_CLASS="Class" ...

  8. [KMP求最小循环节][HDU1358][Period]

    题意 求所有循环次数大于1的前缀 的最大循环次数和前缀位置 解法 直接用KMP求最小循环节 当满足i%(i-next[i])&&next[i]!=0 前缀循环次数大于1 最小循环节是i ...

  9. Web App 图片上传编辑器

    使用cropper.jqueryUpload插件.Jquery.src-dataurl-canvas-blob文件. @{ ViewBag.Title = "更新头像"; Layo ...

  10. android 5.0新特性CardView教程

    CardView 是android5.0新加入的特性,大家先别着急,由于谷歌出了cardview的兼容包,也就是android.support.v7.widget.CardView包,所以在5.0以下 ...