1.为什么Java中有些接口没有任何方法?

这些没有任何方法声明的接口又被称为标识接口,标识接口对于实现它的类没有任何语义上的要求,它仅仅充当一个标识的作用,用来表明它的类属于一个特定的类型。

2.java中的clone方法有什么作用?

Object类提供了一个clone()方法,这个方法的作用是返回一个对象的复制。返回的是一个新的对象,而不是一个引用。

使用clone()方法的步骤:

  • 实现clone的类首先需要继承Cloneable接口。Cloneable接口实质上是一个标识接口,没有任何接口方法。
  • 在类中重写Object类的clone()方法。
  • 在clone()方法中调用super.clone()方法。
  • 把浅复制的引用指向原型对象新的克隆体。

深复制:

3.什么是反射机制?

反射机制提供的主要功能有:得到一个对象所属的类;获取一个类中的所有成员变量和方法;在运行时创建对象;在运行时调用对象的方法。

获取Class类的方法:Class.forName("类的路径");类名.class;实例.getClass();

4.多态的实现机制是什么

Java语言中多态主要有两种表现方式:

  • 方法的重载。编译时就可以确定调用哪个方法,是一种编译时多态
  • 方法的覆盖。子类可以覆盖父类的方法,因此同样的方法会在父类与子类中有着不同的表现形式。同时,基类的引用变量可以指向子类的实例对象。而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体事例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。通过这种动态绑定实现了多态。由于只有在运行时才能确定调用哪个方法,因此称为运行时多态。

5.final的作用是什么?

用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不能被继承。

6.static关键字有什么作用?

  • static成员变量    可以达到全局的效果
  • static成员方法    是类的方法,不需要创建对象就可以调用。实现单例模实。

7.==、equals、hashcode有什么区别

==用来比较两个变量的值是否相等,对于引用型变量,比较是否指向同一个对象。equals是Object类提供的方法之一,默认是使用==比较两个对象。但其可以被覆盖,所以可以通过覆盖的方法让它不是比较引用而是比较数据内容。hashcode()方法也是Object类提供的方法之一,返回对象在内存中地址转换成的一个int值。

8.为什么说哦java是平台独立性语言

保证java具有平台独立性的机制为中间码和java虚拟机。java程序被编译后不是生成在硬件平台上可执行的代码,而是生成了一个“中间码”、不同的硬件平台上会安装有不同的JVM,有JVM来负责把中间码翻译成硬件平台能执行的代码。由此可以看出JVM不具有平台独立性,而是与硬件平台相关的。

9.什么是GC?

详见该篇博客

10.Java中的堆和栈有什么区别

栈内存主要用来存放基本数据类型的变量与引用变量。栈内存的管理是通过压栈和弹栈操作来完成的,以栈帧为基本单位来管理程序的调用关系,每当有函数调用时,都会通过压栈方式创建新的栈帧,每当函数调用结束后都会通过弹栈的方式释放栈帧。

堆内存主要用来存放运行时创建的对象

JAVA程序员面试笔试宝典1的更多相关文章

  1. 《Java程序员面试笔试宝典》终于在万众期待中出版啦~

    <Java程序员面试笔试宝典>终于在万众期待中出版啦~它是知名畅销书<程序员面试笔试宝典>的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理 ...

  2. 《Java程序员面试笔试宝典》之为什么需要public static void main(String[] args)这个方法

    public staticvoid main(String[] args)为Java程序的入口方法,JVM在运行程序的时候,会首先查找main方法.其中,public是权限修饰符,表明任何类或对象都可 ...

  3. 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的

    在Java语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象. Java程序的初始化一般遵循以下三个原则(以下三原则优 ...

  4. 《Java程序员面试笔试宝典》之Static关键字有哪些作用

    static关键字主要有两种作用:第一,只想为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关.第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的情况下就可以通过 ...

  5. 《Java程序员面试笔试宝典》之字符串创建与存储的机制是什么

    在Java语言中,字符串起着非常重要的作用,字符串的声明与初始化主要有如下两种情况: (1)       对于String s1=new String("abc")语句与Strin ...

  6. 《Java程序员面试笔试宝典》之Java与C/C++有什么异同

    Java与C++都是面向对象语言,都使用了面向对象思想(例如封装.继承.多态等),由于面向对象有许多非常好的特性(继承.组合等),使得二者都有很好的可重用性. 需要注意的是,二者并非完全一样,下面主要 ...

  7. 《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法

    由于Java不支持多重继承,即一个类只能有一个父类,为了克服单继承的缺点,Java语言引入了接口这一概念.接口是抽象方法定义的集合(接口中也可以定义一些常量值),是一种特殊的抽象类.接口中只包含方法的 ...

  8. 《Java程序员面试笔试宝典》之组合与继承有什么区别

    组合和继承是面向对象中两种代码复用的方式.组合是指在新类里面创建原有类的对象,重复利用已有类的功能.继承是面向对象的主要特性之一,它允许设计人员根据其它类的实现来定义一个类的实现.组合和继承都允许在新 ...

  9. 《Java程序员面试笔试宝典》之switch使用时有哪些注意事项

    switch语句用于多分支选择,在使用switch(expr)的时候,expr只能是一个枚举常量(内部也是由整型或字符类型实现)或一个整数表达式,其中整数表达式可以是基本类型int或其对应的包装类In ...

随机推荐

  1. Linux操作系统改动PATH的方法

    1. 暂时改动: 使用export.比如#export PATH=$PATH:/etc/apache/bin 2. 针对用户的改动: vi ~/.bash_profile 增加:export PATH ...

  2. 2016/1/6 输出菱形 while语句计算阶乘分数之和

    public class LingXing { public static void main(String[] args) { //打印菱形 for (int x=1;x<6;x++){ fo ...

  3. JTabbedPane的LookAndFeel--TabbedPaneUI

    在定制JTabbedPane的时候是需要使用到LookAndFeel的,而使用LookAndFeel定制的时候,其实主要是继承BasicTabbedPaneUI. to be continue...

  4. rabbitmq最大连接数(Socket Descriptors)

    RabbitMQ自带了显示能够接受的最大连接数,有2种比较直观的方式:1. rabbitmqctl命令. 1 2 3 4 5 6 7 8 9 10 11 12 <span style=" ...

  5. Dinic(模板 再错是不可能的 这辈子都不可能了)

    #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...

  6. IDEA 的使用(快捷键、括号对齐的方式)

    Java IDE 工具不是只有一个 Eclipse,还有同样十分优秀的 IDEA. 0. 常用快捷键 查看与设置:[File]⇒ [Settings]⇒ [Keymap] back/forward:c ...

  7. argis地图

  8. bzoj 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机【bfs】

    直接bfs即可,注意开double,还有驱动和终点的齿轮都在序列里,要把它们找出来= = #include<iostream> #include<cstdio> #includ ...

  9. bzoj1052覆盖问题(二分+贪心)

    1052: [HAOI2007]覆盖问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2446  Solved: 1131[Submit][Stat ...

  10. SVN安装失败提示

    svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: 1 ...