spring常用的注解
从一个mapping 一个dao层 一个service层 控制器controller
从bean看来
@Component 组件,没有明确的角色
@Service 在业务逻辑层使用(service层)
@Repository 在数据访问层使用(dao层)
@Controller 在展现层使用,控制器的声明(C
@Autowired:由Spring提供
@Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上)
①在一个项目遇到的难解决的错误!
数组越界 --》长度不够
②数据库问题分组函数是什么?
①,group by 和 having 他们是一起使用的 分组结合使用 但是where和分组无关
②,where 与 having having是集合函数(count min max sum)不可以出现在where中
数据库三大范式是什么
第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。
1、整数类型
,包括TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
2、实数类型
,包括FLOAT、DOUBLE、DECIMAL。
3、字符串类型
,包括VARCHAR、CHAR、TEXT、BLOB
4、枚举类型(ENUM)
,把不重复的数据存储为一个预定义的集合。
5、日期和时间类型
,尽量使用timestamp,空间效率高于datetime,
MySQL存储引擎MyISAM与InnoDB区别
存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。
常用的存储引擎有以下:
Innodb引擎:Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。
MyIASM引擎(原本Mysql的默认引擎):不提供事务的支持,也不支持行级锁和外键。
MEMORY引擎:所有的数据都在内存中,数据的处理速度快,但是安全性不高。
InnoDB引擎的4大特性
-
插入缓冲(insert buffer)
-
二次写(double write)
-
自适应哈希索引(ahi)
-
预读(read ahead)
springcloud的原理
给大家谈谈Spring Cloud微服务架构的底层原理
实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。
③数据库去重?
(1)、rowid方法 -》根据oracle带的rowid属性 可以判断是否存在重复语句
(2)、group by 方法 -》分组统一在集合函数中使用
(3)、distinct方法 -》用于比较小的表进行去重,会过滤掉重复记录,返回不重复的记录或字段
④左右连接!
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
⑤java访问修饰符!
当前类 同包类 子孙类 其他类
public 公开的 当前类 同包类 子孙类 其他类
protected 受保护的 当前类 同包类 子孙类
friendly 有好的 当前类 同包类
private 私有的 当前
⑥hashmap和hashtable的区别!
共同:两个都是map的实现子类
hashmap线程是不安全的 在线程并发的环境下可能会产生死锁
hashtable线程是安全的 它的方法都加的Synchronize
⑦迭代器遍历!
两种方法:for 和 while
.next和.hasNext
⑧多态 的理解? 重载重写!
多态:
- 必须通过基类的指针或者引用调用虚函数 (被修饰的类成员函数称为虚函数)
- 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写(有返回值 参数和列表相同)
重载:同名不同参 没有返回值
重写:同名同参 有返回值
⑨单例模式 饿汉模式和懒汉模式
单例模式:只能有一个实例
饿汉模式:用的时候才给 线程安全问题 实例化一个静态对象出来 都会占用一定的内存 调用一定的时间速度也快
懒汉模式:就是直接吃饱了就给它 线程不安全
⑩spring(aop和ioc)
ioc和aop的区别
ioc:控制反转 依赖注入 由原来的程序员转交给spring管理
aop:面向切面 将非核心的代码丢出去 一搬用在日志或事物上
mvc三层架构
M:Model,模型。 JavaBean
- 完成具体的业务操作,如:查询数据库,封装对象
V:view视图。JSP、HTML等来进行数据展示
C:Controller控制器。 Servlet
三层架构分为:表现层(UI)(web层)、业务逻辑层(BLL)(service层)、数据访问层(DAL)(dao层) ,再加上实体类库(Model)
如果需要更多的面试题 可以私信我!!