JAVA的学习(三)-----Java学习中的面试题型

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/q303705455/article/details/97404636

关于学习java的过程中遇到的问题

  • 子类是否能继承父类的构造函数,如何能够调用父类的构造函数
    答:java继承中对构造函数是不继承的,只是调用(隐式或显式)
    1.子类在调用时会默认调用父类的无参构造方法
    2.子类调用父类的有参构造函数:由子类有参构造传入值,再用super将值调用父类
    此处缺个例子(先留着)

  • 如何在调用不返回值的函数时改变实际值
    (在void函数里给参数赋值使得原函数里参数值改变)
    答:如果想要通过无返回值修改传入参数的值,可以将传入的参数由值传递改为引用(地址)传递。(参考引用数据类型例如数组,字符串,对象等)

  • 继承多态(先留着)

  • 面试题
    请使用两种方式求单个字符‘刘’的Unicode码
    答:1. system.out.print((‘刘’+1-1));(运算时,低向高转型)
    2. system.out.print((int)‘刘’);(强制转型)

  • 面试题
    final finally finalize 三者区别相同用法
    答:1.final是修饰符,它修饰的属性(变量)为常量,修饰的方法不能被重写,修饰的类不能被继承
    2.finally代码块中放置的都是无论发生异常与否都会被执行的代码,
    一般将一定要执行的重要代码放在其中。
    3.finalize是方法,在回收机制回收前的操作都放在其中,
    一般存放要被释放的资源

  • 面试题
    在函数中,如果finally之前,遇到了return关键字,代码如何执行?会直接返回还是执行完finally中的代码再返回
    答:执行完再返回
    1.finally代码块中放置的都是无论发生异常与否都会被执行的代码,
    2.当try,catch中有return时,finally仍会执行,
    流程为:先执行return,但不返回,将返回的值存起,等finally代码执行完再返回(但返回值在此过程中不会变)
    3.finally的语句块中如果有return就直接返回了

  • 拓展
    为什么在比较对象的时候,需要重写hashcode和equals方法
    答:1.底层的equals函数(默认Object类)是比较二者的内存地址,而我们比较对象的时候一般是比较其值是否相同,所以一般要重写
    2.假如只重写equals而不重写hashcode,那么hashcode方法就是Object默认的hashcode方法,由于默认的hashcode方法是根据对象的内存地址经哈希算法得来的,所以两个相同的对象的hashcode不一定相等。

  • 异常与错误的区别
    1.在 Java 中,所有的异常都有一个共同的祖先 Throwable。
    Throwable 有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。
    2.Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。
    Exception 类有一个子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。
    3.Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,

  • 面试题
    请简述StringBuilder和StringBuffer的区别
    答:1.二者都是字符串缓冲类,都可以xxxxxx
    2.StringBuilder操作效率高,但非线程安全,(jdk1.5)
    StringBuffer操作效率低但是线程安全(jdk1.0)
    3.推荐使用StringBuilder,当多线程时使用StringBuffer

  • 面试题
    关于字符串的存储问题
    答:1.字符串存储在运行时常量池中
    2.在jdk1.8之前, 方法区,是存储常量的地方
    在jdk1.8及其之后,字符串是存储在堆中

  • 为什么要引入字符串缓冲区
    答:由于字符串是常量,所以在运算的过程中可能会产生很多不需要的垃圾,所以要引入字符串缓冲区。字符串缓冲区对象更像是一个存放字符串的容器,不会产生大量不必要的垃圾。

猜你喜欢

转载自blog.csdn.net/q303705455/article/details/97404636