3年经验,面试Java开发岗25K都拿不到了吗?这么坑?

事实上,就我这些年的面试经验而言,有很多年工作经验但是和技术能力匹配不上的人是存在的。如果在简历上看到应聘者最近几年的时间使用的技术、开发的项目几乎和头几年差不多,那么也就可以猜测这些年他的技术成长空间是有点狭窄了。还有个现实的原因就是工作中过于依赖CV大法,导致代码基础不扎实。很多简单工作的实现依赖百度,动手能力没有变得更强。

而不论是微服务、大数据还是云服务,**核心本质都在基础范围内,做技术最重要的是对基础原理的研究。**大家都要能从面试中找到学会如何找到自己的问题学习解决问题,然后就是深入底层、打牢基础。

在忙碌的工作中,可能会有人疏忽于自己的技术成长,也缺乏在架构设计、系统性能调优、开源项目等方面有丰富经验的人的技术指导。

经验及面试题分享


今年行情不好是众所周知,招一个人估计得面18个,感觉都绝望了,可能也是自己抗压能力比较弱,因为遇到的都比较坑,还好当时没有一冲动裸辞,生活还在继续,找工作还在继续,如果你和我一样奔波于各个面试中,祝愿你能找到一个满意的工作。

常见问题

这部分分享一下我在面试准备过程中,以及面试时遇到的常考基础题,大家可以针对题目复习一下。所有的面试题及答案我都已经整理成 PDF,需要可以文末免费领取

1.Java 基础

=========

1.1 Hashmap 与 concurrentHashMap (重点)

1.2 集合相关问题

1.3 Java 泛型的理解

1.4 跳表(ConcurrentSkipListMap)的查询过程是怎么样的,查询和插入的时间复杂度?

1.5 java 字节流 字符流

1.8 包装类型和基本类型比较问题

1.9 为什么重写 equals 和 hashcode1.10 stringBuilder 和 stringBuffer 的区别

1.11 Java 序列化的原理

1.11 Java8、9、10、11 的一些新特性介绍

1.12 java 中四种修饰符的限制范围。

1.13 Object 类中的方法。

1.14 浅拷贝 深拷贝

1.15 接口和抽象类的区别,注意 JDK8 的接口可以有实现。

1.16 动态代理的两种方式,以及区别。

1.16 传值和传引用的区别,Java 是怎么样的,有没有传值引用。

1.17 一个 ArrayList 在循环过程中删除,会不会出问题,为什么。

1.18 Exception 和 Error 区别

1.19 new 关键字和 newinstance()方法

1.20 Map、List、Set 分别说下你知道的线程安全类和线程不安全的类

1.21 Java 防止 SQL 注入

1.22 反射原理及使用场景

1.23 static Vs Final ? 如何让类不能被继承

1.24 内存泄露?内存溢出?

1.25 重写 Vs 重载

1.26 Lambda 表达式实现

1.27 ClassNotFoundException 和 NoClassDefFoundError 的区别

2. 并发、多线程

==========

2.1 volatile 关键字 原理

2.2 对 java 中锁的理解

2.3 悲观锁 乐观锁

2.4 对 CAS 的理解,java 中的 CAS,如何不用 unsafe 实现 CAS2.5 java 线程创建方式线程 run 和 start 的区别?两次 start 同一个线程会怎么样?

2.6 Java 线程池的原理?线程池有哪些?线程池参数是什么?

2.7 ThreadLocal 及其应用场景

2.8 对线程安全的理解

2.9 get 需要加锁么,为什么?

2.10 Lock 的底层原理。synchronized、Lock、ReentrantLock、ReadWriteLock。

2.11 AtomicInteger 怎么实现原子修改的?

2.11 分布式环境下,怎么保证线程安全。

2.12 产生死锁的四个必要条件?

2.13 如何中断线程

2.14 线程的状态都有哪些。

2.15 wait、notify、notifyAll、await、signal、sleep、yield

2.16 Callable 和 Future 的了解。

2.17 synchronized 关键字的用法,优缺点。

2.18 可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁

2.19 ABC 三个线程如何保证顺序执行。

2.20 双线程交替打印奇偶 (阿里)

3. JVM

=======

3.1 常见 GC 算法、 CMS 收集器、G1

3.2 jvm 内存模型 && Java 内存模型

3.3 怎么判断对象可被回收?GC 可达性分析中哪些算是 GC ROOT?

3.4 eden survivor 区的比例,为什么是这个比例,eden survivor 的工作过程。

3.4 fullgc 是否可以回收方法区

3.5 什么对象会进老年代? 为什么新生代使用复制算法?

3.6 被 GC 判断为"垃圾"的对象一定会回收吗

3.7 强制 young gc 会有什么问题?

3.8 类加载的过程 Java 为什么要设计双亲委派模型?

3.9 什么时候会触发 minor gc,什么时候会触发 full gc?

3.10 G1 和 ZGC 的区别

3.12 你知道强引用、弱引用和软引用吗? GC 对他们执行怎样的操作。

