• Java常用面试题总结


    1.多线程实现方式

    2.cookie和session区别

    3.数据加密

    4.接口并发

    5.常用的集合类

    6.遍历集合方式

    7.接口和抽象类

    8.#和$区别

    9.防止sql注入

    10.springMvc实现过程

    11.单点登录流程与实现方式

    12.解释spring的ioc和aop

    13.常用的linux命令

    14.springboot优势

    15.redis存取数据和基本用法

    16.注解开发流程,例子:日志处理

    17.spring事务

    18.怎么处理高并发

    19.同步机制,锁

    20.常用的排序方法,常用设计模式

    参考 https://www.cnblogs.com/guangxiang/p/11555231.html

    21.mybatis和hibernate区别

    ①MyBatis上手较为容易,Hibernate上手复杂

    ②Hibernate是orm框架->Java中ORM的原理: 先说ORM的实现原理,其实,要实现JavaBean的属性到数据库表的字段的映射,任何ORM框架不外乎是读某个配置文件把JavaBean的属 性和数据库表的字段自动关联起来,当从数据库Query时,自动把字段的值塞进JavaBean的对应属性里,当做INSERT或UPDATE时,自动把 JavaBean的属性值绑定到SQL语句中。

    ③Hibernate对jdbc有一层封装,相比于Hibernate,MyBatis对JDBC的封装程度没那么深,对开发人员的要求较高,但对大型数据库的优化和适配性较强,所以适用于处理大量数据。

    22.正向代理和反向代理区别

    23.数据库索引分类 ->https://www.cnblogs.com/guangxiang/p/11547039.html

    MySQL索引分类:

    主键索引(primary key)
    唯一索引(unique)
    常规索引(index/key)
    全文索引(fulltext 只有MyISAM类型表可以用)

    MySQL的索引类型有普通索引(normal),唯一索引(unique)和全文索引(full text),合理使用索引可大大提升数据库的查询效率,那么这三种类型的索引都有哪些区别呢?

    normal:这是最基本的索引,它没有任何限制,MyIASM中默认的BTREE类型的索引,是我们大多数情况下用到的索引。

    unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复。例如身份证号用作索引时,可设置为unique。

    full text : 表示全文搜索的索引,仅可用于 MyISAM 表。 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,切记对于大容量的数据表,生成全文索引是一个非常消耗时间非常消耗硬盘空间的做法。

    总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。

    在实际操作过程中,应该选取表中哪些字段作为索引?

    为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引。

    创建索引7大原则

    1.选择唯一性索引

    唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。

    2.为经常需要排序、分组和联合操作的字段建立索引

    经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。

    3.为常作为查询条件的字段建立索引

    如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的字段建立索引,可以提高整个表的查询速度。

    4.限制索引的数目

    索引的数目不是越多越好。每个索引都需要占用磁盘空间,索引越多,需要的磁盘空间就越大。修改表时,对索引的重构和更新很麻烦。越多的索引,会使更新表变得很浪费时间。

    5.尽量使用数据量少的索引

    如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。

    6.尽量使用前缀来索引

    如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检索会很浪费时间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。

    7.删除不再使用或者很少使用的索引

    表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。
    ————————————————
    版权声明:本文为CSDN博主「visant」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/visant/article/details/79619981

    24.数据库引擎redis等

    25.数据库优化

    一.sql优化

    ①任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段

    ②in 和 not in 也要慎用,否则会导致全表扫描;很多时候用 exists 代替 in 是一个好的选择

    ③应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描

    ④应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描

    ⑤对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引

    ⑥应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

    二.适当的添加索引,分区分表

    26.JVM原理和调优

    27.消息队列的理解

    特别说明:相关答案为个人理解,如有不全面或错误,请查证指出。也欢迎各位给出自己宝贵的答案。各位有面试被提的问题也可以提出,我会不定时更新。

    28.

    es怎么用

    docker怎么用

    springBoot怎么用

    Dubbo怎么用

    redis怎么用

    什么是雪崩,怎么处理

    29.秒杀设计

    https://www.cnblogs.com/kaleidoscope/p/9647261.html

  • 相关阅读:
    【学习总结】 小白CS成长之路
    Java程序员面试题收集(1)
    ECSTORE2.0 去页面底部版权
    vue-cli安装
    linux下安装nodejs
    Access denied for user 'root'@'localhost' (using password: YES)的解决
    想说的话
    十三:CSS之CSS的四种使用方法和优先级
    十二:CSS之基础语法
    十一:HTML之实现基本网页结构
  • 原文地址:https://www.cnblogs.com/guangxiang/p/10649671.html
Copyright © 2020-2023  润新知