java基础

  1. 如何优化sql语句
  2. 对称加密和非对称加密   (加密算法)
  3. Java中常用的集合
  4. minio是什么,有什么作用
  5. Aop有几种通知方式,通知方式的区别有啥?
  6. Aop的原理
  7. Java中的堆和栈存放的哪些数据类型?
  8. java中static关键字的意思?

  9. .redis存储的数据类型

  10. HashMap的加载因子,什么方式下扩容?扩容的机制是什么
  11. 滑动图片验证的实现思路与原理
  12. 多图片上传的多种思路
  13. 遇到hash碰撞怎么解决
  14. java中多态的意义

  1. 如何优化sql语句

  1. 尽量避免非操作符的使用
  2. 尽量避免模糊查询  因为%导致无法利用索引查询 影响查询效率
  3. 避免查询列
  4. 避免不必要的类型转换
  5. 增加查询范围的限制
  6. 合理使用in与exists
  7. 规范sql格式  要么全大小  要么全小写

      8. 避免全表查询

      9. 如果提高效率  可以考虑全局索引

  1. 避免查询时对null值进行判断
  2. 避免在字句中对字段进行表达式操作

  1. 对称加密和非对称加密   (加密算法)

常见的加密算法:

MD5算法/SJH1算法/HMAC算法/AES/DES/3DES算法/RSA算法/ECC算法

  1. Java中常用的集合

List:treeList,LinkedList,vector,ArrayQueue

    Set:HashSet,LinkedHashSet,TreeSet

Map:HashMap,HashTable,LinkedHashMap,TreeMap

网址:https://www.cnbl ogs.com/jing99/p/6947549.html

  1. minio是什么,有什么作用

http://www.minio.org.cn/

Minio是Apache License v2.0下发布的对象存储服务器,他适合存储非结构化数据,如照片,视频,日志文件,备份和容器./VM映像

优点:高性能 可扩展性 云的原生支持 与Amazon S3兼容

  1. Aop有几种通知方式,通知方式的区别有啥?

五种通知方式

  1. 异常通知
  2. 前置通知
  3. 后置通知
  4. 返回通知:在我们的目标方法正常返回时执行
  5. 环绕通知:目标方法的调用由环绕通知决定  即你可以决定是否调用目标代码

            joinPoint.procced()就是执行目标方法的代码

  1. Aop的原理

Aop(动态代理) 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式

  切面(Aspect) 连接点(JoinPoint) 通知(Adive) 切入点(pointcut) 目标对象(Target Object)

Aop代理(AOP Proxy)

  1. Java中的堆和栈存放的哪些数据类型?

堆中存储的是对象本身

栈中保存基本数据局类型的值和对象以及基础数据的引用

8.java中static关键字的意思?

Static:静态   

修饰成员变量/成员方法

被staic修饰的变量或方法会存储在数据共享区

被static修饰的成员变量只有一份

被static修饰后的方法除了也可以被对象调用,还可以直接类名调用

修饰类:

随着类的加载而加载

优先与对象存在

被所有对象共享

被static修饰的变量成为静态变量或实例变量

9.redis存储的数据类型

String

List

Hash(散列集合  以key,value方式存储)

Set(无序集合)

SortedSet(zset 有序集合)

  1. HashMap的加载因子,什么方式下扩容?扩容的机制是什么

1.全面解析HashMap

网址: https://blog.csdn.net/qq_41097354/article/details/90515802?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-2-90515802.pc_agg_new_rank&utm_term=hashmap%E7%A2%B0%E6%92%9E%E5%92%8C%E6%89%A9%E5%AE%B9&spm=1000.2123.3001.4430:

2.HashMap加载因子网址:https://www.cnblogs.com/wangzun/p/13087540.html

3.补充:HashMap在JDK1.7是以数组加链表的形式组成的,在JDK1.8当中新增了红黑树,当链表大于8并且容量大于64时,链表会转换成红黑树结构

加入红黑树是因为链表过长会影响HashMap的性能 而红黑树具有快速增删改查的特点

4.扩容: 当HashMap中的元素越来越多的时候,碰撞的几率也就越来越高(因为数组的长度是固定的)或者HashMap中的元素个数超过数组大小loadFactor时,为了提高查询的效率,就会对HashMap的数组进行扩容

  1. 滑动图片验证的实现思路与原理

原理:
1.利用java从大图中随机抠出一张小图,并在大图上给抠出小图的位置加阴影,然后把这两张图片返回给前端:
⒉前端获取图片,用户滑动小图到阴影的位置,获取小图滑动的距离,返回给java后台进行校验:
3.校验通过,返回校验通过编号:
4.前端调登录接口,把账号、密码、和校验编号传到Java后台进行登录。
实现:
1.计算需要的小图轮廓,用二维数组来表示,二维数组有两张值,0和1,其中0表示没有颜色,1有颜色,如下图,我要抠图的轮廓是这样的:

代码实现:https://www.cnblogs.com/1998xujinren/p/12334895.html

  1. 多图片上传的多种思路

后台list集合接收,list循环调用单文件上传的方法https://blog.csdn.net/javayoucome/article/details/103067431

  1. 遇到hash碰撞怎么解决

Hash碰撞指的是两个不同的值(例如张三、李四的学号)经过hash计算后得到的hash值相同

后来的李四要放到原来张三的位置 但是数组的位置被张三占了,导致冲突

解决方案:  开放寻址法和拉链法

  1. 开放寻址法指的是,当前数组位置1被占用了 就放到下一个位置2上面去 如果2也被占用了 就继续往下找 直到找到空位置

  1. 拉链法采用的是链表的方式 这个时候位置1就不单单存放的是Entry了,此时的Entry还要额外保存一个next指针 指向数组的另一个位置 将李四安排在这里 张三那个Entry中的next指针就指向李四的这个位置 也就是保存这个位置的内存地址。如果还有冲突 就把又冲突的那个Entry放到一个新的位置上,然后李四的Entry指向它,这样就形成一个链表

总结:开放寻址法和拉链法都是想办法找到下一个空位置来存发生冲突的值

  1. java中多态的意义

同一个行为具有多个不同表现形式或形态的能力

多态是对象多种表现形式的体现

  1. 继承
  2. 重写
  3. 父类引用指向子类对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值