3.13 JVM 方法栈的工作过程,方法栈和本地方法栈有什么区别。

3.14 JVM 的栈中引用如何和堆中的对象产生关联。

3.15 逃逸分析技术。

3.16 Java 是否可以 GC 直接内存。

3.17 常用的 JVM 调优参数。

3.6 具体的性能调优步骤吗?fullgc 的时候会导致接口的响应速度特别慢,该如何排查和解决。

3.18 dump 文件的分析。

3.19 Java 有没有主动触发 GC 的方式

3.20 假如现在在同一台机器上开两个 java 项目,有几个 java 虚拟机?

3.21 javac 编译期工作流程

4. Spring

==========

4.1 spring IOC 过程

4.2 循环依赖怎么解决的

4.3 spring AOP,动态代理是怎么实现的

4.4 spring BeanDefinition 作用

4.5 spring @Autowired (@Resource, 类似)实现原理

4.6 bean 的生命周期 4.7 Bean 的默认作用范围是什么?其他的作用范围?

4.8 Spring 的单例是怎么实现的?

4.11 SpringMVC 不同用户登录的信息怎么保证线程安全的?

4.12 Spring 用了哪些设计模式。

4.13 Spring 注入 bean 的方式。

4.14 什么是 IOC,什么是依赖注入。

4.15 Spring 具有什么特点(IOC 和 AOP)

4.16 几种 scope 区别,aop 实现有哪几种实现,

4.17 spring 的事务及实现模式

4.19 对 Spring、SpringMVC、springBoot 理解

4.20 @transactional 注解在什么情况下会失效,为什么。4.21 SpringMVC 的 Controller 是如何将参数和前端传来的数据一一对应的。

4.23 Spring 如何维护它拥有的 bean。

4.24 自定义注解的实现。

4.25 如何自己设计 IOC 框架

4.26 Quartz 是如何完成定时任务的。

4.18 servlet 的生命周期,怎么判断是 get 请求还是 post 请求,后台实现 session 共享的方法。Java web 过滤器的生命周期?过滤器和拦截器的区别。

4.19 BeanFactory 和 FactoryBean 的区别

4.20 Spring 中配置 id 或 name 相同的 Bean 可能引发的问题及解决方案

4.21 防止 Web 表单重复提交的方法

5. 消息中间件

=========

5.1 kafka 有哪些组件,kafka controller 选举过程,kafka leader 重选举过程

5.2 kafka 最早是为了解决什么问题设计的

5.3 为什么 kafka 用 zookeeper 来存储 metadata,而不是用 db 来存储

5.4 kafka 只有一次生产 只有一次消费怎么做

5.5 kafka 的消费模式?kafka 怎么做有序消费?kafka 重消费解决?消息丢失怎么解决?

5.6 Kafka 的 Replicas 的作用?

6. 算法

======

6.1 B+树 6.2 hash 和 B+树的区别?分别应用于什么场景?哪个比较好?

6.3 红黑树了解么,时间复杂度? 五个特性

6.4 堆排序的时间复杂度

6.5 快速排序,堆排序,插入排序

6.6 一致性 Hash 算法,一致性 Hash 算法的应用

今天小编把 Java 的 10 万字总结分享给各位,只希望各位都走进大厂,大家一起加油!!!

限于篇幅,我没有给出答案,感兴趣的可以下方扫码免费领取!!!

目录大纲

=====

基础篇

===

多线程 &并发篇

========

Spring 篇

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总目录展示

该笔记共八个节点(由浅入深),分为三大模块。

高性能。 秒杀涉及大量的并发读和并发写,因此支持高并发访问这点非常关键。该笔记将从设计数据的动静分离方案、热点的发现与隔离、请求的削峰与分层过滤、服务端的极致优化这4个方面重点介绍。

一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。

高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。


篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),麻烦各位转发一下(可以帮助更多的人看到哟!)

由于内容太多,这里只截取部分的内容。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
重点介绍。

一致性。 秒杀中商品减库存的实现方式同样关键。可想而知,有限数量的商品在同一时刻被很多倍的请求同时来减库存,减库存又分为“拍下减库存”“付款减库存”以及预扣等几种,在大并发更新的过程中都要保证数据的准确性,其难度可想而知。因此,将用一个节点来专门讲解如何设计秒杀减库存方案。

高可用。 虽然介绍了很多极致的优化思路,但现实中总难免出现一些我们考虑不到的情况,所以要保证系统的高可用和正确性,还要设计一个PlanB来兜底,以便在最坏情况发生时仍然能够从容应对。笔记的最后,将带你思考可以从哪些环节来设计兜底方案。


篇幅有限,无法一个模块一个模块详细的展示(这些要点都收集在了这份《高并发秒杀顶级教程》里),麻烦各位转发一下(可以帮助更多的人看到哟!)

[外链图片转存中…(img-A9CrCOKO-1713299426922)]

[外链图片转存中…(img-bj1wf5PP-1713299426922)]

由于内容太多,这里只截取部分的内容。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值