zoukankan      html  css  js  c++  java
  • JAVA程序员面试笔试宝典1

    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数据类型
    索引的种类和优缺点
    IntelliJ IDEA 自动导入快捷键
    KTV点歌系统------LinkedList
    KTV 点歌系统------ArrayList
    超市购物程序
    awk 入门教程
    Git 分支开发规范
    私有镜像仓库Harbor设置https、http访问
    私有镜像仓库Harbor部署
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10821274.html
Copyright © 2011-2022 走看看