没有合适的资源?快使用搜索试试~ 我知道了~
2023某厂面试题.doc
需积分: 0 0 下载量 101 浏览量
2023-06-06
12:59:30
上传
评论
收藏 112KB DOC 举报
温馨提示
试读
25页
2023某厂面试题.doc
资源推荐
资源详情
资源评论
腾讯的 Java 面试题
TCP 和 UDP 的区别,TCP 为什么是三次握手,不是两次。
答:1、因为 tcp 是全双工协议,区别在于前者可靠,后者不可靠,以及效率更高。
Dubbo 面试题
dubbo 和 dubbox 之间的区别?
答:Dubbox 和 Dubbo 本质上没有区别,名字的含义扩展了 Dubbo 而已,以下扩展出来
的功能
支持 REST 风格远程调用(HTTP + JSON/XML);
支持基于 Kryo 和 FST 的 Java 高效序列化实现;
支持基于 Jackson 的 JSON 序列化;
支持基于嵌入式 Tomcat 的 HTTP remoting 体系;
升级 Spring 至 3.x;
升级 ZooKeeper 客户端;
支持完全基于 Java 代码的 Dubbo 配置;
Java List 面试题
ArrayList 和 LinkedList 的区别?分别用在什么场景?
答:①ArrayList 和 LinkedList 可想从名字分析,它们一个是 Array(动态数组)的数据结构,
一个是 Link(链表)的数据结构,此外,它们两个都是对 List 接口的实现。
前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列
②当随机访问 List 时(get 和 set 操作),ArrayList 比 LinkedList 的效率更高,因为
LinkedList 是线性的数据存储方式,所以需要移动指针从前往后依次查找。
③当对数据进行增加和删除的操作时(add 和 remove 操作),LinkedList 比 ArrayList 的效
率更高,因为 ArrayList 是数组,所以在其中进行增删操作时,会对操作点之后所有数据的
下标索引造成影响,需要进行数据的移动。
④从利用效率来看,ArrayList 自由性较低,因为它需要手动的设置固定大小的容量,但是
它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而 LinkedList
自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。
⑤ArrayList 主要控件开销在于需要在 lList 列表预留一定空间;而 LinkList 主要控件开销在
于需要存储结点信息以及结点指针信息。
场景:
链表,插入删除快,查找修改慢。 适用于频繁增删的场景。
数组,查找快,插入删除慢。 适用于频繁查找和修改的场景。
Java Map 集合面试题
Collection 集合接口和 Map 接口有什么关系?
答:没有直接关系,但是一些子类会有依赖,Collection 是最基本的集合接口,声明了适用
于 JAVA 集合(只包括 Set 和 List)的通用方法。Map 接口并不是 Collection 接口的子接
口,但是它仍然被看作是 Collection 框架的一部分。
Spring 面试题
什么是 Spring 的内部 bean?
答:当一个 bean 只能被某一个类使用时,称该 bean 为内部 bean。
Zookeeper 面试题
zookeeper 是什么框架?
答:ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务
腾讯 Java 面试题:说说 Java 中异常的分类。
答:异常分类:
Throwable -> Error,Exception
Error:严重问题,例如内存溢出
Exception ->运行时异常: RuntimeException,编译时异常
AWTError
Dubbo 面试题:一般使用什么注册中心?还有别的选择吗?
答:Dubbo 一般用 zookeeper 做注册中心
还可以用:Redis,数据库,consul
Java List 面试题:怎么给 List 排序?
答:List 如何排序:
①:使用 Collections.sort 默认正序,可以传第二个参数自定义排序
②:自定义 bean 实现 Comparable 接口。
③: 实现 Comparator 接口自定义比较器
Java Map 集合面试题:你都知道哪些常用的 Map 集合?
答:HashMap、HashTable、TreeMap、LinkedHashMap
Spring 面试题:为什么说 Spring 是一个容器?
答:Spring 的核心理念就是更方便地管理 Java Bean,而被管理的 Java Bean
存缓存在一个 Map 中,这个 Map 就可以理解为用来装 Java Bean 的容器,即 IOC
容器
JVM 面试题:说说 Java 虚拟机的生命周期及体系结构。
答: https://maozj.iteye.com/blog/697376
1、Java 是如何实现跨平台的?
注意:跨平台的是 Java 程序,而不是 JVM。JVM 是用 C/C++ 开发的,
是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM
答:我们编写的 Java 源码,编译后会生成一种 .class 文件,称为字节码文件。Java 虚拟
机(JVM)就是负责将字节码文件翻译成特定平台下的机器码然后运行,也就是说,只要在
不同平台上安装对应的 JVM,就可以运行字节码文件,运行我们编写的 Java 程序。
而这个过程,我们编写的 Java 程序没有做任何改变,仅仅是通过 JVM 这一 “中间层” ,
就能在不同平台上运行,真正实现了 “一次编译,到处运行” 的目的。
2、什么是 JVM ?
解析:不仅仅是基本概念,还有 JVM 的作用。
答:JVM,即 Java Virtual Machine,Java 虚拟机。它通过模拟一个计算机来达到一个计算机
所具有的的计算功能。JVM 能够跨计算机体系结构来执行 Java 字节码,主要是由于 JVM
屏蔽了与各个计算机平台相关的软件或者硬件之间的差异,使得与平台相关的耦合统一由
JVM 提供者来实现。
3、JVM 由哪些部分组成?
解析:这是对 JVM 体系结构的考察
答:JVM 的结构基本上由 4 部分组成:
类加载器,在 JVM 启动时或者类运行时将需要的 class 加载到 JVM 中
执行引擎,执行引擎的任务是负责执行 class 文件中包含的字节码指令,相当于实际机器上
的 CPU
内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机
器上的各种功能的寄存器或者 PC 指针的记录器等
本地方法调用,调用 C 或 C++ 实现的本地方法的代码返回结果
4、类加载器是有了解吗?
解析:底层原理的考察,其中涉及到类加载器的概念,功能以及一些底层的实现。
答:顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java
虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后
就被转换成 Java 字节代码(.class 文件)。
类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。每个这样的实
例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象。
实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过
网络下载的。
5、面试官:Java 虚拟机是如何判定两个 Java 类是相同的?
答:Java 虚拟机不仅要看类的全名是否相同,还要看加载此类的类加载器是否一样。只有
两者都相同的情况,才认为两个类是相同的。即便是同样的字节代码,被不同的类加载器加
载之后所得到的类,也是不同的。比如一个 Java 类 com.example.Sample,编译之后生
成了字节代码文件 Sample.class。两个不同的类加载器 ClassLoaderA 和 ClassLoaderB
分别读取了这个 Sample.class 文件,并定义出两个 java.lang.Class 类的实例来表示这个
剩余24页未读,继续阅读
资源评论
icwx_7550592
- 粉丝: 17
- 资源: 7163
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功