Java面试题(精选)

关于基础:

1:内存泄漏是什么?什么时候会出现内存泄漏?

2:单例模式和多线程有关系吗?

3:容器中有几个接口,hashtable的父接口是谁?

4:画一下jvm内存结构图,程序计数器的作用(记录线程执行的位置),怎么记录线程执行的位置(当cpu在轮流执行线程的时候,返回原先的线程需要记录)

5:hashmap的并发访问为何阻塞?

6:switch支不支持string

7:linux常用命令

8:多线程,并发

9:进程通信方式,信号量实现,分布式的进程通信,socket。缓存,或者zk实现

10:介绍bean的生命周期

11:map的分类和常见的情况

12:jvm相关

13:介绍一下GC和收集策略

14:minor gc如果运行的很频繁,可能是什么原因引起的,minor gc如果运行的很慢,可能是什么原因引起的

15:cookie是怎么回事?

16:Java怎么实现服务器主线程等待一个线程200ms,等待另一个线程300ms,然后把结果返回客户端?不阻塞怎么做?

17:线程池丢弃策略有哪些

18:消息队列

19:redis,BlockingQueue,RabbitMQ

20:LAMP(Linux,Apache,Mysql,Php),LNMP(Linux,Nginx,Mysql,Php)

21:Java内存模型(jmm,jvm)

22:堆内存:堆内存和划分理由,各种内存的分配流程,各类回收算法

23:jdk1.7和1.8的区别(部分容器改进,如:hashmap,concurrenthashmap,stream,lambda),stream怎么实现的(底层用的类似fork,join)?

24:springboot了解吗?着重说下默认配置和springcloud的基础

25:springcloud说下,画画图,主要说eruka,ribbon,hystrix,fegin,config,bus,zuul

26:后台开发高并发的理解:提高服务器配置,分布,服务管理,负载均衡,一致性处理,缓存,数据库分库分表,高可用,页面静态化,消息队列和秒杀场景。

27:forward和redirect(session数据丢失,session共享)

28:为什么很多类要定义成抽象类

29:currenthashmap1.7和1.8的实现有什么不同

30:get()和size()是否要加锁,为什么?

31:泛型在编译期和运行期的作用

32:线程池是怎么创建的,需要几个参数,分别是什么含义

33:CAS syncronized实现有什么区别

34:violate关键字

35:jvm GC的优缺点,GC回收的算法

36:有没有用过jvm相关工具

37:策略模式(23种设计模式)

38:jvm内存模型

39:java中创建线程的方法?

40:造成死锁的条件

41:hashmap和hashtable的区别

42:Java中基本数据类型

43:cookie和session的区别

44:get和post的区别

45:switch-case语句中能用的基本数据类型(switch表达式后面的数据类型只能是byte,short,char,int四种整形类型,枚举类型和java.lang.String类型(从java 7才允许),不能是boolean类型。

46:进程的通信(共享内存),线程怎么共享资源

47:反射机制

48:hashmap,java8的一个核心优化就是hashmap

49:list和set的区别

50:hashmap和hashtable的区别,hashtable为什么是线程安全的

(synchronized锁住了)

51:有没有既线程安全效率又高的map?(ConcurrentHashMap)

52:BlockQueue见过没(线程池的排队策略)?

53:说几个springmvc的注解,都是干啥的?

54:缓存是干啥的?

数据结构及算法:

1:快排的思想

2:介绍下快排和归并各自的思路,优缺点

3:知道Java里面的sort是那种实现吗?(Cpp里面是快排,Java里面是归并,Java里面基础数据类型是快排,对象是归并)

4:写个归并排序

5:快排和堆排

6:在一个给定数组中找到最大两个数

7:海量数据top k算法

关于项目:

1:项目中用到了那些技术,最大的难点是什么?怎么解决的?怎么学习新技术?

2:打开支付宝客户端点击付款到成功经历了那些过程?

3:项目架构

关于框架:

1:说一下IOC和AOP

2:spring AOP原理,用了什么设计模式

3:spring架构是怎么演进的

4:知道springboot之前是怎么做的吗?

5:redis和mysql数据库的区别

关于网络:

1:TCP有几层结构,有哪些应用场景?

2:项目中怎么优化网络传输?

3:tcp协议,拥塞,流量控制

4:https握手过程

5:证书内容

6:Http和Https有什么区别

7:http有哪些方法,提交账号和密码怎么做?

8:http1.0和http2.0的区别

9:说下https的请求过程

10:各种状态码及其含义

11:tcp三次握手,四次挥手

12:长连接和短链接

关于数据库:

1:innoDB底层数据结构

2:nosql和关系型数据库比较

3:Mysql如何优化

4:创建一个表,新增列到表里

5:介绍一下数据库索引,介绍下数据库索引失效的情况

6:联合索引

7:数据库乐观锁和悲观锁(乐观锁:mvcc,悲观锁:行锁表锁),mvvc的实现?

8:MySQL锁有哪些,画出锁与锁之间的关系

9:MySQL的事务隔离级别

10:左连接和外连接

11:MySQL锁存在哪里

12:数据库建索引有哪些考虑

13:数据库索引结构

14:数据库对sql语句的解析过程

其他:

1:最近在看什么书

2:自我介绍,项目介绍

3:看过啥书?


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搜集整理制作成chm格式文件,灰常给力 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 9、Collection 和 Collections的区别。   Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap和Hashtable的区别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值