2024-02学习笔记

news2024/9/25 23:19:12

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>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

支持向量机 SVM | 线性可分:公式推导

目录 一. SVM的优越性二. SVM算法推导小节概念 在开始讲述SVM算法之前&#xff0c;我们先来看一段定义&#xff1a; 支持向量机(Support VecorMachine, SVM)本身是一个二元分类算法&#xff0c;支持线性分类和非线性分类的分类应用&#xff0c;同时通过OvR或者OvO的方式可以应用…

Sora:探索大型视觉模型的前世今生、技术内核及未来趋势

Sora&#xff0c;一款由OpenAI在2024年2月推出的创新性文生视频的生成式AI模型&#xff0c;能够依据文字说明&#xff0c;创作出既真实又富有想象力的场景视频&#xff0c;展现了其在模拟现实世界方面的巨大潜能。本文基于公开技术文档和逆向工程分析&#xff0c;全面审视了Sor…

一文搞懂浏览器缓存机制

文章目录 概述强制缓存协商缓存总结参考文章 概述 浏览器的缓存机制也就是我们说的HTTP缓存机制&#xff0c;其机制是根据HTTP报文的缓存标识进行的 浏览器第一次向服务器发送HTTP请求, 浏览器拿到请求结果后&#xff0c;会根据响应报文的缓存标识&#xff0c;决定是否进行缓存…

【学习总结】什么是DoS和DDoS

[Q&A] 什么是DoS DoS 是 “Denial of Service”&#xff08;拒绝服务&#xff09;的缩写&#xff0c;它是一种网络攻击方式&#xff0c;其目的是使目标计算机或网络资源无法为合法用户提供正常的服务。通过向目标系统发送大量请求、消耗其带宽、处理器或内存等资源&#…

【Linux网络命令系列】ping curl telnet三剑客

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

前后端分离vue+nodejs高校教室资源预约管理系统4e80m

本系统的设计与实现共包含9个表:分别是配置文件信息表&#xff0c;教师信息表&#xff0c;教室类型信息表&#xff0c;教室信息信息表&#xff0c;教室预约信息表&#xff0c;系统公告信息表&#xff0c;token表信息表&#xff0c;用户表信息表&#xff0c;学生信息表&#xff…

matplotlib散点图

matplotlib散点图 假设通过爬虫你获取到了北京2016年3, 10月份每天白天的最高气温(分别位于列表a, b), 那么此时如何寻找出气温和随时间(天)变化的某种规律? from matplotlib import pyplot as pltx_3 range(1, 32) x_10 range(51, 82)y_3 [11,17,16,11,12,11,12,6,6,7,8…

二、数据结构——单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。

对于链表来说&#xff0c;由于new操作时间太长&#xff0c;因此&#xff0c;算法题中一般使用静态链表。 1.单链表 采用数组实现单链表&#xff0c;可以直接开两个数据&#xff0c;一个数组存放数值&#xff0c;另外一个数据存放下一个元素&#xff08;指针&#xff09;。 示…

klipper api测试脚本whconsole.py

1、whconsole.py简单介绍 whconsole.py用于测试klipper的对外接口api&#xff0c;其实是连接klipper的uds服务&#xff08;Unix Domain Socket&#xff09;&#xff0c;官方也有介绍API 服务器 - Klipper 文档。 需要注意是的whconsole.py脚本启动不能使用Python3&#xff0c;…

想要调用淘宝开放平台API,没有申请应用怎么办?

用淘宝自定义API接口可以访问淘宝开放平台API。 custom-自定义API操作 taobao.custom 公共参数 注册账号获取API请求地址 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xf…

【计算机网络】深度学习HTTPS协议

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【计算机网络】深度学习HTTPS协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 一:HTTPS是什么二:HTTPS的工作过程三:对称加密四:非对称加密五:中间人攻击1…

精读《用 Babel 创造自定义 JS 语法》

1 引言 在写这次精读之前&#xff0c;我想谈谈前端精读可以为读者带来哪些价值&#xff0c;以及如何评判这些价值。 前端精读已经写到第 123 篇了&#xff0c;大家已经不必担心它突然停止更新&#xff0c;因为我已养成每周写一篇文章的习惯&#xff0c;而读者也养成了每周看一…

C++进阶(二) 多态

一、多态的概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c; 具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会 产生出不同的状态。举个栗子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&#xff1b;学…

无人机镜头稳定的原理和相关算法

无人机的镜头稳定主要基于两个关键技术&#xff1a;镜头平衡技术和实时电子稳像。无人机镜头稳定的原理和相关算法主要是通过镜头平衡技术和实时电子稳像技术来保持摄像镜头的稳定性&#xff0c;从而拍摄出清晰、稳定的画面。无人机镜头稳定的原理主要是通过传感器和算法来实现…

基于SpringBoot的在线拍卖系统(附项目源码+论文)

摘要 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、留言板管理、系统管理&#xff0c;用户&#xff1b;首页、个人中心、历史竞拍管理、竞拍订单管理、留言板管理&#xff0…

SSH教程

ssh 是远程连接的利器, 可以说凡是涉及到 linux 服务器, ssh 就是一个绕不开的话题. 本文作为一个教程, 尽可能详细的帮助读者设置 ssh, 并给出一些常用的 ssh 配置方法 (主要用于 linux 系统的远程登录和文件传输). 1. 简介 ssh 分为两个部分, sshd 服务端和 ssh 客户端. ssh…

2.2 mul、div、and、or乘除指令及所有寄存器英文名

汇编语言 1. mul乘指令 两个相乘的数&#xff0c;要么都是8位&#xff0c;要么都是16位 两个8位数相乘 一个默认放在al中&#xff0c;另一个放在8位reg或内存字节单元中8位乘法&#xff0c;结果默认放在ax中例如&#xff1a;计算100*10 100和10小于255&#xff0c;可以做8位…

优选算法|【双指针】|1089.复写零

目录 题目描述 题目解析 算法原理讲解 代码 题目描述 1089. 复写零 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就…

基于图数据库构建知识图谱平台应用实践

▏摘要 中信证券基于分布式图数据库StellarDB&#xff0c;替代国外开源图数据库产品&#xff0c;打造全新的企业级知识图谱平台&#xff0c;应用于同一客户集团画像、科创板关联发现、风险事件报告、全球企业关联图谱、产业链图谱、投研图谱、反洗钱与稽核图谱、元数据图谱等应…

《程序员职业规划手册》学习笔记

《程序员职业规划手册》不是一本具体的书&#xff0c;而是由前阿里技术总监雪梅老师讲授的一个专栏课程&#xff0c;总共有20讲&#xff0c;内容基本都是图片和文字形式&#xff0c;也有对应的语音讲述。 回顾了下毕业工作的这几年&#xff0c;我买过很多学习课程&#xff0c;…