最近面试的总结

答案基本都是错的

搜索模块是怎么做的:怎么样搜索准确 快速?

底层是用Lucene实现的,要配置到库里面

每一个商城都要弄一个这样的服务器吗?

可以

实现:

一般都是调用接口

RabbitMQ说一下

适用高并发,消峰

怎么定义:

有缓存功能,如数据库宕机可以保留

谈谈对Redis的理解:

用户缓存

Redis一般是作用在内存还是磁盘

内存,放磁盘太慢,商城一般是用集群

mybatis-plus有哪些插件

Run-boot,单表不用写sql,多表还是要手写

springCloud核心-eureka ribbon feign hystrix zuul

单点登录是什么概念?

通俗的将就是用户有很多模块,不可能让用户每个模块都登录,所以就用sso单点登录,用户登录一次可以访问不同的模块

Spring的原理谈一下:

它有两大核心 ioc控制翻转,对象交给spring管理,管理生命周期,有内置的工厂,通过函数拿到他的类,set/get注入,注解注入, aop切面编程,在源代码不变的情况下进行一些扩展功能,spring的最大好处是可以继承很多别的框架

分布式事务是怎么样的实现,a机器调用b机器,他们的数据是怎么样调用?万一这台机器失败了怎么办?

分布式一般都是有集群的,都可以实现集群,有一个eurekaz注册中心每30秒在eureka中心拉取心跳数据,看有没有宕机,如果3次之后没回应,就不再向他发数据了

Mycat读取分离了解过吗

了解过

加班会比较多,近段时间公司在组建队伍准备做商城:

如果稳定下来后会搬到这边住

小程序开发你了解哪些?腾讯那边是怎么交互的?

通过接口,具体不是太懂

全文搜索你了解多少

全文搜索的底层是luncen实现的,底层是用配置的

Springboot谈一下

给予spring框架,把配置开箱即用,让程序员更专注于业务方面,不用再做烦琐的配置,官网也是这样写的,一般都是用注解的形式,把xml文件都省略了

说一下代理模式

Spring-aop 里面也用的是代理模式 aop实现拓展功能底层就是用jdk的代理模式,还有cglib也是代理模式,jdk的代理模式多一些

两个代理模式的区别:

动态代理一般都是jdk,cglib用的比较少

你做购物车是吧?购物车是怎么做的?里面有什么业务逻辑,后台的键和键?

浏览商品 要买一个产品 加入购物车 跳转页面 登录 验证用户名 买单

这个是很基本的东西,你既然想要承受几百万的访问量,你分布式这一块是了解多少?你百万级的数据是怎么个实现方法?

一般分布式,看一是用dubbo还是spring-cloud,spring-cloud是提供一整套的分布式,解决各方面的问题,dubbo 是远程调用,百万级必须要做集群才可以 想淘宝双十一,他是先把商品放在缓存里面直接在缓存里查询,如果没有再查数据库

你列举5个springmvc常用的注解

Conntroller service RequestMapping responsebody pestmapping getmapping

Spring 的两个特性是什么

Ioc aop

Spring 的注入机制有哪几种

破解注入 构造注入 注解注入 静态工厂注入

Arraylist 和 linklist

arraylist是数组结构查询快速 linkedlist是链表结构 增删快

为什么增删快,为什么查询快

Arraylist是数组,数组是用下标查询比较快,链表是两端操作 增删改快

Mybatis的缓存有哪些

二级缓存,
Session是以及缓存,Map是二级缓存,

事务的实现原理是什么

一个SQL的执行,要么成功,要么失败,他有四大特性 原子性 隔离性 一致性 持久性

索引有哪些类别

唯一索引,非空索引,普通索引,聚合索引,主键索引

Redis的持久化方式有哪些?

跟磁盘对应的,每隔一段时间持久化一次,

你用过jdk的原生注解有哪些?

Daoqment

spring-boot常用注解有哪些?

Springboot-applocatsion springboot-config

消息队列 rebbitMQ和kafka 的区别

没用过

支付接口是怎么做的

一般是调用第三方接口,比如支付宝或者微信

你的项目对订单是怎么处理的,假如客户在下订单的时候取消怎么处理
redis存储格式的选择 用的最多的是哪个

Sring list set hash sorted set

如何避免脚本进行恶意刷单
每台服务器的集群数量
单点登录是怎么做的,原理是什么?
怎么提高Redis的缓存利用率
怎么实现并发量大,数据量大
怎么提高访问速度
Redis的使用场景
Redis怎么设置过去
项目使用了哪一种持久化方式
缓存做到什么级别?
添加购物车需要先登陆吗
Session 传在redis里面
购物车的信息是否跟用户信息绑定在一起
登录之后是否同步更多信息,这些信息存在什么地方
Redis通过aop自有功能存储
缓存功能都是通过aop实现的
Spring cloud 用过没?
ribberMQ用在什么场景
多次点击造成的错误是由什么处理
RibbedMQ是什么时候开始实例化的

