最后
15.说一下软引⽤和弱引⽤的区别?
16.成员变量和静态⽅法可以被重写么?重写的规则是怎样的?
17.内部类访问局部变量的时候,为什么变量必须加上fifinal修饰符?
- 因为⽣命周期不同。
18.什么情况会造成内存泄漏?
19.什么是线程死锁,如何解决?
20.十亿条淘宝购买记录,怎么获取出现最多的前十个 ?
-
这是一道典型的有限内存的海量数据处理的题目。一般这类题目的解答无非是以下几种:
-
分治,hash映射,堆排序,双层桶划分,Bloom Filter,bitmap,数据库索引,mapreduce等。
-
具体情形都有很多不同的方案。这类题目可以到网上搜索一下,了解下套路,后面就基本都会了。
21.说一下Innodb和MySIAM的区别
22.说一下jvm内存模型,介绍一下你了解的垃圾收集器
- 其实并没有jvm内存模型的概念。应该是Java内存模型或者jvm内存结构,这里面试者一定要听清楚问的是哪个,再回答。
23.如何访问链表中间节点
-
对于这个问题,我们首先能够想到的就是先遍历一遍整个的链表,然后计算出链表的长度,进而遍历第二遍找出中间位置的数据。这种方式非常简单。
-
若题目要求只能遍历一次链表,那又当如何解决问题?
-
可以采取建立两个指针,一个指针一次遍历两个节点,另一个节点一次遍历一个节点,当快指针遍历到空节点时,慢指针指向的位置为链表的中间位置,这种解决问题的方法称为快慢指针方法。
23.HR问
-
从技术角度来说,你觉得你跟前同事比怎么样?
-
说一下自己的个人优势。
-
工作中觉得哪方面欠缺?
-
为什么想来阿里?阿里的什么方面吸引了你?
面试题点击传送门 即可获取!!
面试总结及建议
=======
每一次Java面试,其实都是一次学习机会,是对自己技术知识栈的梳理、考核、复盘。我们应该抱着学习的态度,认真对待,找到自己比较薄弱的环节,尽快去查漏补缺学习巩固。对于面试来说,其实也没有太多的技巧可言,面试官主要看重的就是个人能力,无非就是两个方面:
-
技术广度
-
技术深度
外包CRUD屌丝,是怎样逆袭的?
================
外包出身的我,究竟有多么菜,多么屌丝呢?还在外包的我,面试时被问到什么是成员变量,我是什么都不知道,相信这种程度大家应该有所感受了。
那作为一个外包CRUD屌丝,我是怎么做到逆袭的呢?
注意:下文主要是我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,有需要的可以私信我「成长」免费分享给你。
01 梳理知识体系,学会查漏补缺
================
关于知识体系的梳理,我个人主要分为以下5个部分,有针对性的,将这5个部分逐步击破,那么搞定面试是基本没什么问题了。
-
并发编程:多线程,高并发,CAS,锁,容器,线程池底层
-
性能调优:Mysql,IO及网络调优,算法调优,JVM
-
Spring全家桶:Spring,SpringMVC,MyBatis,IOC,AOP
-
缓存数据库:Redis,mongoDB,MySQL
-
分布式&微服务:SpringBoot,SpringCloud,docker,maven
02 根据要点,逐个击破(根据大纲内容来进行复习)
=========================
1.并发编程(核心技术笔记)
-
Java多线程技能
-
对象及变量的并发访问
-
线程间通信
-
Lock的使用
-
定时器Timer
-
单例模式与多线程
-
拾遇增补
2.性能调优(Java性能调优+MySQL调优+JVM调优)
3.Spring全家桶(Spring全家桶学习脑图+SpringBoot使用笔记+源码深度解析)
- Spring学习思维脑图(Xmind)
- Spring使用笔记+实战文档
4.缓存数据库(MySQL+Redis+mongoDB)
03 最后看面试题来举一反三(刷题刷题刷题,重要事情说三遍)
==============================
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
最后
ActiveMQ消息中间件面试专题
- 什么是ActiveMQ?
- ActiveMQ服务器宕机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢怎么办?
- 消息的不均匀消费怎么办?
- 死信队列怎么办?
- ActiveMQ中的消息重发时间间隔和重发次数吗?
ActiveMQ消息中间件面试专题解析拓展:
redis面试专题及答案
- 支持一致性哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
[外链图片转存中…(img-enrry7vR-1715720716388)]