Java经典面试题整理及答案详解(七)

简介: Java经典面试题第七弹来啦!本节小编整理了一些理论基础相关的面试题,当面试官提问时,这些可一定得回答上~

了解更多:
Java经典面试题整理及答案详解(一)
Java经典面试题整理及答案详解(二)
Java经典面试题整理及答案详解(三)
Java经典面试题整理及答案详解(四)
Java经典面试题整理及答案详解(五)
Java经典面试题整理及答案详解(六)

Java经典面试题第七弹来啦!本节小编整理了一些理论基础相关的面试题,当面试官提问时,这些可一定得回答上~

1.缓存流与内存流的区别

内存流的本质就是将所有的数据在内存之中进行完整的处理操作。核心的概念在于内存流可以进行整体的数据处理。
从实现的角度来讲,两者是可以部分互通的,从实用角度来讲,缓存流更多的是一个暂时的操作,缓存操作流更多的情况下是有一个间隔的,这个间隔往往不会保存过多的内容。
在缓存流的操作概念里面重点只有一个核心因素:处理中文(BufferedReader),这种操作本身只适合于字符串的操作,本身没有验证处理,所以会使用Scanner完成。

2.基本类型与包装类型选择

基本类型与包装类型最大的区别有亮点:
(1)包装类是以对象的形式运行,而且JDK1.5之后对于包装类又提供自动的装箱与拆箱处理机制;
(2)包装类可以进行null的描述。(这个描述的操作要追溯到Hibernate盛行的时期,因为对于一些设置的字段,如果使用了基本类型,不设置内容就是对应数据类型默认值,如果说现在年龄使用了int,则不设置年龄表示0,而如果使用了包装类年龄表示的就是null。)
对于现在的开发,基本都是在数据层上的保存对象内容类(VO类)使用包装类,这样对null的控制比较方便。

3.基本数据类型与引用传递

在Java里面数据类型一共分为两种:基本、引用,对于引用可以发生引用传递,而基本类型只是一个值拷贝,引用类型传入到某一个方法之中,修改之后会影响原始对象中的内容,而基本数据类型不会。
不过从后续的开发开始,为了方便用户的使用专门提供有一个包装类的概念,利用包装类可以方便的实现基本数据类型与引用数据类型的操作,最为重要的是包装类里面提供有一个null的概念,这对于一些开发框架,例如:MyBatis、Hibernate等都有非常重要的意义。

4.集合信息取得

如果说现在有一个List集合,想要取得里面某一个索引的数据,这种情况下一定要考虑使用get()方法(要清楚ArrayList、LinkedList区别所在),可以轻松地进行元素的定位,get()方法是其主要扩充的方法,也是List和Set最大区别所在。例如:FileUpload、MyBatis里面获得的数据都是通过List中的get()方法取得。
而对于集合的输出操作有两种做法:
(1)使用for循环,在集合里面存在有size()方法,而且List有get()方法,很明显可以使用循环。如果你使用的是LinkedList子类,那么会出现时间复杂度攀升的问题;如果使用的是ArrayList,由于其时间复杂度为1,所以可以快速查找;
(2)对于集合而言,为了避免这些时间复杂度过高问题,有了迭代的输出接口,使用Iterator。

5.接口标准

所谓的标准指的是所有类都要奉行的法则,因为普通类的继承关系里面是不存在有这样的硬性的子类定义法则(强制性覆写),所以才会衍生出抽象类与接口的概念,对于接口本身而言,它只是一个方法视图。
就好比你使用一款空调遥控器,都一定可以找到开关键,如果不开空调无法制冷,而如果太冷一定要关,这些就是标准,如下图,遥控器的标准在设计里面就像是接口,没有关联的层要想捆绑在一起,就要使用接口。

image.png

6.链表为什么要用内部类?

内部类的特点:
(1)内部类可以方便的与外部类之间进行私有属性的访问;
(2)一个内部类如果使用了private声明,那么外部将无法直接使用它。
为什么不将链表的实现变为如下形式:

image.png

之所以没有将Link与Node分开,而直接使用了一个内部类的形式完成,目的是:
(1) Node类如果没有Link类负责整体的协调操作,那么Node类上的方法根本没有任何用处;
(2) 方便引用传递。
如果你想知道为什么要合并为一个类,那就将内部类拿到外部类来,会发现在进行数据删除的时候,需要进行外部类与内部类之间非常繁琐的引用传递。

更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
3天前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
13 0
|
3天前
|
安全 Java 程序员
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
【Java多线程】面试常考——锁策略、synchronized的锁升级优化过程以及CAS(Compare and swap)
6 0
|
6天前
|
Java
三个可能的Java面试题
Java垃圾回收机制自动管理内存,回收无引用对象的内存,确保内存有效利用。多态性允许父类引用操作不同子类对象,如Animal引用可调用Dog的方法。异常处理机制通过try-catch块捕获和处理程序异常,例如尝试执行可能导致ArithmeticException的代码,catch块则负责处理异常。
28 9
|
16天前
|
Java
【JAVA面试题】static的作用是什么?详细介绍
【JAVA面试题】static的作用是什么?详细介绍
|
16天前
|
Java
【JAVA面试题】final关键字的作用有哪些
【JAVA面试题】final关键字的作用有哪些
|
16天前
|
JavaScript 前端开发 Java
【JAVA面试题】什么是引用传递?什么是值传递?
【JAVA面试题】什么是引用传递?什么是值传递?
|
16天前
|
安全 Java
【JAVA面试题】什么是对象锁?什么是类锁?
【JAVA面试题】什么是对象锁?什么是类锁?
|
16天前
|
存储 自然语言处理 Java
【JAVA面试题】什么是代码单元?什么是码点?
【JAVA面试题】什么是代码单元?什么是码点?
|
9月前
|
自然语言处理 架构师 算法
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。
|
2月前
|
存储 算法 Java
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。 面试中总结了200道经典的Java面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~ 因为篇幅原因,大部分的内容就不给大家一一展示了,需要获取的小伙伴可以直接点击此处取到! Java平台相关 1、JDK、JRE、JVM 分别是什么关系? 2、为什么 Java 被称作是“平台无关的编程语言”? 3、Java 和 C++ 的区别? 4、什么是字节码?采用字节码的最大好处是什么? 5、Java运行的过程? 6、
99 4