1、线程怎么保持同步
使用synchronized关键字同步方法或代码
2、spring中bean的周期是怎样的
1:两个类如何产生关系
2:java把一个文件的内容复制到另外一个文件上
3、给了一个场景,在一个数组中怎么找出两个相加是是10的数(这题不能问,必须写代码)
4、dubbo但是对使用方式和分布式架构原理
http://blog.csdn.net/chao_19/article/details/51764150
5、抽象类和接口区别,多线程及其同步方式
前段时间我面试的时候总结的笔记:
抽象类:
- 抽象方法,只有行为的概念,没有具体的行为实现。 使用:abstract 关键字修饰,并且没有方法体。
- 包含抽象方法的类,就一定是抽象类。 使用: abstract 关键字修饰,包含抽象方法。 3) 抽象类不能直接创建实例。可以定义引用变量。
- 抽象类只能被继承,一个具体类继承一个抽象类,必须实 现所有抽象方法。
- 抽象方法和抽象类非常适合作为系统的分析和设计的工具。
接口:
1 接口:全部的方法都是抽象方法,全部的属性都是常量。 接口用来表示纯抽象概念,没有任何具体的方法和属性。
2 不能实例化,可以定义变量。
3 接口变量可以引用具体实现类的实例。
4 接口只能被实现(继承),一个具体类实现接口,必须使用全部的 抽象方法。
5 接口之间可以继承。
6 一个具体类可以实现多个接口,实现多继承现象,表示:
7 接口中的属性,默认是常量 public static final
8 接中的方法一定是:public abstract
9 实现一个接口,使用关键字implements, 实现实际上是 一种继承关系。接口和实现类是父子类型的关系
Round1:
1、ConcurrentHashMap内部原理?它是如何实现多线程的
2、线程池,线程池里面核心线程数和最大线程数有什么区别
这么比喻吧,核心线程数就像是工厂正式工,最大线程数,就是工厂临时工作量加大,请了一批临时工,临时工加正式工的和就是最大线程数,等这批任务结束后,临时工要辞退的,而正式工会留下。
3、spring和springBoot比较,springboot使用场景
4、springboot的部署如何区分开发环境和生产环境(application.properties)
(对于已上线的版本,如何将生产环境修改成为开发环境)
5、分布式(没用过的话不会细问)
分布式是指将不同的业务分布在不同的地方。(卖火车票的例子~~想想)
Round2:
1、int类型数组,取到两两相加结果等于某给定变量的所有组合方式
直接for循环,说出代码(时间复杂度)
HashMap/HashSet方式(假定数组里面的数值没有重复项)
排序方式
2、volatile关键字
3、序列化/反射
序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象
反射是:指程序可以访问、检测和修改它本身状态或行为的一种能力
4、多线程单例(创建一个多线程单例,说出大致代码)
5、针对数据查询量过大进行优化操作
天猫出海穿雪面试:
1、服务器线程还在,但是服务器无响应,你的解决思路?
2、系统设计,架构设计,JVM原理,classloader原理
3、aop的实现原理
4、sevlet实现原理
5、设计模式
6、继承和实现的理解
7、会问一堆事务,数据库对事务的支持让你设计
8、聊业务等
9、写一个方法模拟:一个账户向另一个账户转钱。
10、spring的ioc原理,如果让你自己写一个类似的原理,你怎么写
11、Hadoop,hdfs的高可用等原理
12、
直接用阿里的场景模拟问题,而不是技术的底层提问,考应用,而不是考技术深度(客户注重的还是思维模式和解决问题的思路)
第一问最近的项目设计思路及适用场景
第二问,项目采用soa设计架构所使用的技术
第三问,分布式服务架构框架dubbo的实现原理
第四问,dubbo中采用服务注册发布zookeeper实现原理
第五问,Spring实现原理
第六问,项目中采用消息队列的适用场景
第七问,多线程变成适用场景
第八问,项目中涉及大数据量的处理方式
第九问,大数据量情况下分表操作的设计方式
第十问,针对分表后的数据,如何适应业务需要,如统计,数据浏览等应对策略
智慧建筑面试问题:
1、 arraylist和linkedlist的区别。Linkedlist是双向的吗?
2、 hashmap的原理(先hashcode还是先equal)。
3、 线程的sleep()和wait()的区别(我是结合生产者和消费者问题回答的)。
4、 线程池的原理与使用场景。
5、 Hibernante和mybatis的区别,mybatis的主键回填。
6、 Dubbo的zk集群挂掉,dubbo还能使用吗(PS:dubbo有缓存)。 Zk(dubbo注册中心)
7、 Zk的节点数量为什么是奇数个(考察ZK原理)。
8、 消息中间件RabbitMQ,消息的丢失是怎么处理的,监听器没有收到消息,MQ会丢掉数据吗?MQ会不会将消息缓存到硬盘?
9、 算法,数组排序。
10、 Sql的left join和right join的区别。
11、 Mybatis的join标签好像是,记不太清楚了,考察mybatis标签。
12、Zk分布式锁实现原理。
13、currenthashmap和hashmap 的区别。
14、spring aop 原理。
15、你觉得你最值得骄傲的项目,什么架构。分布式事务方案,怎么解决分布式事务。
(主管偏向于解决实际问题和全局性的掌握~偏架构)
北京六翁面试题
- 说下jvm内存结构
- 说下Java中的锁
- Java垃圾回收机制
- 如果让你设计一个垃圾回收器你怎么设计
- ConcurrentHashMap原理
- TCP/CP模型,五层说下
- 对网络编程熟悉吗
- Netty保证高性能的原因是什么
- 投影仪两道题 1.lamda表达式 2.集合stream cp 的一道题 3.jdk8特性
- 多线程用过吗
- 客户端发请求到服务器流程
- Springboot和spring区别
- spring的依赖注入
- jdk1.8的strema函数式编程
- dubbo的原理结构
- 多线程
- 线程间通信
- Nio bio
- Netty的高性能原理
- 数据采集的架构设计
- 线程和进程的关系
- Java的8种数据类型,以及各自的字节数
- Redis的数据类型
- Redis的底层源码
- 操作系统的内存结构
- 一个进程种有多个线程,那么内存结构应该是怎样的
骆炅Java面试题
27. 1问的java中都有哪些自带的线程池
28. 2Java中jvm中的垃圾回收机制
29. 3Spring的优点
30. 4hashmap的底层实现和concurrenthashmap的优点
31. 5dubbo的原理和优点
- 分布式
-
dubbo+zookeeper+netty 常考 主要有分布式思想描述 还有dubbo实现的一些原理(比如jdk代理,反射,传输方式(netty NIO)),稍微深入一点可能考到原码级,当然还有zookeeper也很重要,比如里面的分布式锁是如何实现的,它起到的作用
- 可能会问一些linux命令 常见的 tail grep等等,再难一点就说不知道吧 或者百度一些常见的
- Hadoop一套可能问得特别少 如果是生产环境下没有开发过,几乎不问.
- 框架阶段
- Spring IOC、AOP的概念,原理 比如aop中jdk动态代理和cglib动态代理的区别,最好百度一下
- SpringMVC和struts2的区别,以及他们的原理执行流程都可以说说
- Mybatis 应该有些面试官也会问到,我没遇到,无非也是一些底层原理(反射加动态代理),还有一些常见标签,动态的,普通标签
- 可能问问mvc的思想
- Corejava
- 最喜欢问的就是 集合,线程,线程池
- 集合分为list /set /map
-
其中List 常见linkedList ArrayList vectory
-
Set 常见 hashset sortedSet
-
Map 常见hashmap hashtable
-
常考 list 下面几个的区别,或者List和set的区别 及底层数据结构实现,还有hashSet底层如何实现去重(大致:比较hashcode ,如果不同,则不同,如果相同,再比较equals方法)
-
还有就是hashmap的实现原理(经常考),底层采用数组加链表实现
-
比如put一个元 素,第一次取得他的hash值,作为数组下标 放入对应hash槽,如果槽里为空,直接放进去,不为空,放在槽下面的链表表头 (一个大概的情况,具体再去了解一下)
-
还有可能问高并发情况下使用的集合,有了解最好!
-
线程,
-
jdk中线程有几种使用方式,Thread类,实现runable 接口,实现callable接口
-
线程同步的几种方式(差不多七种 ,百度一下,常见下面几种吧。。
-
1)Synchronized 关键字
-
2)Lock
-
3)Volite关键字 (这个用挺多的,网上看下原理,到时候主动说一下)
-
…….
- 线程池
-
为什么要用线程池 ,池里几个参数什么意思(比如核心线程数和最大线程数的区别),线程池使用时候不同阶段是什么情况
-
深一点可能比较难了,为什么要用线程池,你在哪些地方用到过,常见线程模型有哪些,根据情况看看吧
- 其它
- Jvm调优,主要调哪些主要参数,什么意思,有可能给你个情形问你怎么调参数,
- 还有什么时候会有gc ,什么时候会fullGc 基础的记一下,不会的就说不知道
- 还有数据库优化 ,比如查询优化等等。还可能问道悲观锁和乐观锁,能看懂就看看,大致讲一下,不懂就说不会
- HashMap跟hashTable区别,分布式锁原理,整数数组绝对值排序,hashMap扩容机制,事务传播特性,分布式事物解决方案,悲观锁与乐观锁区别
- 你应该知道的JAVA面试题
- 原创 2017-08-20 清英 并发编程网
- 经常面试一些候选人,整理了下我面试使用的题目,题目很多所以每次会抽一部分来问。答案会在后面的文章中逐渐发布出来。
- 基础题目
- Java线程的状态
- 进程和线程的区别,进程间如何通讯,线程间如何通讯
- HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别
- Cookie和Session的区别
- 索引有什么用?如何建索引?
- ArrayList是如何实现的,ArrayList和LinedList的区别?ArrayList如何实现扩容。
- equals方法实现
- 面向对象
- 线程状态,BLOCKED和WAITING有什么区别
- JVM如何加载字节码文件
- JVM GC,GC算法。
- 什么情况会出现Full GC,什么情况会出现yong GC。
- JVM内存模型
- Java运行时数据区
- 事务的实现原理
- 技术深度
- 有没有看过JDK源码,看过的类实现原理是什么。
- HTTP协议
- TCP协议
- 一致性Hash算法
- JVM如何加载字节码文件
- 类加载器如何卸载字节码
- IO和NIO的区别,NIO优点
- Java线程池的实现原理,keepAliveTime等参数的作用。
- HTTP连接池实现原理
- 数据库连接池实现原理
- 数据库的实现原理
- 技术框架
- 看过哪些开源框架的源码
- 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?
- Netty是如何使用线程池的,为什么这么使用
- 为什么要使用Spring,Spring的优缺点有哪些
- Spring的IOC容器初始化流程
- Spring的IOC容器实现原理,为什么可以通过byName和ByType找到Bean
- Spring AOP实现原理
- 消息中间件是如何实现的,技术难点有哪些
- 系统架构
- 如何搭建一个高可用系统
- 哪些设计模式可以增加系统的可扩展性
- 介绍设计模式,如模板模式,命令模式,策略模式,适配器模式、桥接模式、装饰模式,观察者模式,状态模式,访问者模式。
- 抽象能力,怎么提高研发效率。
- 什么是高内聚低耦合,请举例子如何实现
- 什么情况用接口,什么情况用消息
- 如果AB两个系统互相依赖,如何解除依赖
- 如何写一篇设计文档,目录是什么
- 什么场景应该拆分系统,什么场景应该合并系统
- 系统和模块的区别,分别在什么场景下使用
- 分布式系统
- 分布式事务,两阶段提交。
- 如何实现分布式锁
- 如何实现分布式Session
- 如何保证消息的一致性
- 负载均衡
- 正向代理(客户端代理)和反向代理(服务器端代理)
- CDN实现原理
- 怎么提升系统的QPS和吞吐量
- 实战能力
- 有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的。
- 开发中有没有遇到什么技术问题?如何解决的
- 如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能。
- 新浪微博是如何实现把微博推给订阅者
- Google是如何在一秒内把搜索结果返回给用户的。
- 12306网站的订票系统如何实现,如何保证不会票不被超卖。
- 如何实现一个秒杀系统,保证只有几位用户能买到某件商品
- 软能力
- 如何学习一项新技术,比如如何学习Java的,重点学习什么
- 有关注哪些新的技术
- 工作任务非常多非常杂时如何处理
- 项目出现延迟如何处理
- 和同事的设计思路不一样怎么处理
- 如何保证开发质量
- 职业规划是什么?短期,长期目标是什么
- 团队的规划是什么
- 能介绍下从工作到现在自己的成长在那里
不繁组颉育帅总结面试题
1.session 和cookie的区别,2
2.集类有哪些,说一说你对hashmap的理解,数据库事物的理解,反向代理的理解
吴嘉豪总结
- 分布式用dubbo有没有遇到什么问题
- springcloud问了,但是我没用过那个
- Dubbo他问的特别恐怖,直接问你对dubbo有多少了解,有多少说多少
- 数据结构也有问
- Jvm的东西问了一些
不繁组乐得松总结
1.mysql索引有哪几种?索引算法有哪些?
2.mysql数据库锁有哪些,分别解释一下应用场景?
3.dubbo实现原理,有哪些组成部分?
4.悲观锁和乐观锁应用场景分别有哪些?哪种效率高?
5.redis数据淘汰策略?
6.spring aop ioc原理?
7.sql语句性能优化?
8.实现事务的方式有几种?
任建总结
-
描述JVM原理
-
多线程synchronized用法
-
内存溢出
-
调优JVM相关参数
-
HashMap原理,如何实现的
-
如何遇防重复提交
-
后端怎么做?
-
分页处理上亿条数据如何提高速度
-
2018.4.12 宇轩Java石惠文总结面试题
-
一.SpringMVC 启动加载类的方法有几种
-
1、若采用XML来配置init-method
-
2、@PostConstruct注解
-
二、dubbo原理
-
三、最近的一个项目的业务流程与使用到的技术,
-
四、对SpringBoot的了解
-
五、分布式事务
菜鸟组总结 -
简单做一下自我介绍
-
简单介绍一下最近做的这个项目
-
说说库存的并发是怎么解决的
-
自己搭建过集群的,说说session共享是怎么做的
-
你在这个项目中遇到什么问题,是怎么解决的
-
熟悉spring吗
-
Dubbo工作原理了解吗,说一下你对zookper的理解
-
Spring bean的声明周期
-
Svn的版本
-
多线程高并发
-
SQL优化,数据库优化,代码优化
-
Jvm原理
-
Java集合底层
-
Redis使用场景、存储类型等等
-
简单做一下自我介绍
-
简单介绍一下最近做的这个项目
-
说说库存的并发是怎么解决的
-
自己搭建过集群的,说说session共享是怎么做的
-
你在这个项目中遇到什么问题,是怎么解决的
-
熟悉spring吗
-
Dubbo工作原理了解吗,说一下你对zookper的理解
-
Spring bean的声明周期
-
Svn的版本
-
多线程高并发
-
SQL优化,数据库优化,代码优化
-
Jvm原理
-
Java集合底层
-
Redis使用场景、存储类型等等
-
马来西亚项目初步晒选
-
1.数据库量级
-
2.数据结构算法
-
3.多线程分布式
-
李成总结
-
1.Hashmap底层实现
-
2.限流的做法
-
3.Mq的幂等性解决方案
-
4.Redis数据库缓存一致性的解决方案
-
5.介绍Equals hashcode
-
6.用户请求响应慢,你所能想到的优化方案
-
7.介绍自己的项目
-
魏旭科总结
-
你好,
-
下面是面试的内容:
-
1,自我介绍
-
2,项目介绍
-
3,项目难点介绍
-
4,项目难点攻克方法介绍
-
5,数据一致性保障
-
6,悲观锁乐观锁介绍
-
7,HashMap介绍
-
任建总结
-
String为什么需要hashCode和equals方法
-
HashMap原理
-
先让我说下自己做的项目
-
让我些个DRM组件,怎么写
-
TR服务调用出现问题,怎么排查
-
徐思衍总结
-
jvm内存模型,hashmap
-
数据库优化
-
jvm内存模型,hashmap 数据库优化 dubbo的实现机制 然后就是问你做过的工程
-
许硕总结
-
1.工作项目介绍
-
2.项目分布式怎么升级的
-
3.dubbo项目简单的搭建过程
-
4.springIOC
-
5.事务传播性
-
6.redis和数据库的数据一致性
-
7.怎么做sql优化的
-
8.jvm相关,杂七杂八的(volatile 原理,static属性放到哪里,垃圾回收机制,幂等性之类的)
-
9.线程池
-
10.spring依赖注入的方式,springIOC自动装配有那集中方法
-
11.分布式事务大概思路
-
12.cocurrenthashmap如何实现高并发的
-
13.开发报表系统是sql怎么优化的
-
分布式dubbo+zookeeper+netty 常考 主要有分布式思想描述 还有dubbo实现的一些原理(比如jdk代理,反射,传输方式(netty NIO)),稍微深入一点可能考到原码级,当然还有zookeeper也很重要,比如里面的分布式锁是如何实现的,它起到的作用可能会问一些linux命令 常见的 tail grep等等,再难一点就说不知道吧 或者百度一些常见的Hadoop一套可能问得特别少 如果是生产环境下没有开发过,几乎不问.
-
框架阶段
Spring IOC、AOP的概念,原理 比如aop中jdk动态代理和cglib动态代理的区别,最好百度一下
SpringMVC和struts2的区别,以及他们的原理执行流程都可以说说
Mybatis 应该有些面试官也会问到,我没遇到,无非也是一些底层原理(反射加动态代理),还有一些常见标签,动态的,普通标签
可能问问mvc的思想 -
Corejava
最喜欢问的就是 集合,线程,线程池集合分为list /set /map 其中List 常见linkedList ArrayList vectory,Set 常见 hashset sortedSet ,Map 常见hashmap hashtable 。常考 list 下面几个的区别,或者List和set的区别 及底层数据结构实现,还有hashSet底层如何实现去重(大致:比较hashcode ,如果不同,则不同,如果相同,再比较equals方法),还有就是hashmap的实现原理(经常考),底层采用数组加链表实现
比如put一个元素,第一次取得他的hash值,作为数组下标 放入对应hash槽,如果槽里为空,直接放进去,不为空,放在槽下面的链表表头 (一个大概的情况,具体再去了解一下)
还有可能问高并发情况下使用的集合,有了解最好!线程,
jdk中线程有几种使用方式,Thread类,实现runable 接口,实现callable接口,线程同步的几种方式(差不多七种 ,百度一下,常见下面几种吧。。
1)Synchronized 关键字
2)Lock
3) Volite关键字 (这个用挺多的,网上看下原理,到时候主动说一下)
线程池
为什么要用线程池 ,池里几个参数什么意思(比如核心线程数和最大线程数的区别),线程池使用时候不同阶段是什么情况,深一点可能比较难了,为什么要用线程池,你在哪些地方用到过,常见线程模型有哪些,根据情况看看吧
其它
Jvm调优,主要调哪些主要参数,什么意思,有可能给你个情形问你怎么调参数,
还有什么时候会有gc ,什么时候会fullGc 基础的记一下,不会的就说不知道,还有数据库优化 ,比如查询优化等等。还可能问道悲观锁和乐观锁,能看懂就看看,大致讲一下,不懂就说不会