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方法也要static
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    private Singleton() {
        // 私有构造方法,以防止外部实例化
    }
    //只有这个方法是对外的  所以public 并且static
    public 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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/425480.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[C++]C++使用yolov9结合bytetrack实现目标追踪演示

【简介】 在C中实现YOLOv9的目标检测与ByteTrack的多目标追踪是一个相对复杂的过程&#xff0c;涉及到深度学习、计算机视觉和实时数据处理等多个领域。下面我将简单介绍这两个技术&#xff0c;并概述如何在C中实现它们。 YOLOv9&#xff08;You Only Look Once&#xff0c;版…

STL常见容器(map/multimap容器)---C++

STL常见容器目录&#xff1a; 8.map/ multimap容器8.1 map基本概念8.2 map构造和赋值8.3 map大小和交换8.4 map插入和删除8.5 map查找和统计8.6 map容器排序8.6.1 内置类型排序8.6.2 自定义类型排序8.6.3 自定义和内置类型混合排序 8.7 实例8.7.1 案例描述8.7.2 实现步骤 8.map…

Vue.js+SpringBoot开发高校实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…

基于springboot+vue的人格障碍诊断系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

云服务器租用哪家好?不要忽视第3点

注册资本&#xff1a;5亿元 权威认证&#xff1a;中央网信办云服务安全审查DJCP网络安全等级保护ITSS工信部云计算服务能力评估CSA STAR认证管理体系认证信息安全安全管理体系认证可信云服务认证可信云云主机等级评估5星 PCI-DSS支付卡行业数据安全认证 租哪家云服务器比较好&…

关于拖拽功能

文章目录 写在前面自己手动实现拖拽的demo技术细节&#xff1a;Js中拖拽(拉)事件&#xff08;drag 和 drop&#xff09;浏览器兼容性拖拽Api的介绍拖拽流程1.dragstart事件2.dragenter事件3.dragover事件4.drop事件(必须要dragover事件触发)5.dragend事件MDN关于拖拽的解析 相关…

latex中\documentclass[preprint,review,12pt]{elsarticle}的详细解释

在LaTeX中&#xff0c;\documentclass 是一个命令&#xff0c;用于指定文档所使用的文档类。文档类定义了文档的总体结构、格式和样式。elsarticle 是一个常用的文档类&#xff0c;它主要用于在Elsevier出版的期刊上提交论文。 详细解释 \documentclass[preprint,review,12pt…

基于Spring Boot+Vue的论坛网站

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

ViewModel 原理

在现代Android应用开发中&#xff0c;ViewModel是架构组件库的一个关键部分&#xff0c;它在提高应用的稳定性和性能方面发挥着重要作用。在这篇文章中&#xff0c;我们将深入探讨ViewModel的工作原理和最佳实践。 ViewModel简介 ViewModel是Android Jetpack架构组件的一部分…

2024.03.03 健身打卡第 14 天

成功只有一个——按照自己的方式&#xff0c;去度过人生 2024.03.03 健身打卡第 14 天

[Vulnhub]靶场 Red

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 …

前端el-date-picker传递的日期格式不是自己想要的格式

解决方法&#xff1a; 添加format和value-format属性进行解决。 format“YYYY-MM-DD” value-format“YYYY-MM-DD” 注意&#xff1a;日期格式要用大写&#xff01;&#xff01;&#xff01;&#xff01;用小写会出现错误&#xff0c;不能回填选择的日期&#xff0c;会直接传入…

TCP/IP-常用网络协议自定义结构体

1、TCP/IP模型&#xff1a; 2、TCP/IP- 各层级网络协议&#xff08;从下往上&#xff09;&#xff1a; 1&#xff09;数据链路层&#xff1a; ARP: 地址解析协议&#xff0c;用IP地址获取MAC地址的协议&#xff0c;通过ip的地址获取mac地 …

带你快速初步了解Python字典

1.字典 定义多个数据一般使用列表&#xff0c;但是列表也存在一定的缺陷 若列表中有多个元素&#xff0c;想访问其中某个元素&#xff0c;比较不方便 定义字典的语法&#xff1a;{key1:value1, key2:value2, key3:value3......} 字典和列表习惯的使用场景&#xff1a; &qu…

PCSA时钟控制集成之时钟门控级别

这一部分描述了&#xff1a; • 时钟门控的级别。 • 实现最大效果的时钟门位置。 • 实现有效和高效时钟门控的集成方法。 时钟树是由时钟缓冲器构建的&#xff0c;这些缓冲器在时钟源&#xff08;时钟输入或PLL&#xff09;与时钟终端&#xff08;寄存器或RAM&#xff09…

软件测试项目实战,某购物车/测试点分析实战(详细步骤)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 第一步&#xff1…

SpringBoot整合OAuth2 实现单点登录 SSO

单点登录&#xff1a; SSO服务端和SSO客户端直接是通过授权以后发放Token的形式来访问受保护的资源相对于浏览器来说&#xff0c;业务系统是服务端&#xff0c;相对于SSO服务端来说&#xff0c;业务系统是客户端浏览器和业务系统之间通过会话正常访问不是每次浏览器请求都要去S…

Pyglet图形界面版2048游戏——详尽实现教程(上)

目录 Pyglet图形界面版2048游戏 一、色块展示 二、绘制标题 三、方阵色块 四、界面布局 五、键鼠操作 Pyglet图形界面版2048游戏 一、色块展示 准备好游戏数字的背景颜色&#xff0c;如以下12种&#xff1a; COLOR ((206, 194, 180, 255), (237, 229, 218, 255), (23…

详解算法的时间复杂度和空间复杂度!

目录 ​编辑 1. 算法效率 2. 时间复杂度 2.1 时间复杂度的概念 2.2 大O的表示渐进法 2.3 一个栗子 3. 空间复杂度 4. 常见复杂度对比 5. 完结散花 ​​​​​​​ 悟已往之不谏&#xff0c;知来者犹可追 创作不易&#xff0c;宝子们&#xff01;如果这篇文章对你们有…

C++之queue和deque

1、queue queue&#xff08;队列&#xff09;&#xff0c;一种数据结构&#xff0c;可以让某些数据结构的操作变得简单。队列&#xff08;queue&#xff09;最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后&#xff0c;比它后进入队列的元素才能够出…