Java开发面经-2020-8-13

2020.8.13 杭州罗莱迪照明系统公司 Java开发面经

一.技术面试

1.自我介绍

2.java学习的路线,顺序

3.前端框架,后端框架

4.List和Map区别以及底层实现

5.set,vector,list,map以及底层实现

6.线程安全用什么,不安全用什么

7.说下项目的功能和你负责的模块

8.设计数据库会考虑哪些方面,主键和外键有什么区别

9.数据库索引

10.有没有用到Mybatis分页插件

11.分页如何实现,逻辑

12.登录注册如何保证数据安全?如何保证数据库数据安全?

13.MVC请求过程

14.冒泡排序,快排如何实现

15.如何定义一个数组长度为n

16.servlet和controller区别

17.linux有哪些命令

18.说下服务器的部署过程

19.反问

二.hr面试

1.说下优缺点

2.平时爱好,干什么

3.学校经历

4.职业规划

### Java开发面试常见问题总结 #### 一、Java基础概念 在Java开发中,理解基本的概念是非常重要的。例如,在对象比较方,对于复合数据类型的变量(如类),它们默认情况下通过`==`操作符比较的是内存中的地址值[^2]。如果需要更深层次的逻辑判断两个对象是否相等,则可以重写`equals()`方法来实现自定义的比较逻辑。 #### 二、字符串处理 关于字符串的操作也是常考的知识点之一。具体来说,`String`, `StringBuilder` 和 `StringBuffer` 是三个常用的类用于表示字符序列。其中: - **String** 是不可变的对象,意味着一旦创建就不能修改其内容。 - **StringBuilder** 提供了可变的字符序列支持,并且是非线程安全的。 - **StringBuffer** 同样提供可变的字符序列支持,但它具有线程安全性,因此性能相对较低一些。 #### 三、类加载机制 另一个重要的话题就是Java虚拟机如何加载类文件到内存当中。当应用程序请求加载某个特定类时,JVM会遵循一种称为双亲委派模型的原则来进行类加载过程。简单描述如下:假设当前ClassLoader接收到一个名为`java.lang.String` 的类加载请求,它首先把这个任务交给自己的父级 ClassLoader 处理;只有当所有的上级都无法完成该任务之后,才由自己负责实际加载工作[^3]。 #### 四、垃圾回收(GC) 最后提到的一个核心主题便是Garbage Collection (简称 GC),即自动管理程序运行期间产生的废弃对象所占用的空间资源的过程。虽然具体的算法可能因不同的 JVM 实现而异,但总体目标都是为了尽可能高效地释放不再使用的内存区域以便重新分配给新的实例使用。 ```python # Python 示例代码展示简单的列表排序功能作为对比说明不同语言特性差异 def bubble_sort(lst): n = len(lst) for i in range(n - 1): flag = False for j in range(0, n - i - 1): if lst[j] > lst[j + 1]: temp = lst[j] lst[j] = lst[j + 1] lst[j + 1] = temp flag = True if not flag: break ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值