Written interview questions

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011456337/article/details/79396798

知识分享

  • 怎么才能产生死锁
  • .多线程的编程方式
  • 如何保证线程安全
  • 1、线程是在多线程环境下,线程安全能够保证多个线程同时执行程序时依旧运行正确,而且要保证对于共享数据,可以由多个线程存取,但是同一时刻只能有一个线程进行存取。一般通过加锁的方式来实现。
  • 工作中使用的设计模式,并简单描述其使用场景
  • 高内聚,低耦合的理解
  • 你使用了解过哪些缓存框架?请简单介绍并说明使用的原因以及作用
  • 请问spring中的自动装配模式都有哪些?相关的的注解有哪些,并有哪些限制
  • 请简单描述一下分页的实现原理
  • 请简单描述一下springioc的实现原理以及优势,并结合曾经做过的项目阐述在项目中如何统一管理事物。
    1、将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合。
    2、对象的生命周期和对象间的关系交给spring去管理。
    3、控制的什么被反转了?就是:获得依赖对象的方式反转了
    4、没有IoC的程序中我们使用面向对象编程对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了。
  • IOC创建对象的几种方式
    1、调用无参数构造器
    2、带参数构造器
    3、工厂创建对象:静态方法创建对象,非静态方法创建对象
  • spring ioc依赖注入的两种方式:注解和xml,其实说xml的就够了,
    spring ioc的三种注入方式:1、接口注入。2、setter注入。3、构造器注入
  • 类中父类子类的构造函数、成员变量、静态方法和构造代码块的加载顺序。
  • 优化下面的sql
  • select JOB_DESC FROM JOBS WHERE (SELECT COUNT(*) FROM EMPLOYEE WHERE JOB_ID=JOBS_JOB_ID)<>0; )
  • 如果让你实现一个工具类commonutils,请问怎么样是最好的实现方式?
  • 根据责任链模式,请写一个事例。
    什么是单例模式
    1、Java单例模式是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,
  • 数据脏读是怎么样一种场景,用什么隔离级别可以简单的排除这种现象?
  • https://www.cnblogs.com/xuwujing/p/7613084.html
  • 创建线程池的方法有哪些
    1、创建缓存线程池newCachedThreadPool
    2、固定长度线程池newFixedThreadPool
    3、定时线程池newScheduledThreadPool
    4、单例线程池newSingleThreadExecutor
    https://www.cnblogs.com/ljp-sun/p/6580147.html
  • redis有几种数据结构和应用场景
  • 用过消息队列吗
  • 怎么分析sql的
  • 怎么优化sql的
  • 哪些走了索引哪些情况不走索引
  • 说说你用过的多线程的类
  • synchronized前面加static和不加的区别?类变量?
  • 说说你平常的表结构设计
  • 数据库的引擎有哪些
  • 幂等性怎么解决
  • jvm锁
  • java内存模型
  • cms垃圾回收器
    了解threadlocal
    线程的基本状态和状态关系
    spring bean的作用域
    error和exception的区别,什么时候必须用try catch
    重载和重写的区别
    mysql的几种事物隔离级别
    spring的几种隔离级别
    http tcp
    spring源码
    sso和oauth2的实现
    token验证,怎么防止伪造token
    zookeeper
    redis过期策略怎么实现
    mysql的分库分表是如何设计实现的
    nginx配置熟悉吗?nginx集群如何配置
    在linux系统中如何查看进程和查找一个文件/目录
    ssh是什么协议?用过哪些ssh的客户端
    用过git吗?为什么每次提交都要commit,而不是直接push
    有接触过文件服务器吗?如果有,请说出名称和优缺点对比
    用java编写冒泡算法
    如何看待团队协作
    以前的公司是如何配合的
    开发和测试是对立的?你同意吗?
    使用过socket1。0框架吗?(netty,。。。)有什么区别
    集群和分布式的区别是什么
    备份数据有哪些可行方案,包括数据备份,你用过哪一种
    redis集群和分片是怎么实现的?你们的redis用在哪些环境
    你会使用哪些虚拟化技术
    mysql的读写分离有几种实现?优缺点
    讲讲JMM
    volatile的实现
    结合jvm运行时数据区,描述下arrayList的内存分配
    kafka的可靠性保证完整讲一遍
    kafka和rocketmq的比较,rocketMQ的源码
    hotspot垃圾回收算法,判断对象可用算法,每个代分别用什么回收器
    http、tcp(1、三次握手四次回收过程;2,握手syn包多大)
    项目中用到的设计模式
    反射里field setaccessible有没有线程安全问题(这个不是太明白)
    innodb索引原理;b+tree的结构,unique_index和普通index有什么不同
    redis和monogo分别用于什么场景;redis的缺陷
    单例模式多线程下安全吗
    不安全,懒汉式都不安全,需要两次检查并在第二次的时候加锁,使用饿汉式、静态内部类的方式是可以的
    一般线程池开启几个线程
    1、N核服务器,通过执行业务的单线程分析出本地计算时间为x,等待时间为y,则工作线程数(线程池线程数)设置为 N*(x+y)/x,能让CPU的利用率最大化。
    2、https://www.cnblogs.com/atomicbomb/p/7692770.html
    3、https://www.cnblogs.com/Leo_wl/p/5920903.html
    怎么做并发优化
    工厂模式是什么
    工厂模式就是实例化对象模式了,是用工厂方法代替new操作的一种模式
    spring的IOC是什么
    spring的bean创建几次
    工厂模式创建bean的好处
    数据库切换哪里用了工厂模式
    1、https://segmentfault.com/q/1010000005849224/a-1020000006081316
    2、一般的MVC框架中,都有一个基本的DB数据库基本操作类
    我叫它DB class,有一个baseModel class 去继承 db class
    baseModel 是所有框架model的基类,需要继承baseModel
    baseModel已经有db类的 增删查改的方法了,baseModel其实就是数据库工厂,不同的模型继承baseModel,就有操作不同数据表的对象实例了,这样就用一个基础的class 完成了实例化各个不同数据表的对象,就好像是工厂一样,传不同的表名字就返回给你不同的对象。
    我的理解就是这样的,如有误,还请包涵和斧正。
    单核cpu支持多线程吗
    a:多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执行而已,其实并没有快(反而慢)
    线程有哪些状态?i++是不是线程安全
    线程有哪些状态
    wait和sleep的区别?join用途
    程序员说的栈和堆的区别,分别用来存放什么数据?这种划分有没有什么问题?
    用redis做过什么
    在linux系统上,有一个日志文件info.log,怎么定位订单号20180413001的所有日志信息,统计总数,显示匹配到的前10条记录,后十条记录,前后。、
    类的加载顺序
    接口报40*,50x一般都是什么原因,怎么快速定位问题?
    http动词有哪些?有什么用?chrome发送ajax有几次,postman有几次?
    mysql的语句优化,用什么工具?语句优化经验举例说明
    mysql的悲观锁和乐观锁的区别,怎么实现?
    有没有数据库事务嵌套的经验,距离说明?
    linux分组求和命令
    1、awk、sort
    有一张表login_user_log字段有创建时间、ip地址、玩家等级、用户类型、区服id、用户id,1、统计前1000个,今天登录次数最多,并且登录次数超过20次的用户,2、按月统计,各用户类型登录次数统计
    简要介绍git的release、hotfix、feature、develop、master各分支作用。
    用java8的lamba语法,转换id不重复的List userIds;
    List userIdsList = roundUserList.stream().map(a -> a.getUserId().toString()).distinct().collect(Collectors.toList());
    spring各个注解的意思
    string的值传递还要char的传递
    线程内部有哪些方法
    linux的东西
    为什么使用decimal去做金额的字段类型
    文件上传和查看下载的整个流程简述
    索引的考虑优化顺序
    sql优化
    nginx的一些分发和负载均衡
    用nginx做过哪些东西
    分布式中最重要的是哪些模块
    100多万的数据,怎么做热数据20万条加载到redis,
    try catch的顺序
    类加载顺序
    对称加密算法有哪些?
    springboot有哪些好处,springboot做到简介的原因是什么
    线程池和多线程的内部实现
    JDK动态代理和CGLIB代理的区别
    spring的过滤器和拦截器的实现
    ssm的调用链过程,从技术的角度
    ArrayList list = new ArrayList(20);中的list扩充几次
    举例说明:添加20个元素到ArrayList中
    当第一次插入元素时才分配10(默认)个对象空间。之后扩容会按照1.5倍增长。也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15;当添加第16个数据时,继续扩容变为15 * 1.5 =22个;JKD1.6,初始数组容量为10,每次通过copeOf的方式扩容后容量为原来的1.5倍加1
    jwt怎么保证安全性
    ——————————————————————————————————————————————

