zoukankan      html  css  js  c++  java
  • Java面试题(基础篇)

    1、JDK和JRE有什么区别?

    JDK:Java 的开发工具包,提供了 Java 的开发环境和运行环境

    JRE:Java 的运行环境,为 Java 的运行提供了所需环境

    具体来说:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 ,还包含了很多 Java 程序调试和分析的工具。

    简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK

    2、==和equals的区别?

    == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否为相同的一个对象;

    equals用来比较的是两个对象的内容是否相等。

    3、两个对象的hashCode()相同,则equals()也一定为true吗?

    不一定

    4、Final在Java中有什么作用?

     final关键字可以用于三个地方。用于修饰类、类属性和类方法。

     被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被重写

    5、String能被继承吗?为什么?

    不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的

    6、父类的静态方法能否被子类重写?

    不能,父类的静态方法能够被子类继承,但是不能被子类重写,即使子类中的静态方法与父类中的静态方法完全一样,也是两个完全不同的方法。

    7、Java中的方法覆盖和方法重载的区别?

    Java中的方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名、参数列表和返回类型。方法重载发生在同一个类里面,两个或者多个方法的方法名相同但是参数不同的情况。

    8、Java支持多继承吗?Java中什么支持多继承?

    不支持,只支持单继承,即一个类只有一个父类;Java中的接口支持多继承,即一个接口可以有多个父接口。

    9、接口和抽象类的区别是什么?

    (1) 抽象类可以有构造方法,接口中不能有构造方法

    (2)  抽象类中可以有普通成员变量,接口中没有普通成员变量

    (3)  抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法

    (4)  抽象类中的抽象方法的访问权限可以是 public、protected ,接口中的抽象方法只能是 public 类型的

    (5)  一个类可以实现多个接口但只能继承一个抽象类,接口不可以实现接口,但可以继承接口并且可以继承多个接口

    10、Java中的Math.round(-1.5)等于多少?

    Math.round(-1.5)=-1

    11、Int和Integer有什么区别?

    (1)Integer是int的包装类,int则是java的一种基本数据类型

    (2)Integer变量必须实例化后才能使用,而int变量不需要

    (3)Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而int则是直接存储数据值 

    (4)Integer的默认值是null,int的默认值是0

    12、什么是自动拆装箱?

    自动装箱: 就是将基本数据类型自动转换成对应的包装类

    自动拆箱:就是将包装类自动转换成对应的基本数据类型

    13、String属于基础的数据类型吗?

    String不是基本的数据类型,是final修饰的java类,是引用类型

    14、String和StringBuffer有什么区别?

    String:是对象不是原始类型,为不可变对象,一旦被创建,就不能修改它的值。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。String 是final类,即不能被继承。

    StringBuffer:是一个可变对象,当对它进行修改的时候不会像String那样重新建立对象,它只能通过构造函数来建立。

    15、普通类和抽象类有哪些区别?

    (1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法)

    (2)抽象类不能用来创建对象

    (3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

    16、抽象类必须有抽象方法吗?

    不一定,抽象类可以不包含抽象方法,但包含抽象方法的类一定是抽象类

    17、Java容器有哪些?

    数组,String,java.util下的集合容器

    18、什么是泛型?有什么优点?

    泛型:即通过参数化类型来实现在同一份代码上操作多种数据类型

    优点:使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。

    19、什么是迭代器?有什么优点?

    迭代器(iterator)是一种对象,它能够用来遍历容器中的部分或全部元素。

    优点:iterator是一个接口类型,它不关心集合或者数组的类型,而且它还能随时修改和删除集合的元素。

    20、List、Set、Map之间的区别?

    List中的元素,有序、可重复、可为空;

    Set中的元素,无序、不重复、只有一个空元素;

    Map中的元素,无序、键不重,值可重、可一个空键、多可空值;

    21、如何实现数组和List之间的转换?

    List转数组:List.toArray方法

    数组转List:Arrays.asList和Collections.addAll两种方法

    22、Array和ArrayList有什么区别?

    区别:(1)Array可以包含基本类型和对象类型,ArrayList只能包含对象类型

    (2)Array大小是固定的,ArrayList的大小是动态变化的

    (3)ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等

     23、ArrayList和LinkedList各有什么优缺点?

    ArrayList查询快,LinkedList增删快

    24、什么是Exception?分为几种?

    Exception是JAVA异常类;Exception分为两类:非运行时异常和运行时异常。

    25、异常和错误有什么区别?

    Exception 是程序正常运行中,可以预料的意外情况,可以被捕获,进行相应处理。

    Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常的、不可恢复状态。

  • 相关阅读:
    T-SQL over()函数在单个表中的聚合
    jQuery EasyUI DataGrid API 中文文档
    ASP.Net UpdatePanel控件(转)
    java多线程系类:基础篇:03Thread中的start()和run()的区别
    java多线程系类:基础篇:02常用的实现多线程的两种方式
    java多线程系类:基础篇:01基本概念:
    完全二叉树的概念
    007商城项目:商品列表查询-需求分析,以及Spinmvc的访问知识
    006商城项目:该项目的路径访问问题
    githup上传代码
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309493.html
Copyright © 2011-2022 走看看