京东面试几轮java_京东1、2 轮面试总结

这篇博客总结了京东Java面试的一到两轮中常见的技术问题,包括Java的数据类型、集合框架的区别、String相关类对比、Spring IOC原理、@Autowired与@Resource的差异、MyBatis动态SQL以及JVM的垃圾收集算法等关键知识点。通过对这些内容的了解,有助于提升Java开发者在面试中的表现。
摘要由CSDN通过智能技术生成

大家好,我是方圆

1. Java中什么是值传递什么是引用传递?

基本数据类型是值传递,对象作为参数传递是引用传递

2. Java中有什么数据类型?

基本数据类型:byte、short、int、long、char、boolean、float、double

引用数据类型:类、接口、String、数组,集合

3. ArrayList 和 LinkedList 有啥区别

ArrayList底层是数组,查询快增删慢,能扩容

LinkedList底层是链表,查找慢增删快,不需要进行扩容

4. 知道HashSet吗?

HashSet底层封装的是HashMap,它其中存储的值是不允许重复的

5. ArrayList 和 HashSet 有什么区别?

前者底层是数组,其中的元素是有序且能够重复的

后者底层是HashMap,其中的元素不能重复且无序

6. 什么时候用Set什么时候用List?

需要重复并且要通过索引能够访问的时候使用ArrayList

set的话,要求元素不重复的时候使用

7. String、StringBuffer、StringBuilder 的区别

String被final关键字修饰,它是不可以改变的

StringBuffer可以改变,它是线程安全的

StringBuilder也可以修改,它是线程不安全的

8. 什么时候用上面三者?

String类型一般用作key值使用,比如HashMap中的key,它自己是不可以改变的

StringBuffer和StringBuilder在字符串需要改变的时候用,但是如果要保证线程安全的话用StringBuffer,否则就使用StringBuilder

9. 说说Spring IOC?

控制翻转,就是新建bean实例的时候不再使用new关键字,而是通过容器对bean进行管理,使用依赖注入的方法来实现

10. @Autowired 和 @Resource有什么区别?

@Resource默认是通过byName进行装配的,也支持byType装配,它也可以指定注入的bean的名称

@Autowired默认是byType装配,如果需要通过byName装配的话,可以再加上@Qualifier注解,指定bean的名字

11. 如果代码中写了@Autowired但是实际上不想让他装载,应该怎么办?

不注册bean,然后将@Autowired其中required属性改为false

12. Spring 单例有什么好处和坏处?

好处:保证只存在一个实例,节省内存,而且方便垃圾回收

坏处:在多线程下使用可能会不安全

13. Mybatis 中 # 和 $ 有啥区别?

#{}是占位符,能够进行预编译处理,能够防止sql注入的问题

${}是字符串连接符,不能防止sql注入问题,可能会导致sql语句逻辑改变

14. 什么是 Spring AOP?

面向切面编程,能够实现程序的横向扩展,降低耦合,提高可维护性

1. JVM的垃圾收集算法

复制算法,标记清除算法,标记整理算法

2. 红黑树产生的背景和应用

因为平衡二叉树查找比较高效,但是删除的话效率比较低,红黑出的出现弥补了它的这种缺点,它能实现高效的添加和删除,应用的话,在JDK1.8的时候,在HashMap中引入了红黑树

3. 查看端口是否被占用用什么命令?怎么查看端口的 TCP 连接呢?

lsof -i:端口号

netstat -tunlp 查看tcp和udp先关的进程

本文地址:https://blog.csdn.net/qq_46225886/article/details/107472849

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值