知识点名词

Javaee
Mysql
Redis
Spring
Mybatis
SpringMVC
Mybatis-plus
Shiro
Spring-boot
Rabbitmq
Docker
Tomcat
Nginx
Apache
Eclipse
Sts
powerDesigner
Xshell
Sqlyog
Github
Gitee
Dubbo
Springcloud
Html
Css
Javascript ajax
jQuery
easyUI
Hadoop
Flume
Hive
Storm

平常怎么优化?
代码敏捷?
传参和读参

传参到缓存,尽量减少中间的计算量,和循环,可以做打印,为零的时候
不用做计算,参数循环量不能太大,列表太大时分线程做,

介绍一下最复杂的项目
RabbitMQ消息丢失了如何解决?–如何保证消息不丢失

1.消息持久化
2.ACK确认机制
3.设置集群镜像模式
1.消息补偿机制

Redis的数据类型,应用场景介绍几个

String
Hash
List
Set
1、热点数据的缓存
2、限时业务的运用
3、计数器相关问题
4、排行榜相关问题
5、分布式锁
6、延时操作
7、分页、模糊搜索
8、点赞、好友等相互关系的存储
9、队列

项目中有用过模板设计模式吗

单例模式,工厂模式,代理模式,

Maven的依赖冲突怎么解决

统一版本
排除加载

分布式的缺点

分布式事务、分布式锁、分布式session、数据一致性等都是现在分布式系统中需要解决的难题

分表的话,业务主键ID是怎么设计的

自增 id、UUID、获取系统当前时间

HashMap的Key存对象的的时候,需要注意什么
HashMap里的HashCode的作用

hashCode的存在主要是用于查找的快捷性

Java的异常有哪几类?在项目中是怎么用的

空指针异常,指定类不存在,数组下标越界,文件未找到,方法未找到,输入输出异常

String、StringBuilder、StringBuffer之间的区别

String是字符串常量
StringBuilder是线程不安全的,但是执行速度快
StringBuffer是线程安全的,但是执行速度慢

Jdk1.8里HashMap的内部存储结构
集合里面有一个迭代器,为什么要设计这个迭代器
在单机环境下并发控制,java有哪些手段
多线程创建的方式有哪几种
怎么防止表单重复提交
SpringAOP的原理,大概介绍一下

将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面

1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面

面向切面编程(aop)是对面向对象编程(oop)的补充,

批量往MySQL数据库导入1000W条数据,有什么思路
项目中打日志的框架是什么,错误日志具体怎么配置
HashMap是不是有序的

没有,

有没有有顺序的Map实现类

有TreeMap和LinkedHashMap

TreeMap和LinkedHashMap是如何保证它的顺序的
哪个有序的实现的比较好,你觉得有没有更好的更高效的实现方式
sql的优化,

在表中适当的建立索引
尽量不使用select *
尽量不使用两边都是%的like语句
尽量不使用in 和not in-会造成全表扫描
尽量不使用or-会造成全表扫描
尽量不在where语句中使用表达式
尽量不在where语句中进行null值判断

事务的隔离级别

SQL的隔离级别
读已提交
读未提交
不可重复读
串行化

SQL的分页查询

group by 和limit

java的设计模式

单例模式,工厂模式,

spring注入方式

注解注入
构造方法注入
Setter

ioc是怎么实现的
怎样会造成全表扫描

使用or或者是in 和not in

几年工作经验:
自我介绍:
商城主要负责模块:
搜索模块是怎么做的:怎么样搜索准确 快速?
每一个商城都要弄一个这样的服务器吗?
实现:
RabbitMQ说一下
怎么定义:
谈谈对Redis的理解:
Redis一般是作用在内存还是磁盘
mybatis-plus有哪些插件
用户量:
你这能支撑几百万吗:
你还做了单点登录是吧:
springCloud核心

eureka ribbon feign hystrix zuul

单点登录是什么概念?
Spring的原理谈一下:
分布式了解过吗?
分布式事务是怎么样的实现,a机器调用b机器,他们的数据是怎么样调用?万一这台机器失败了怎么办?
Mycat读取分离了解过吗
加班会比较多,近段时间公司在组建队伍准备做商城:
小程序开发你了解哪些?腾讯那边是怎么交互的?
全文搜索你了解多少
Springboot谈一下
说一下代理模式
两个代理模式的区别:
你做购物车是吧?购物车是怎么做的?里面有什么业务逻辑,后台的键和键?
这个是很基本的东西,你既然想要承受几百万的访问量,你分布式这一块是了解多少?你百万级的数据是怎么个实现方法?
主要是哪些模块

单点登录,购物车,评论系统

评论系统是吧

那个我只负责了文字部分 用户购买之后的评论

