深圳哪家网站建设,阳江房产网58同城,网站开发培训达内,规模大的企业建站1.当我们向Set集合中添加一个已经存在的元素时
当我们向Set集合中添加一个已经存在的元素时#xff0c;Set集合会如何处理呢#xff1f;实际上#xff0c;Set集合不会将重复的元素添加到集合中。当我们向Set集合中添加一个元素时#xff0c;Set集合会首先判断该元素是否已…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是11 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到远程
重点是skipfalse/skip
buildpluginManagementpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-deploy-plugin/artifactIdversion2.7/versionconfigurationskipfalse/skip/configuration/plugin/plugins/pluginManagement
/build