20180831
spring各个注解的意思
string的值传递还要char的传递
线程内部有哪些方法
linux的东西
为什么使用decimal去做金额的字段类型
文件上传和查看下载的整个流程简述
索引的考虑优化顺序
sql优化
nginx的一些分发和负载均衡
用nginx做过哪些东西
分布式中最重要的是哪些模块
100多万的数据,怎么做热数据20万条加载到redis,
try catch的顺序
类加载顺序
对称加密算法有哪些?
DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等
springboot有哪些好处,springboot做到简介的原因是什么
线程池和多线程的内部实现
JDK动态代理和CGLIB代理的区别


spring的过滤器和拦截器的实现
ssm的调用链过程,从技术的角度
ArrayList list = new ArrayList(20);中的list扩充几次
举例说明:添加20个元素到ArrayList中
当第一次插入元素时才分配10(默认)个对象空间。之后扩容会按照1.5倍增长。
也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15;当添加第16个数据时,继续扩容变为15 * 1.5 =22个;
JKD1.6,初始数组容量为10,每次通过copeOf的方式扩容后容量为原来的1.5倍加1

1、spring内部的过滤器和拦截器的东西研究源码调用过程
2、spring的各个注解和springboot的各个注解 done
3、用spring的好处有哪些 done
4、线程池的源码 done
5、直接new一个对象给spring去管理 不知道
6、动态代理和泛型
java动态代理只能代理实现了接口的类,cglib动态代理可以代理普通类,但是加了final关键字的类是不能的,因为cglib主要是针对父类生成一个子类,覆盖她的方法
7、标记-清除算法和赋值算法
9、并发控制
10、为什么要用多线程
1、减少程序的响应时间
2、提高cpu的利用率,因为现在都是多核cpu
11、为什么要使用线程池
1、减少线程创建和销毁的次数,避免内存压力,
2、减少了cpu的等待时间,提高了cpu的利用率
12、线程池的应用场景
1、批量操作数据
2、定时器执行任务
3、定期备份操作
4、异步处理,多个业务查询最终需要得到一个共同处理结果的时候可以异步查询

谈谈你对spring的认识,对开发是好是坏
redis的数据类型,如果一张表要存redis,你要怎么设计
如果让你来获取系统的pv,你怎么设计
如果我要实时显示我们公司的订单信息变化,你怎么做,订单只有一张表
如果我写一个服务,你写一个服务要调我的接口,你一般怎么做

1、mysql优化
2、幂等性解决?
1、预下单订单流水号生成,客户端传入后端
2、乐观锁或者悲观锁机制,乐观锁机制的话直接加版本号,悲观锁直接for update
3、加唯一约束限制
怎么解决缓存和数据库不一致的问题
自己写jdbc实现事务
aop的实现原理
jsp的实现原理
servlet和servletpage
数据库索引类型
btree之类的
linux的那几个命令
linux统计某个关键字的出现频率
cat detail-crm-service.2018-09-05.log | grep “KSHttpUtil” |wc -l
http的302和另一个forward
http请求结构
微服务的注册中心怎么实现注册服务的
对象池的实现原理
arraylist和linklist
java7和8对数据排序
线程池同步的几种方式

1、btree内部实现
2、全局事务的全盘回滚和往前走
3、canal的实现原理
4、eventbus的不可靠性
5、spring bean的生命周期
6、幂等性
7、mvvc
8、事务隔离级别
9、geohash内部是怎么实现的。
10、hash算法有哪些
11、排序算法
12、netty的实现原理
13、redis挂了怎么办,mysql挂了怎么办。
14、hashmap一边读一边写的问题
15、set可以存放什么数据类型
16、为什么不用字符串做主键
17、穿透要怎么做
18、如何保证多个线程有序输出A、B、C
19、bigdecimal的数据可不可以==比较

