程序员跳槽时机已到,闲聊中面试官无意泄题

前言

疫情控制期间空虚、寂寞、冷?马上迎来黄金三月,正值跳槽旺季,再不准备将面对一个残酷的现实,应届生都要比你们先找到工作。

近日和一位大厂面试官(同时也是知名博主)闲聊,得知不少某厂关于2020春招面试时的提问和答案。

上周,本来跟他聊公众号内容合作,聊着聊着便说到了金三银四的面试情况。他说刚面试了一个来应聘java高级开发的人,此人学历很高,也做了几年Java。问到myisam与innodb的区别都能对答如流,varchar与char的区别以及varchar(50)中的50代表的涵义也是答得出来。当问到InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别时,他却慌了阵脚、乱了思绪。

在我听来他也应该可以胜任,可在最后却没被录用,其实很多人都是只掌握了表面的一些知识,但是再深入一点就摸不着头脑了。

以上也仅仅只是个例,通过和他的聊天,我顺藤摸瓜梳理了一些核心面试知识,整理之后不难发现内容包括:java集合、java多线程并发、MySQL、Redis、MQ、ES等,这也映射了今年大厂春招时必问的技术要点。

学历自然是一块敲门砖,技术强大才是成功的基石。但很多的程序员都有一个误区,觉得自己做了几年技术,跳槽去更好的平台是顺理成章的事。结果面试出来,却不尽人意。

只要你看过我整理的这些核心知识点,相信你的面试绝不再心慌(愁眉苦脸)!!

MySQL:


1.数据库三范式是什么?
2.有哪些数据库优化方面的经验?
3.请简述常用的索引有哪些种类?
4.以及在mysql数据库中索引的工作机制是什么?
5.MySQL的基础操作命令:
6.mysql的复制原理以及流程。

7.mysql支持的复制类型?

  1. 基于语句的复制: 在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。 一旦发现没法精确复制时,会自动选着基于行的复制。
  2. 基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持
  3. 混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。

8.mysql中myisam与innodb的区别?

  1. 事务支持 > MyISAM:强调的是性能,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。 > InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
  2. InnoDB支持行级锁,而MyISAM支持表级锁. >> 用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。
  3. InnoDB支持MVCC, 而MyISAM不支持

Tomcat面试专题

设计模式面试专题

1.请列举出在JDK中几个常用的设计模式?
2.什么是设计模式?你是否在你的代码里面使用过任何设计模式?
3.Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式
4.在 Java 中,什么叫观察者设计模式(observer design pattern)?

5.使用工厂模式最主要的好处是什么?在哪里使用?
工厂模式的最大好处是增加了创建对象时的封装层次。如果你使用工厂来创建对象,之后你可以使用更高级和更高性能的实现来替换原始的产品实现或类,这不需要在调用层做任何修改。

6.举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
装饰模式增加强了单个对象的能力。Java IO 到处都使用了装饰模式,典型例子就是 Buffered 系列类如BufferedReader和BufferedWriter,它们增强了Reader和Writer对象,以实现提升性能的 Buffer 层次的读取和写入。

memcached面试专题

  1. memcached是怎么工作的?
  2. memcached最大的优势是什么?
  3. memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺

Redis面试专题

  1. redis和memcached什么区别?为什么高并发下有时单线程的redis比多线程的memcached效率要高?

  2. redis主从复制如何实现的?redis的集群模式如何实现?redis的key是如何寻址的?

  3. 使用redis如何设计分布式锁?说一下实现思路?使用zk可以吗?如何实现?这两种有什么区别?

  4. 在 Java 中,什么叫观察者设计模式(observer design pattern)?
    观察者模式是基于对象的状态变化和观察者的通讯,以便他们作出相应的操作。简单的例子就是一个天气系统,当天气变化时必须在展示给公众的视图中进行反映。这个视图对象是一个主体,而不同的视图是观察者。

  5. 使用工厂模式最主要的好处是什么?在哪里使用?
    工厂模式的最大好处是增加了创建对象时的封装层次。如果你使用工厂来创建对象,之后你可以使用更高级和更高性能的实现来替换原始的产品实现或类,这不需要在调用层做任何修改。

JVM

GC的两种判定方法:

引用计数法:指的是如果某个地方引用了这个对象就+1,如果失效了就-1,当为0就会回收但是JVM没有用这种方式,因为无法判定相互循环引用(A引用B,B引用A)的情况

引用链法: 通过一种GC ROOT的对象(方法区中静态变量引用的对象等-static变量)来判断,如果有一条链能够到达GC ROOT就说明,不能到达GC ROOT就说明可以回收

SafePoint是什么

  1. 比如GC的时候必须要等到Java线程都进入到safepoint的时候VMThread才能开始执行GC,

  2. 循环的末尾 (防止大循环的时候一直不进入safepoint,而其他线程在等待它进入safepoint)

  3. 方法返回前

  4. 调用方法的call之后

  5. 抛出异常的位置

Netty

1.BIO、NIO和AIO的区别?
2.NIO的组成?
3.Netty的特点?
4.Netty的线程模型?
5.TCP 粘包/拆包的原因及解决方法?
6.了解哪几种序列化协议?
7.如何选择序列化协议?
8.Netty的零拷贝实现?
9.Netty的高性能表现在哪些方面?
10.NIOEventLoopGroup源码?

结语

要介绍给大家的内容实在太多了,整整有上100G的面试、学习资料,但是呢篇幅有限,这里小编就不再给一一列举出来了。
java面试题详解
java视频及资料

发布了137 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/EnjoyEDU/article/details/104573397