你知道的加密算法?

MD5算法:使用哈希函数,它不是加密算法而是散列算法,它的典型应用是对一段信息产生信息摘要,以防止被篡改,无论多长的输入,md5都会输出一个128bits的一个串

SHA1算法:与MD5一样流行的散列算法,安全性强于MD5,但是慢与MD5,基于MD5,SHA1的信息摘要特性以及不可逆,可以被应用在检查文件完整性以及数字签名等场景

AES算法:对称的块加密算法,加解密的过程可逆

RSA算法:非对称加密算法,RSA是第一个能同时用于加密和数字签名的 算法,能地方到目前为止已知的所有密码攻击,它基于一个十分简单的数论事实:将两个大的素数相乘十分容易,但是想要对其乘积进行因式分解却十分困难,所以可以将其乘积公开作为加密密钥

数字签名:提供可鉴别的数字信息来验证自己身份的一种方式

加密:对明文或者数据按照某种算法处理,使其不可读

解密:加密的逆过程,将编码信息转化为原来数据的过程

对称加密/非对称加密:加密和解密的密钥相同/不同,对称算法的密钥难以管理,一般不适合于互联网,用于内部系统,加密/解密速度快,适合大数据量的处理,非对称算法密钥容易管理,安全性高,但是加密速度慢,适合小数据量加密或者数据签名

快速排序的思想?

  1. 先从数列中选取一个数作为基准数
  2. 分区过程中,将比这个数大的数放在它的右边,小于或等于它的数全放在它的左边
  3. 重复上一个步骤,知道左右区间只剩下一个数

如何计算有重复字符的全排列数?

统计全部字符的数量,和每个重复字符的数量,结果为全部数字的全排列/重复字符的全排列

public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s=scanner.nextLine();HashMap<Character, Integer> map = new HashMap<>();for (int i = 0; i < s.length(); i++) {map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);}int tol=getPermute(s.length());for (Map.Entry<Character, Integer> entry : map.entrySet()) {if(entry.getValue()!=1){tol/=getPermute(entry.getValue());}}System.out.println(tol);}public static int getPermute(int n){int res=1;while (n!=1){res*=n;n--;}return res;}

AOP的概念?

aop为面向切面编程,可以处理日志,事务,异常等

  • target:目标类
  • 通知:需要增强或者增加的功能,定义了切面的"什么"与"何时"
  • 连接点:应用执行过程中,能插入切面的时机
  • 切点:时机运行中,选择插入切面的连接点,定义了哪些点得到了增强,定义了何处
  • 切面:把横切关注点模块化为特殊类,这些类叫做切面
  • 引入:允许向现有类添加新方法和属性
  • 织入:把切面应用到目标对象并且创建新的代理对象的过程

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为什么对字段使用函数就不走索引了?还有什么情况不走索引

对索引的字段做函数操作,可能会破坏索引值的有序性因此优化器就决定放弃走树搜索的功能,需要注意的是,优化器并不是要放弃使用这个索引

  • 隐式类型转换不走索引:比方说tradeid本来是varchar,结果写成了如下sql
mysql> select * from tradelog where tradeid=110717;
  • 不遵守最左前缀原则对复合索引的查询的操作

为什么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账户的密码:

  • mysqld --skip-grant-tables 跳过mysql的用户验证
  • 通过update user set password=password('root') where user='root' and host='localhost'更改密码

2.整理华子面经--2相关推荐

  1. 46.整理华子面经+笔试+排序算法

    算法题 对于一个给定的数字N,找出从1到N中能被N整除的数? public static void main(String[] args) {Scanner scanner = new Scanner ...

  2. 1.整理华子面经--1

    细说项目中遇到的难点? C++项目: 撤销恢复模块: 拥有三个属性: QQueue<T> memo;//用于存储中间的逻辑的双向队列int memoIndex;//用于找到当前位置前一个状 ...

  3. 收到20封感谢信后终于拿到大厂offer,Android大厂面试174问整理给大家

    本人某中下游985的23级应届生,刚刚经历完秋招季,人都忧郁和清瘦了几分,不过皇天不负有心人,终究是拿到了一个满意的结果.看到好多同届的伙伴们叫苦连天,说是到现在还是0offer,甚至0面试的,我心中 ...

  4. Map再整理,从底层源码探究HashMap

    前言 本文为对Map集合的再一次整理.内容包括:Map HashMap LinkedHashMap TreeHashMap HashTable ConcurrentHashMap Map Map< ...

  5. List再整理,从代码底层全面解析List(看完后保证收获满满)

    前言 本文为对List集合的再一次整理,从父集接口Collection到顶级接口Iterable再到线程不安全实现类:ArrayList.LinkedList,再到线程安全实现类:Vector(被弃用 ...

  6. LeetCode简单题之整理字符串

    题目 给你一个由大小写英文字母组成的字符串 s . 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s ...

  7. TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理

    TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理 TVM/Relay 的图形分区功能.以下简单示例,错误信息. PartitionGraph() 函数指定图形是用带有 ...

  8. AIFramework基本概念整理

    AIFramework基本概念整理 本文介绍: • 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: • 对深度学习中的前向传 ...

  9. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

最新文章

  1. 卸载linux系统装win,如何在计算机上删除 Linux 并安装 Windows
  2. Linq to sql查询句法
  3. 【Visual C++】游戏开发笔记二十一 游戏基础物理建模(三) 摩擦力系统模拟
  4. CPU处理器架构和工作原理浅析
  5. BZOJ 2566 xmastree(树分治+multiset)
  6. Android游戏开发基本知识
  7. 大二物竞金牌转北大计算机,物理竞赛保送去北大还是清华?
  8. AppWidget实现机制分析--什么是桌面插件
  9. node解决通过npm无法安装forever的方法
  10. 模糊数学 计算机智能,模糊数学与人智能技术.pdf
  11. 小程序嵌套h5界面,在h5界面调用小程序的扫一扫功能
  12. Python爬虫QQ空间
  13. RS-232通信接口
  14. 苹果id被停用_三招解决Apple ID停用问题
  15. 云闪付华为P9指纹_华为云闪付app下载-华为云闪付 安卓版v9.0.11.324-pc6手机下载...
  16. swfobject2.2参数详解(swfobject.embedSWF)
  17. SNARK性能及安全——Prover篇
  18. 经典查找算法 --- B+树
  19. Avro RPC的两种实现方法:静态实现和动态实现
  20. 1.Apache Flume 简介

热门文章

  1. java 菜刀_菜刀Jsp脚本增强版
  2. hdoj 2199 Can you solve this equation? 【二分枚举】
  3. 五子棋 java 课设,五子棋java课程设计
  4. WebRTC 的黎明
  5. gmt时间转化函数c语言,时区缩写 UTC, CST, GMT, CEST 以及转换(示例代码)
  6. 深度:一文看懂Linux内核,Linux内核架构和工作原理详解
  7. 兵家必争大数据,争来争去是大数据时代的话语权
  8. matlab中frame是什么意思,frame2time结果是什么含义?
  9. python决策树逻辑回归_决策树,逻辑回归,PCA-算法面试题
  10. 高斯混合分布EM算法