1、有没有试过linux里面搭建mysql
2、mysql主从备份试过吗
3、redis的内存过大时候怎么扩容
4、linux的硬盘扩容试过吗
5、linux的查看进程信息top能吗
6、linux文本查看前十行和后十行
7、mysql一个只有id自增和name两列的有10亿条数据的单,查询基于innodb引擎和myisam引擎的查询时间分别是
8、java的quene这个队列
9、分布式中全局session怎么做?有没有看过京东阿里那些是怎么做的?
10、微服务中多个实例如果其中一个挂了的话怎么办吧?
11、有没有试过修改mysql的编码解决编码不一致的问题?
12、限流你是怎么做的?
13、并发你做了哪些处理
14、threadlocal的内部threadMap如果数量过多超出一点范文是怎么做的?
15、实时显示订单信息你是怎么做的?
longpull
16、统计pu、uv、pv是怎么做的?
定时器按照业务是几分钟还是几小时还是每天去统计,然后统计nginx的日志里面的请求记录,然后存入数据库,那么存入数据库是用什么做的?
17、innodb和myisam的区别是怎么?
18、reetranlock和synchronized的区别是什么
19、http和http2、https的区别是什么
20、http的请求结构
21、nginx做负载均衡的话,如果请求量过多,那么nginx服务器压力过大,这时候应该怎么做?
22、了解netty吗(重要)?
23、了解tomcat吗
24、了解jetty吗(次要)?
25、你遇到的生产内存溢出的情况,你是怎么定位问题的过程?
26、说说你印象什么的两个项目?觉得比较有技术挑战的?
27、说说你开发中遇到的比较印象深刻的问题,有没有解决,怎么解决的?
28、你们的项目整体技术结构是怎么样的
29、如果要你设计一个对外的微信公众平台,你是怎么设计的?考虑多个服务实例情况的话呢?
30、select * from table where id in();in里面你认为多少数量合适呢?
31、arraylist.size为什么能那么快返回结构?
32、map、array、set你分别是什么时候用?
33、100以内A和B线程交替打印出来对应的信息。每秒钟打印10条出来?
34、写出求阶乘的递归和for循环执行
35、linux查看某个进程号
36、java里面的map你了解哪些
37、你们的分布式用的技术是怎么样的?
38、类似thrift的还有哪些,thrift的优势?
39、你最近在学习一些什么技术?是通过什么去学的?一般上什么网站去研究技术
40、垃圾回收算法有哪些?分别是如何实现的?
41、inner join、left join、right join的区别?
42、http怎么优化?
43、两个数据结构一样的表,怎么用比较快的方式查询出来交集之外的那部分数据,
EXPLAIN
select id,count(id)num from (
select id from orders
union all
select order_id from order_fees)a
group by id HAVING num =1
44、8%2<<3
45、什么是oop,说说特点?
46、说说jsp的几大对象
47、spring、springmvc的启动和工作流程是怎么样的?

1、如果一个进程占用很高的cpu内存,应该怎么定位
2、最后定位到是一个hashmap的get方法占用很高的内存,这是为什么
3、hashmap的结构是怎么样的,为什么后来红黑树代替链表,
4、hashmap的并发put的时候链死循环内部行程原因
5、一个100m的内存,划分了年轻代和年老代,40年轻代,5和5的存活区,这个时候显示20m内存对象,接着一个25m,后来又20m,这个时候对象内存是怎么转移的,什么时候做垃圾回收。
6、设计签到系统应该怎么设计考虑什么?积分并发这种情况怎么处理不出错,
7、redis单线程为什么那么快?
8、多线程一定比单线程快吗?
9、为什么list的for循环删除一个元素的话会报错?
10、redis设置过期时间的目的是什么?
11、redis的怎么做持久化?
12、mysql两两种引擎的比较和原理
13、为什么联合索引一定要加上第一个不然走不到索引?
14、java内存区域

猜你喜欢

转载自blog.csdn.net/u011456337/article/details/79396798