你列举5个springmvc常用的注解
Spring 的两个特性是什么
Spring 的注入机制有哪几种
Arraylist 和 linklist
为什么增删快,为什么查询快
Mybatis的缓存有哪些
Session是以及缓存,Map是二级缓存,
事务的实现原理是什么
索引有哪些类别
Redis的持久化方式有哪些?
你用过jdk的原生注解有哪些?
spring-boot常用注解有哪些?
消息队列 rebbitMQ和kafka 的区别
支付接口是怎么做的
你的项目对订单是怎么处理的,假如客户在下订单的时候取消怎么处理
redis存储格式的选择 用的最多的是哪个
如何避免脚本进行恶意刷单
每台服务器的集群数量
单点登录是怎么做的,原理是什么?
怎么提高Redis的缓存利用率
怎么实现并发量大,数据量大
怎么提高访问速度
Redis的使用场景
Redis怎么设置过去
项目使用了哪一种持久化方式
缓存做到什么级别?
添加购物车需要先登陆吗
Session 传在redis里面
购物车的信息是否跟用户信息绑定在一起
登录之后是否同步更多信息,这些信息存在什么地方
Redis通过aop自有功能存储
缓存功能都是通过aop实现的
Spring cloud 用过没?
ribberMQ用在什么场景
多次点击造成的错误是由什么处理
RibbedMQ是什么时候开始实例化的
如果事务流程太长,会发生什么问题,应该怎么解决
简单介绍一下你熟悉的框架,

Spring Spring MVC My Batis 等框架的执行流程

Jvm调优
Mysql 索引
消息队列
Springboot
Springcloud
设计模式
项目逻辑
Redis
Linux命令
Svn和Git的区别
消息中间件
全文检索

项目中做的有亮点的地方说一下
手写一个单例模式,线程安全的单例模式,尾/伪代码?就可以
http里面,get 和post 这两种提交方式有什么区别?
Get Post
url可见性 参数url可见 url参数不可见
数据传输上 通过拼接url进行传递参数 通过body体传输参数
缓存性 请求是可以缓存的 请求不可以缓存
后退页面的反应 请求页面后退时,不产生影响 请求页面后退时,会重新提交请求
传输数据的大小 一般传输数据大小不超过2k-4k 请求传输数据的大小根据php.ini 配置文件设定,也可以无限大
安全性 不安全 安全
安全性能方面呢
get提交的大小
Referto ?
Redis里面往列表里面插入元素是用什么命令
Spring 里面如何初始化bean
Linux 里面查询一个单词出现的次数,如何统计,最早出现的位置
在登录里面做的分布式的会话操作
1.以下两个打印语句分别输出什么,为什么

Public static void main (String[] args) {
Integer a = 100;
Integer b = 100;
System.out.println(a == b);
Integer a = 200;
Integer b = 200;
System.out.println(a == b);
}
回答:
T/F

Integer类型的范围是-128~127

4.public static void main(String[] args) {
	List list = new ArrayList<>(Arrays.asList("a","b","c","d","e","f"));
	for (String s : list) {
		if(s.equals("a")) {
			System.out.println(s);
			list.remove(s);
		}
	}
}
public static void main(String[] args) {
	List list = new ArrayList<>(Arrays.asList("a","b","c","d","e","f"));
	Iterator ite = list.iterator();
	while(ite.hasNext()) {
		String s = ite.next();
		System.out.println(s);
		ite.remove();
	}
}

第一个出现异常,同时修改异常
第二个正常运行,输出a b c d e f

5.Service 和 reference 的作用

Service是把已有的服务发布成dubbo服务
Reference是引用外部的服务生成可以使用service服务

6.Serializable 和 externalizable / transient

序列化、禁止序列化

8.Resultmap和 resulttype的作用

Resulttype数据库,实体类,查询字段都要一致才能查询
Resultmap 定义一个resultmap对列名和实体类之间做一个映射

9.HashMap、LinkHashMap、TreeMap的区别

HashMap用于插入、删除数据用的
TreeMap用于按顺序遍历的时候用
LinkHashMap用于确保输入的顺序与输出的顺序相同的时候用

10.Static方法可以被覆盖,不能被重载

1
2

3 java写一个递归程序来计算一个整数n的阶乘

public static int jc(int m){ return 0==m ? 1 : m*jc(--m); }
4

5 事务的acid是什么

原子性,一致性,隔离性,持久性

6 datetime和timesamp的区别

同样都是记录时间的,不同的是,datatime能记录到9999年,timesamp只能记录到2038年,但可以自动更新时区

7 索引为什么可以提高性能,索引过多会导致什么问题

通过不断缩小范围从而得到最终的结果,索引过多会导致更新和插入速度变慢

Spring常用的注解

@service @controller @repository

invalid bound statement(not found)

无效的绑定语句(未找到) 一般是拼写错误,或dao层的方法与mapper.xml不一样

抽象类是否可以用final修饰

不能,抽象类是用来继承的,final表示不可继承

你可能感兴趣的:(面试总结)