当前位置: 首页 > news >正文

2024-02学习笔记

1.当我们向Set集合中添加一个已经存在的元素时

当我们向Set集合中添加一个已经存在的元素时,Set集合会如何处理呢?实际上,Set集合不会将重复的元素添加到集合中。当我们向Set集合中添加一个元素时,Set集合会首先判断该元素是否已经存在于集合中。如果该元素已经存在于集合中,Set集合就不会将其添加到集合中。如果该元素不存在于集合中,Set集合就会将其添加到集合中。

返回false

所以可以通过返回的boolean值去判断,set集合中是否已经存在该元素

2.csrf 

2.1.csrf是啥 

跨站请求伪造(英语:Cross-site request forgery)

攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作。

2.2.如何防范

 在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。

只需要在最后给所有安全敏感的请求统一增加一个拦截器来检查 Referer 的值就可以

而如果黑客要对银行网站实施 CSRF 攻击,他只能在他自己的网站构造请求,当用户通过黑客的网站发送请求到银行时,该请求的 Referer 是指向黑客自己的网站

 3.索引相关

3.1 回表

主键索引存所有字段数据

非主键索引只会存自己这个字段的数据以及主键数据

如果sql的where条件是通过非主键索引查询的,并且select的结果集中需要获得除了非主键索引和主键之外的数据,那这个时候搜索引擎内部就会拿着当前查询得到的主键,再去主键索引查一遍。这就叫回表。

结果集中有多少条数据,就会发生多少次回表

普通索引和联合索引,可太简单了!_哔哩哔哩_bilibili

3.2 联合索引 

联合索引a,b,c是先按照a排序,a一致时在按照b排序,最后按照c排序

所以这就是为什么直接查找b或者直接查找c,联合索引不生效,因为他们是乱序的

 4.程序计数器

程序计数器:多线程时使用,记录当前线程执行到哪里了

5. 虚拟机栈

虚拟机栈 存储当前线程的数据

本地方法栈:native方法

 

方法以栈帧的形式存放到虚拟机栈:A方法调用B方法,B方法调用C方法。那顺序是A先入栈,然后B入栈,C入栈
C方法最后被调用,肯定最先执行完,所以C先出栈。然后B方法继续执行,执行完出栈,最后C方法继续执行,执行完出栈 

 

 6.内存空间分配

 

 

 

 

 

 

 大对象直接进入老年代

7.泛型

7.1兼容类型

 

 7.2 泛型擦除  编译时  T变为Object

所以下边这两个方法会有一个报红

重载:允许在同一个类中定义多个同名方法,但这些方法的参数列表必须不同。

 在idea眼里它长这样,方法名相同,参数列表也相同,不满足重载的规则

 8.句柄池

引用中保存的对象句柄地址相对稳定(不变),当GC操作移动对象时只用维护句柄池中存储的信息即可,特别是多个变量都引用同一个句柄池中的句柄时,可以减少更新变量存储的引用,同时确保变量的地址不变

 句柄访问的形式是堆空间维护一个句柄池,对象引用中保存的是对象的句柄位置。在堆中的句柄包含对象的实例数据和类型数据的真实地址。

9.垃圾回收

GC
Garbage Collection

gc时要stop the world

 

 9.1 复制算法

复制算法是操控新生区中的Survivor区( from 区 和 to区),

每次只使用其中一块,

在垃圾回收时,将正在使用的内存(from 区)中的存活对象复制到未使用的内存(to区)块中,

之后,清除正在使用的内存(from 区)块中的所有对象,

交换两个内存的角色(from 区变为to区,to区变为程序正在使用的from区),

完成垃圾回收

所以from和to是1:1

 

 9.2 标记清除

 9.3 标记整理

 10.git拉取或者提交报Access denied

remote: HTTP Basic: Access denied的解决方法

如果出现每次提交/拉取都要再次输入密码解决方案
请执行: 

git config --global credential.helper store

再次输入密码之后 就不会每次都要输入账号/密码

11. 一种思想:用boolean做标志位

 12.策略模式

先了解下什么是钩子方法

父类方法有一个接收入参的boolean型方法,还有一个钩子方法

boolean型方法用于判定在执行时具体执行哪个实现类

钩子方法是每个实现类都要实现,最后真正执行的

好处是,在删除或者增加子类时,不用修改核心代码,不用在核心代码中再去添加if else

13.责任链模式

跟策略模式类似,也是有一个公共的父类,父类中有一个钩子方法

子类实现中,自己的类中注入别人的类,当自己处理不了的时候,让指定的别人去处理

getBeansOfType这个方法能返回一个接口的全部实现类 

 14.单例模式

之前只知道懒汉饿汉还有加锁

现在知道还可以用静态内部类

并且,静态内部类是最安全的单例模式,因为类加载加载静态内部类的时候是线程互斥

内部静态类只会被加载一次,类加载的初始化阶段是单线程的

public class Singleton {//不对外开放的方法,一律private//但是最终提供给外部的方法是static,所以private方法也要staticprivate static class SingletonHolder {private static final Singleton INSTANCE = new Singleton();}private Singleton() {// 私有构造方法,以防止外部实例化}//只有这个方法是对外的  所以public 并且staticpublic static Singleton getInstance() {return SingletonHolder.INSTANCE;}
}

15.idea本地deploy没有upload到远程

重点是<skip>false</skip>

<build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>2.7</version><configuration><skip>false</skip></configuration></plugin></plugins></pluginManagement>
</build>

http://www.lryc.cn/news/309310.html

相关文章:

  • 最新消息:英特尔宣布成立全新独立运营的FPGA公司——Altera
  • RC正弦波振荡电路
  • 【Git学习笔记】提交PR
  • 线程池的相关参数
  • 图书推荐||Word文稿之美
  • 前端导出word文件的多种方式、前端导出excel文件
  • Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何?
  • 腾讯云4核8G的云服务器性能水平?使用场景说明
  • 1_SQL
  • PoC免写攻略
  • c1-周考2
  • express+mysql+vue,从零搭建一个商城管理系统7--文件上传,大文件分片上传
  • markdown的使用(Typora)
  • 【python】json转成成yaml中文编码异常显示成:\u5317\u4EAC\u8DEF123\u53F7
  • Python 实现Excel自动化办公(中)
  • MCTS代码
  • Java 中notify 和 notifyAll 方法介绍
  • Leetcode :杨辉三角
  • MWC 2024丨美格智能CEO杜国彬出席中国联通创新成果发布会并发表主题演讲
  • 个人建站前端篇(七)vite + vue3企业级项目模板
  • centos7 安装 docker-compose
  • 剑指offer面试题28:对称的二叉树
  • JS:原型与原型链(附带图解与代码)
  • 电子电器架构新趋势 —— 最佳着力点:域控制器
  • C++记录
  • ConcurrentModificationException并发修改异常
  • 小程序事件处理
  • 蓝桥杯-单片机组基础6——定时计数器与外部中断混合使用(附小蜜蜂课程代码)
  • 交友社交软件开发-php交友聊天系统-
  • vue2 开发记录