常见的面试问题

Posted hglibin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的面试问题相关的知识,希望对你有一定的参考价值。

  • 垃圾回收机制,共享变量,线程栈,cas

  • 集合类底层(arraylist扩容问题,hashmap,concurrenthashmap)

  • mysql引擎,b+树

  • tcp三次握手四次挥手,https建立连接过程

  • cookie和session,浏览器cookie禁用后能否用session,不同域名间是否可以访问彼此的session

  • 对象不可达,判断不可达算法,java内存模型

  • mysql事务隔离级别

  • effectivejava里面泛型数组是否可以混用

  • string、stringBuffer、stringBuilder区别

  • 垃圾回收算法

  • 二叉树中序遍历过程

  • redis之所以高速的架构以及原理

  • spring有什么项目

  • 平时用过开源框架吗

  • spring ioc aop原理

  • arraylist和linkedlist区别

  • arraylist初始化大小

  • arraylist扩容,hashmap扩容怎么实现

  • effective java读后感(答得不好)

  • concurrenthashmap为什么线程安全,底层做了什么

  • 公钥密码体制

  • 最常用linux命令

  • vim进去的时候是什么状态

  • socket编程

  • java nio

  • 线程有多少种状态

  • 前后端所有的技术栈,了解的都说一遍,之后从你说的技术里面一个个问(说了好久,又被掏空)

  • 用户输入网址跳转,前端到后端,再从后端数据库返回的整个过程

  • redis可以存储什么数据,高速的架构如何实现,除了缓存还可以做什么

  • mysql变种,有什么开源数据库

  • mysql优化,引擎,有多少种索引

  • 用过开源框架吗,有没有了解后端开发框架

  • 网络安全措施有什么,sql注入如何防止

  • 数据库高速链接措施是什么?用过什么数据库连接池

  • java基本数据类型

  • 如何看待过度使用设计模式

  • ArrayList底层是如何实现的

  • 集合类有了解吗,说一说map这个类,有几种实现,包括了HashMap,TreeMap,HashTable等等,HashMap底层如何实现

  • 说一说了解的排序算法,然后问了各种算法的时间复杂度,包括最坏情况以及平均情况,快排

  • 二叉树,讲一讲有哪些性质,二叉平衡树(AVL),红黑树的性质,以及红黑树高度最高是多少,可以用性质中的哪一条来证明

  • 算法问题,一个整数数组里面,只有一个数字只出现过一次,其他的数字都是出现两次,如何最快的找到这个数字是什么,不用找到index

  • 多对多表怎么设计

  • 有没有用过缓存

  • 说说常用的集合类

  • HashMap内部是怎么实现的

  • ArrayList和LinkedList的区别

  • 手撕代码:一个递增序列,求和为S的数(我直接就是暴力O(n2),最后改到O(n))

  • 多线程有哪些实现方法

  • 线程同步有哪些方法

  • synchronized内部是怎么实现的

  • 介绍一下Lock锁

  • spring事务管理

  • 数据结构,如何用链表实现一个栈

  • hashmap性能不高的原因可能是什么

  • 线程的实现方式,为什么不能直接调用run方法

  • 线程池了解么,线程池处理任务的方式

  • 数据库了解么,数据库如何实现对数据分页,数据库触发器,数据库索引,什么时候索引会失效

  • jvm了解么,线程私有和共享的内存分布

  • 怎么实现线程安全.synchronized关键字的用法,在方法上用与在同步代码块上用有什么区别

  • LOCK实现原理

  • 你还看过哪些源码,都看过那些书

  • spring源码看过吗

  • 百米赛跑中,你超过了第二名,你是第几名?我说第二名,你超过了倒数第一名,你是倒数第几名?(当时第一门回答完第二问回答的特别肯定,当然是倒数第二名啊,然后他就一直看着我笑,我还不知道他在笑什么,回来之后才发现智商被碾压了,怎么会有超过倒数第一名这一说法,感觉自己被套路进去了)

  • Struts拦截器

  • Session和Cookie的区别

  • 分布式环境下Session一致性的处理(不会)

  • Struts2的原理(不记得了)

  • Hibernate原理

  • mvc设计模式

  • servlet原理

  • 算法题:判断单链表是否有环,时间复杂度(像这种算法题,要自己说出时间复杂度)

  • 事务特性:ACID,原子性,一致性,隔离性,持久性。分别介绍一下原子性和持久性

  • 网络:tcp和udp的区别

  • 连接是个什么概念?(其实我答的是tcp三次握手建立连接的过程)

  • 流量控制是怎么做的

  • 序列化及方式(序列化接口有俩方法,没注意过)

  • 内部类

  • 同步:阻塞同步 非阻塞同步

  • notify、notifyAll()区别

  • wait与sleep的区别

  • 设计题:设计一张表 应该需要考虑挺多问题,没考虑那么多

  • 行列转换

  • 平时怎么进阶学习呢?我提到了源码,然后就问了个线程池源码的实现

  • redis数据类型+redis是单线程的么,为什么呢

  • 线程池的类型,详细介绍cached和fixed

  • corePoolSize参数的意义

  • 线程池新任务到达时会先使用空闲线程还是加入阻塞队列

  • CountdownLatch怎么使用

  • volatile和synchronized区别

  • 介绍一下DCL问题,介绍一下单例的其他方法,比较优劣

  • Spring中@Component,@Service,@Repository,@Controller注解的区别(就是将分别的默认作用域),怎么自己设置作用域(@Scope)

  • Spring的两大特性,自由发挥

  • Mybaits中需不需要自己设计id,id的策略都有哪些

  • Mybaits中#和$区别

  • JVM

  • 类的加载机制

  • 进程和线程

  • 索引的优点缺点

  • final的用法

  • 抽象类和接口的区别

  • 类加载过程

  • gc机制

  • 手写tcp的socket编程

  • 异常,运行异常和编译异常的区别,本质原因是什么

  • 快排最坏和平均复杂度

  • 中文编码问题

  • char型变量能存储中文?

  • 重载和重写

  • 一个大文件,怎么查找关键字,方法(也可以对文件做调整)

  • 怎么把数据库的某列拿出来放在本地文件

  • 整型数组的最大字串

  • 二叉树的高度

  • 两个无序链表,合并成一个有序链表

以上是关于常见的面试问题的主要内容,如果未能解决你的问题,请参考以下文章

面试常见问题及回答

linux运维面试常见问题

应届生面试问题及答案

数据结构面试常见问题

ES 常见面试问题

Java开发面试常见问题合集