| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 2.整理华子面经--2 -> 正文阅读 |
|
[数据结构与算法]2.整理华子面经--2 |
你知道的加密算法?MD5算法:使用哈希函数,它不是加密算法而是散列算法,它的典型应用是对一段信息产生信息摘要,以防止被篡改,无论多长的输入,md5都会输出一个128bits的一个串 SHA1算法:与MD5一样流行的散列算法,安全性强于MD5,但是慢与MD5,基于MD5,SHA1的信息摘要特性以及不可逆,可以被应用在检查文件完整性以及数字签名等场景 AES算法:对称的块加密算法,加解密的过程可逆 RSA算法:非对称加密算法,RSA是第一个能同时用于加密和数字签名的 算法,能地方到目前为止已知的所有密码攻击,它基于一个十分简单的数论事实:将两个大的素数相乘十分容易,但是想要对其乘积进行因式分解却十分困难,所以可以将其乘积公开作为加密密钥
快速排序的思想?
如何计算有重复字符的全排列数?统计全部字符的数量,和每个重复字符的数量,结果为全部数字的全排列/重复字符的全排列
AOP的概念?aop为面向切面编程,可以处理日志,事务,异常等
?Dao接口里的方法怎么和xml里的语句进行关联?MyBatis在初始化SqlSessionFactoryBean的时候,找到配置需要扫描的基本包路径区解析里面所有的XML文件 MyBatis会把每个sql标签封装成sqlSource对象,然后根据sql语句的不同,又分为动态sql和静态sql,其中静态sql包含一段String类型的sql语句,而动态sql是由一个个sqlNode组成(IfNode,WhereNode等) XML文件中的每个sql标签就对应一个mapperStatement对象,它有两个很重要的属性:id为全限定类名+方法名,sqlSource; 创建完mapperStatement对象后会将其缓存在Configuration中,这样Configuration就包含了所有的sql信息,以后执行MyBatis方法的时候,就会通过全限定类名+方法名找到MappedStatement对象,然后解析里面的sql内容即可 主键索引和唯一索引哪个效率高?普通索引保存的都是主键的地址,然后再根据主键去查询,所以要检索两次,因此主键索引效率高于唯一索引 Mysql为什么对字段使用函数就不走索引了?还有什么情况不走索引对索引的字段做函数操作,可能会破坏索引值的有序性美因茨优化器就决定放弃走树搜索的功能,需要注意的是,优化器并不是要放弃使用这个索引
为什么HashMap线程不安全?主要原因来在于resize扩容操作 在put的时候导致的多线程数据不一致,比如两个线程a和b,a希望插入一个记录到map中,首先计算桶的索引坐标,然后去获取链表头节点,此时a时间片用完,b得以执行,和a一样执行,只不过b成功插入了记录,此时a对b的行为一无所知,假设a记录插入索引和b记录插入索引一致,那么a的插入就会覆盖b的记录 在get的时候引起死循环,由1.7以前的头插法造成,resize方法的时候再迁移到新桶过程中,使用了头插法,假设有一个这样的链表1->2,在扩容的时候,使用头插会使得它在新桶的数据变为2->1,如果线程a还没来得及修改1的后继节点,线程b就执行了插入,就会导致死循环 MySQL的delete和truncate的区别?delete是一条一条删除记录的,配合事件和回滚可以找回数据,并且自增不会重置 truncate是直接删除整个表,然后创建一个一模一样的新表,auto_increment会被重置,且数据无法找回 Mysql如何建立用户和更改密码?创建用户:Create User 'aaa' identified by '123456';创建新用户,名为aaa密码为123456 更改密码:Set password for 'aaa' =Password("123"); 忘记了root账户的密码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:55:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |