概念:实例不再由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类。依赖注入能够让相互协作的软件组件保持松散耦合@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。也可作用与集合上这里授权服务配置类是继承了AuthorizationServerConfigurerAdapter,而AuthorizationServerConfigurerAdapter又实现了AuthorizationServerConfigurer接口!源码AuthorizationServerConfigurer@Autowired对List自动注入//@Autowired注解用在接口的集合上面,所有实现该接口的实现类都会在该集合中@Autowired(required = false)private List tasks = Collections.emptyList();
Bean 的生命周期概括起来就是 4 个阶段:
实例化(Instantiation)
(资料图)
属性赋值(Populate)
初始化(Initialization)
销毁(Destruction)
B+TreeB+Tree相对于B-Tree有几点不同:非叶子节点只存储键值信息。所有叶子节点之间都有一个链指针。数据记录都存放在叶子节点中。查询速度快,但是占用空间索引结构:B-Tree B+Tree B:balanceB-Tree:平衡二叉树特点:1.具有数据节点2.指向下层指针3.指向数据指针缺页查询,产生IOB+Tree:特点:1.具有数据节点2.指向下层指针命中数据3层查找后查询数据指针加载更快,产生更少IO效率:BTree更高,但从IO角度,Mysql选择B+TreeHash 索引的特点Hash 索引只能够用于使用 = 或者 <=> 运算符的相等比较(但是速度更快)。Hash 索引不能够用于诸如 < 等用于查找一个范围值的比较运算符。依赖于这种单值查找的系统被称为 “键-值存储”;对于这种系统,尽可能地使用 hash 索引。优化器不能够使用 hash 索引来加速 ORDER BY 操作。这种类型的索引不能够用于按照顺序查找下一个条目。MySql 无法使用 hash 索引估计两个值之间有多少行(这种情况由范围优化器来决定使用哪个索引)。如果你将一张 MyISAM 或 InnoDB 表转换成一个 hash 索引的内存表时,一些查询可能会受此影响。查找某行记录必须进行全键匹配。而 B-tree 索引,任何该键的左前缀都可用以查找记录
索引是为了加速对表中数据行的检索而创建的一种分散的存储结构
建索引的语句
CREATE INDEX idx_xxx USING BTREE ON tablename (字段,字段,字段);
索引的种类尤其是复合索引以及对应的回表和最左匹配原则
普通索引:最基本的索引,没有任何约束限制。唯一索引:和普通索引类似,但是具有唯一性约束,可以有 null主键索引:特殊的唯一索引,不允许有 null,一张表最多一个主键索引组合索引:多列值组成一个索引,用于组合搜索,效率大于索引合并全文索引:对文本的内容进行分词、搜索覆盖索引:查询列要被所建的索引覆盖,不必读取数据行1、复合索引绑定的第一个列,没有出现在查询条件中;举例说明:为emp表插入索引idx_age_deptid_name(age,deptid,name),但是在查询条件中未使用age,导致复合索引全部失效。2、复合索引绑定的多个列是有顺序的,某一个列没有出现在查询条件中,存储引擎不能使用索引中该列及其后的所有列。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件里没有deptid列,会导致复合索引中的deptid及其后的索引失效。3.查询条件中出现某个列是范围查询的,存储引擎不能使用复合索引中该列其后的所有列。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件里deptid列使用到了范围查询,会导致复合索引中的deptid其后的索引失效。4.查询条件中某列使用否定条件的(!= <> IS NOT NULL),存储引擎不能使用索引中该列其后的所有列。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件里deptid列使用到了否定条件,会导致复合索引中的deptid其后的索引失效。5.查询条件中某列使用LIKE条件后的字段是以%开头的(如:’%ABC’),存储引擎不能使用索引中该列及其后的所有列。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件里name列使用到了like ‘%a’,会导致复合索引中的name及其后的索引失效。6.查询条件中某列使用函数的,存储引擎不能使用索引中该列及其后的所有列。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件里name列使用到了like ‘%a’,会导致复合索引中的name及其后的索引失效。7.查询条件中某列使用类型转换的(包括显示的和隐示的),存储引擎不能使用索引中该列及其后的所有列。如:字符串类型的列NAME=3,就是隐示的类型转换,将INT型转换为字符串类型。如果写为NAME=’3’,就不是类型转换。举例:为emp表插入索引idx_age_deptid_name(age,deptid,name),查询时查询条件name=3,会导致复合索引中的name及其后的索引失效。条件写成name=‘3’,索引就不会失效。
如果索引的列在 select 所需获得的列中(因为在 mysql 中索引是根据索引列的值进行排序的,所以索引节点中存在该列中的部分值)或者根据一次索引查询就能获得记录就不需要回表,如果 select 所需获得列中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表。
使用聚集索引(主键或第一个唯一索引)就不会回表,普通索引就会回表
可以在索引遍历过程中,对索引中包含的字段先做判断,过滤掉不符合条件的记录,减少回表字数。
最左匹配原则
带头大哥不能死,中间兄弟不能断
AOP 底层是采用动态代理机制实现的:接口+实现类
理对象。
Cglib 生成一个被代理对象的子类来作为代理。
就是由代理创建出一个和 impl 实现类平级的一个对象,但是这个对象不是一个真正的对象,
只是一个代理对象,但它可以实现和 impl 相同的功能,这个就是 aop 的横向机制原理,这
样就不需要修改源代码。
HashMap在java1.7之前底层数据结构是数组+链表,1.8之后是数组+链表+红黑树,
在1.7以前的put方法采用的是头插法,当hash碰撞次数到达8,且桶内元素到达64个的时候形成链表,但是在极端情况下会造成链表过长,效率变低,并且在rehash的时候,头插法会造成回环链首尾相连,形成死锁,在java1.8以后采用红黑树,除了添加效率都高,是线程不安全的,不安全示例
public class HashMapTest { public static void main(String[] args) { HashMapThread thread0 = new HashMapThread(); HashMapThread thread1 = new HashMapThread(); HashMapThread thread2 = new HashMapThread(); HashMapThread thread3 = new HashMapThread(); HashMapThread thread4 = new HashMapThread(); thread0.start(); thread1.start(); thread2.start(); thread3.start(); thread4.start(); }}class HashMapThread extends Thread { private static AtomicInteger ai = new AtomicInteger(); private static Map map = new HashMap<>(); @Override public void run() { while (ai.get() < 1000000) { map.put(ai.get(), ai.get()); ai.incrementAndGet(); } }}
JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。 ## HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n -
1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在
元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,
直接覆盖,不相同就通过拉链法解决冲突。
所谓扰动函数指的就是 HashMap 的 hash 方法。使用 hash 方法也就是扰动函数是为了
防止一些实现比较差的 hashCode() 方法 换句话说使用扰动函数之后可以减少碰撞。
当链表长度大于阈值(默认为 8)时,会首先调用 treeifyBin()方法。这个方法会根据
HashMap 数组来决定是否转换为红黑树。只有当数组长度大于或者等于 64 的情况下,才会
执行转换红黑树操作,以减少搜索时间。否则,就是只是执行 resize() 方法对数组扩容。
1.通常代替HashMap的安全由HashTable代替,但是多线程下他的put.get方法都是synchronized,效率太低,
2.Collections.synchronizedMap(),底层仍是synchronized
3.java9实现Collections.of()
ConcurrentHashMap 与 ConcurrentSkipListMap
ConcurrentHashMap 加锁
ConcurrentSkipListMap 不需要加锁,浪费空间,
4.ConcurrentHashMap
ConcurrentHashMap如何保证线程安全,在1.7以前由划分segment分段锁机制,共计16个并发级别,隔离级别太大,有很多空间就浪费了,太小就段内的元素过多
1.8以后是cas算法C语言写得,无锁算法,put添加的时候,链表+红黑树
put方法(无锁添加)
一般情况下,当元素数量超过阈值时便会触发扩容。每次扩容的容量都是之前容量的 2 倍。
HashMap 的容量是有上限的,必须小于 1<<30,即 1073741824。如果容量超出了这个
数,则不再增长,且阈值会被设置为 Integer.MAX_VALUE。
JDK7 中的扩容机制
空参数的构造函数:以默认容量、默认负载因子、默认阈值初始化数组。内部数组是空数
组。
有参构造函数:根据参数确定容量、负载因子、阈值等。
第一次 put 时会初始化数组,其容量变为不小于指定容量的 2 的幂数,然后根据负载因子
确定阈值。
如果不是第一次扩容,则 新容量=旧容量 x 2 ,新阈值=新容量 x 负载因子 。
JDK8 的扩容机制
空参数的构造函数:实例化的 HashMap 默认内部数组是 null,即没有实例化。第一次调
用 put 方法时,则会开始第一次初始化扩容,长度为 16。 ## 有参构造函数:用于指定容量。会根据指定的正整数找到不小于指定容量的 2 的幂数,将
这个数设置赋值给阈值(threshold)。第一次调用 put 方法时,会将阈值赋值给容量,
然后让 阈值 = 容量 x 负载因子。 ## 如果不是第一次扩容,则容量变为原来的 2 倍,阈值也变为原来的 2 倍。(容量和阈值都
变为原来的 2 倍时,负载因子还是不变)。
此外还有几个细节需要注意:
首次 put 时,先会触发扩容(算是初始化),然后存入数据,然后判断是否需要扩容;
不是首次 put,则不再初始化,直接存入数据,然后判断是否需要扩容;
Java7 中 ConcurrnetHashMap 使用的分段锁,也就是每一个 Segment 上同时只有一个
线程可以操作,每一个 Segment 都是一个类似 HashMap 数组的结构,它可以扩容,它
的冲突会转化为链表。但是 Segment 的个数一但初始化就不能改变,默认 Segment 的
个数是 16 个。
Java8 中的 ConcurrnetHashMap 使用的 Synchronized 锁加 CAS 的机制。结构也由
Java7 中的 Segment 数组 + HashEntry 数组 + 链表 进化成了 Node 数组 + 链表 / 红
黑树,Node 是类似于一个 HashEntry 的结构。它的冲突再达到一定大小时会转化成红
黑树,在冲突小于一定数量时又退回链表。
CPU 密集型任务(N+1): 这种任务消耗的主要是 CPU 资源,可以将线程数设置为 N (CPU 核心数)+1,比 CPU 核心数多出来的一个线程是为了防止线程偶发的缺页中断,
或者其它原因导致的任务暂停而带来的影响。一旦任务暂停,CPU 就会处于空闲状态,而
在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间。
I/O 密集型任务(2N): 这种任务应用起来,系统会用大部分的时间来处理 I/O 交互,而
线程在处理 I/O 的时间段内不会占用 CPU 来处理,这时就可以将 CPU 交出给其它线程
使用。因此在 I/O 密集型任务的应用中,我们可以多配置一些线程,具体的计算方法是
2N。
CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内存中对大量数据进行排序。单
凡涉及到网络读取,文件读取这类都是 IO 密集型,这类任务的特点是 CPU 计算耗费时间相
比于等待 IO 操作完成的时间来说很少,大部分时间都花在了等待 IO 操作完成上。
6、IO 密集=Ncpu*2 是怎么计算出来?
I/O 密集型任务任务应用起来,系统会用大部分的时间来处理 I/O 交互,而线程在处理
I/O 的时间段内不会占用 CPU 来处理,这时就可以将 CPU 交出给其它线程使用。因此在
I/O 密集型任务的应用中,我们可以多配置一些线程。例如:数据库交互,文件上传下
载,网络传输等。IO 密集型,即该任务需要大量的 IO,即大量的阻塞,故需要多配置线
程数。
G1 的全称是 Garbage-First,意为垃圾优先,哪一块的垃圾最多就优先清理它。
G1 GC 最主要的设计目标是:将 STW 停顿的时间和分布,变成可预期且可配置的。
被视为 JDK1.7 中 HotSpot 虚拟机的一个重要进化特征。它具备一下特点:
并行与并发:G1 能充分利用 CPU、多核环境下的硬件优势,使用多个 CPU(CPU 或者
CPU 核心)来缩短 Stop-The-World 停顿时间。部分其他收集器原本需要停顿 Java 线程
执行的 GC 动作,G1 收集器仍然可以通过并发的方式让 java 程序继续执行。
了分代的概念。
空间整合:与 CMS 的“标记-清理”算法不同,G1 从整体来看是基于“标记-整理”算法
实现的收集器;从局部上来看是基于“标记-复制”算法实现的。
可预测的停顿:这是 G1 相对于 CMS 的另一个大优势,降低停顿时间是 G1 和 CMS 共
同的关注点,但 G1 除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明
确指定在一个长度为 M 毫秒的时间片段内。
G1 收集器在后台维护了一个优先列表,每次根据允许的收集时间,优先选择回收价值最大的
Region(这也就是它的名字 Garbage-First 的由来)
增加两个参数 -XX:+HeapDumpOnOutOfMemoryError -
XX:HeapDumpPath=/tmp/heapdump.hprof,当 OOM 发生时自动 dump 堆内存信
息到指定目录。
同时 jstat 查看监控 JVM 的内存和 GC 情况,先观察问题大概出在什么区域。
使用 MAT 工具载入到 dump 文件,分析大对象的占用情况,比如 HashMap 做缓存未
清理,时间长了就会内存溢出,可以把改为弱引用。
上一篇 : 动态焦点:cloud是什么意思_clouds是什么意思
下一篇 : 最后一页
Hellofolks,我是Luga,今天我们来聊一聊在 KubernetesCluster编排生态环境中一个至关重要的安全Topic:Kubectl
02-09 22:08:23
我的世界手机版附魔锋利9999钻石剑的指令是什么? give{ench:[{id:16,lvl:9999}(注意:如果你是1 8...
02-09 21:42:11
2月8日,西安市高陵区2023年“春风行动暨就业援助月”招聘活动——“泾渭之春”大型现场招聘会拉开帷幕...
02-09 19:39:55
1、广汽丰田所生产的汉兰达车型,d45t代表的是发动机,是一台2 0升涡轮增压四缸发动机。2、发动机最大...
02-09 18:04:23
称骨算命是有袁天罡所创立的一种算命方法,根据人的生辰八字来推算出一个人的骨重从而预测一个人的命运...
02-09 17:40:00
3月4日,52岁的中国著名作家、作家协会会员刘信达和青年作家王波又一次爆发了激烈的争吵,而这次他们围...
02-09 15:59:16
【来源:鹰潭市体育局_政务动态】为进一步了解创建全国文明城市存在的短板弱项,传导创建工作压力,2月7...
02-09 14:13:22
1、首先:不是因为有了“乌鸦”这个词才有了这么个鸟的。而是有了这么个黑鸟才有了“乌鸦”这么个名的。...
02-09 13:44:14
网飞惊悚剧集《安眠书店》第四季发布海报,“伦敦在召唤”。新季宣布将于明年2月9日上线上半部分,3月9...
02-09 11:56:32
求生之路2附加战役安装步骤如下:打开官方下载界面,找到地图;点击地图的名字,进入后,点击other发现...
02-09 10:12:49
你买我就要买么?请理性购买网红食品
02-09 09:56:40
为满足农户及种植业产业需求,各地铁路部门启动了种子、化肥、农药等农资运输,加强春耕物资运输重点线...
02-09 08:48:51
1、联通宽带我感觉特别不错,网速稳定,价格便宜!我家一直用的都是联通网络,两年网费600的套餐,100兆...
02-09 07:37:25
说起李易峰很多网友都认识,李易峰自从在2014年拍摄古装剧《古剑奇谭》而受到众多网友的关注。而李易峰...
02-09 05:59:07
1、1、《明月几时有》演唱:王菲作曲:梁弘志作词:苏轼明月几时有把酒问青天,不知天上宫阙今夕是何年...
02-09 04:41:34
又到了六月毕业季,在孩子们面临人生中的第一个毕业典礼时,我们该如何让孩子们铭记呢?下面是小编整合...
02-09 01:59:32
1、蜇人。2、被中华木蜂蛰了之后可用醋、人乳亏睁丛、风油精、清凉油等去除蜂毒,但切记不可用红药水或...
02-09 01:43:21
馒头虽然人人都会吃,可是不一定人人都会蒸,贸然尝试可能蒸出来就是一团面疙瘩,难以下咽。好吃的蒸馒...
02-08 22:04:53
首先感谢日本宝可梦玩家@panipani67,开发的本插件。大家好我是麻玉,因为上次的一些疏忽导致一些宝可梦...
02-08 22:01:10
公司未与OpenAI开展合作,其ChatGPT的产品和服务未给公司带来业务收入,该领域对数据需求的发展趋势有待观察。
02-08 20:46:31
1、DMK多姆安服务式公寓位于曼谷。2、是家2星级酒店。文章到此就分享结束,希望对大家有所帮助。
02-08 19:07:52
音乐剧《歌剧魅影》是现代音乐剧大师安德鲁·洛伊德·韦伯最成功的音乐剧之一。该剧改编自法国作家加斯...
02-08 18:12:02
今日NBA常规赛,湖人在主场以130-133不敌雷霆。本场比赛,詹姆斯出战33分56秒,投篮20投13中,三分6中4...
02-08 17:13:07
为电脑安装和使用Android软件的方法、工具 原材料。Windows7系统可靠助手软件常用的Apk安装包方法 步骤百度
02-08 16:09:34
宝宝晚上睡觉突然小手小脚乱动,需要抱抱才能安睡,有时更是哭闹不止,让新手妈妈们束手无措,为什么婴...
02-08 14:20:29
海原县气象台更新暴雪黄色预警【III级 较重】【2023-02-08】
02-08 14:18:19
1、感谢你的提问:你的问题首先看是国内的还是国外的,2、国内的档次高点的我建议张裕:“02卡斯特特选和...
02-08 13:02:21
证券时报网讯,2月7日晚间,新潮能源发布公告,收到广东省高院二审判决书,裁定新潮能源在9 5亿元范围...
02-08 11:00:11
祝考研成功上岸的祝福语汇总在平日的学习、工作和生活里,许多人都写过祝福语吧,祝福语就是把心中的美...
02-08 10:19:13
证券时报e公司讯,海汽集团消息,新年伊始,海南离岛免税消费市场迎来新一轮购物高峰。海口公司全力以赴...
02-08 09:44:06
瑞银证券:“价值”消费行业在疫情后有什么投资机会?,家电,乳制品,分析师,瑞银证券,瑞士银行,消费行业,...
02-08 07:04:46
大学英语四级听力模拟训练青年最主要的任务是学习。以下是小编为大家搜索整理的大学英语四级听力模拟训...
02-08 06:08:39
美国硬红冬小麦期货溢价创最近12年新高,堪萨斯干旱让人担忧供应面,豆粕,大豆,美国,蒲式耳,冬小麦,堪萨...
02-08 04:08:37
1、你在逗我吗任何网红都是靠照片走红,被一堆没照片的丑比炒作起来的,不过这几个杀马特不同啊,这几个...
02-08 01:55:34
《爱琴海》发行时间:2008-01-20,语种:中文,唱片公司:爱琴海文化1守望白云2布达拉3我愿4月
02-08 01:11:59
1、促进学生身心健康发展,保证学生们具有旺盛的精力、愉快的心情投入学习,养成良好的卫生习惯。2、积...
02-07 22:51:08
高铁发票可以补打吗,不能,依据国家发票管理有关规定,铁路部门出具的车票等运输票据具有发票属性,旅...
02-07 22:08:54
[新车上市]2月7日,路虎卫士(图片|配置|询价)130正式国内上市,新车推出130HSE和130X两款车型可选,官...
02-07 21:00:33
1、《Soo版俄罗斯方块》是一款休闲小游戏。2、游戏大小为1104K。文章到此就分享结束,希望对大家有所帮助。
02-07 19:30:18
深圳最富的城中村你知道在哪里吗?不在福田!也不在南山!在宝安!答案揭晓,是宝安福永的怀德村。在微...
02-07 17:22:22
森蝶英文名什么意思,Cindy,辛迪的意思。田雨橙(Cindy),2008年4月15日出生于福建省福州市,田亮和叶...
02-07 16:45:52
1、在RFID系统中,为实现多目标识别而采取的防碰撞机制可分为两大类。2、一类是以询问器(读写器)为主导...
02-07 16:26:19
44+47!托马斯连续两场砍下40+篮网队史首位!乔哈太坑了! ,乔哈,篮网队,东契奇,快船队,凯里·欧文,勒...
02-07 14:18:50
首先年满18周岁,具有完全民事行为能力,且资质良好的个人可凭本人有效身份证件和相关资料向发卡银行申...
02-07 12:59:25
近日,我们通过互联网获悉,一台理想L9车型因“一泡尿”,造成了座椅控制模块短路烧毁。截止目前,虽然...
02-07 10:39:34
拉夏贝尔2月7日在港交所公告,公司于2023年2月6日收到上海三中院的(2023)沪03破64号《决定书》,2023年2...
02-07 09:28:31
1、《七周七Web开发框架》是2015年8月人民邮电出版社出版的图书。2、作者是[美]JackMoffitt、Fr
02-07 07:54:38
1、首先,在WPS软件中打开需要处理的Word文档,在点击左上方的预览的图标。2、2、然后,在预览的页面上...
02-07 04:37:33
1、脑白质脱髓鞘改变是一种正常的生理现象,很多健康的人,尤其是年龄超过55岁者,去体检时很多人都会发...
02-07 01:33:53
1、总体把握小学生写作文一、提高认识事物和表达事物的能力。2、我国著名教育家叶圣陶先生指出:“写任...
02-06 23:23:03
Hellofolks,我是Luga,今天我们来聊一聊在 KubernetesCluster编排生态环境中一个至关重要的安全Topic:Kubectl
2023-02-09
我的世界手机版附魔锋利9999钻石剑的指令是什么? give{ench:[{id:16,lvl:9999}(注意:如果你是1 8...
2023-02-09
2月8日,西安市高陵区2023年“春风行动暨就业援助月”招聘活动——“泾渭之春”大型现场招聘会拉开帷幕...
2023-02-09
1、广汽丰田所生产的汉兰达车型,d45t代表的是发动机,是一台2 0升涡轮增压四缸发动机。2、发动机最大...
2023-02-09
称骨算命是有袁天罡所创立的一种算命方法,根据人的生辰八字来推算出一个人的骨重从而预测一个人的命运...
2023-02-09
7月7日,中国消费者协会、中国保健协会化妆品发展工作委员会联合发布暑期消费指示,保障儿童用妆安全。...
概念特点1、 定义:纤维是天然或人工合成的细丝状物质,纺织纤维则是指用来纺织布的纤维。2、 纺织纤...
中新网西宁11月21日电 题:青海水润高原:从“大动脉”到“毛细血管”的精准管理 作者 谈林明...
中新网西宁11月21日电 (记者 张添福)青海省卫生健康委员会21日消息,该省第3例本土确诊病例经过20...
新华社华盛顿11月20日电 通讯:“留在中国的决定让我拥有一段值得讲述的人生”——留华美国学生韩...
上市公司频获机构调研 接待机构来访量为20.89万家
Copyright © 2015-2022 华东纤维网版权所有 备案号:京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com