学习笔记

JDK1.6 对 synchronized 的锁优化

1. 背景 在 JDK 1.6 中对锁的实现引入了大量的优化。 目的 减少锁操作的开销。 2. 锁优化 在看下面的内容之间,希望大家对 Mark Word 有个大体的理解。Java 中一个对象在堆中的内存结构是这样的: img Mark Word 是这样的: img 2.1 适应性自旋锁 自旋锁的思想:让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状态。 自旋锁的缺点:需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。 ...

sql server中的cte

从SQL Server 2005开始,提供了CTE(Common Table Expression,公用表表达式)的语法支持。 CTE是定义在SELECT、INSERT、UPDATE或DELETE语句中的临时命名的结果集,同时CTE也可以用在视图的定义中。 在CTE中可以包括对自身的引用,因此这种表达式也被称为递归CTE。 CTE的优点 公用表表达式提供的功能其实和视图差不多,但是它不像视图一样把SQL语句保存在我们的数据库里面。 微软官方给出的使用CTE的优势: 1.可以编写一个递归查询。 ...

SpringBoot与Shiro整合权限管理实战

作者 : Stanley 罗昊 【转载请注明出处和署名,谢谢!】 *观看本文章需要有一定SpringBoot整合经验* Shiro框架简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序, 从最小的移动应用程序到最大的网络和企业应用程序。 分析Shiro的核心API 其实,Shiro的核心类有三个,分别是: 1.Subject:这个类呢,我们称之当前用户的主体,这个用户的主体包含了登陆、注销等等的一些方法,还有一些判断授权的一些方法; ...

命名实体如何进行概念消歧?

1 引言 命名实体概念消歧是命名实体消歧(英语:Named Entity Disambiguation)的一个重要研究子领域(命名实体概念可见本文3.1章)。什么叫概念消歧了?在这里举一个简单例子进行说明,一个命名实体“天龙八部”,它有许多个不同的含义,其中有电视剧类的含义,电视剧含义有好几个,如“1997黄日华版电视剧”、“1982年TVB版本电视剧”、“2003年内地胡军版电视剧”、“”2013年内地版电视剧“等;其中有漫画类的含义,漫画含义有好几个,如“腾讯动漫的漫画”、“黄玉郎改编的漫画”。虽然电视剧类的含义有好几个,但这些含义都是同一个概念,它们都属于“电视剧”这个概念。 ...

我是如何学习写一个操作系统(三):操作系统的启动之保护模式

前言 上一篇其实已经说完了boot的大致工作,但是Linux在最后进入操作系统之前还有一些操作,比如进入保护模式。在我自己的FragileOS里进入保护模式是在引导程序结束后完成的。 实模式到保护模式属于操作系统的一个大坎,所以需要先提一下 从实模式到保护模式# 实模式和保护模式都是CPU的工作模式,它们的主要区别就是寻址方式 实模式出现于早期8088CPU时期。当时由于CPU的性能有限,一共只有20位地址线(所以地址空间只有1MB),以及8个16位的通用寄存器,以及4个16位的段寄存器。所以为了能够通过这些16位的寄存器去构成20位的主存地址,必须采取一种特殊的方式。访问内存的就变成了: ...

TheGir1 Springboot源码分析之AbstractAdvisorAutoProxyCreator

 摘要:Spring的代理在上层中主要分为ProxyCreatorSupport和ProxyProcessorSupport,前者是基于代理工厂,后者是基于后置处理器,也可以认为后置就是自动代理器。当spring容器中需要进行aop进行织入的bean较多时,简单采用ProxyFacotryBean无疑会增加很多工作量(因为每个Bean!都得手动写一个)。所以自动代理就发挥它的作用了。...

如何美观地打印 Python 对象?这个标准库可以简单实现

前不久,我写了一篇文章回顾 Python 中 print 的发展历史 ,提到了两条发展线索: 明线:早期的 print 语句带有 C 和 Shell 的影子,是个应用程序级的 statement,在最初十几年里,经历过 PEP-214 和 PEP-259 的改进;再到 2009 年的大版本 3.0,由语句改成了 print() 函数,还在 3.3 版本,做过一次功能增强,最终上升成为一等的内置函数。 暗线:介绍了 print 的竞争对手们,像传统的日志模块 logging、调试模块 pdb、主流 IDE 的调试功能,以及后起之秀 PySnooper,它们瞄准着 print 的位置,摩拳擦掌,虎视眈眈。 ...

mysql------explain工具

基于mysql5.7,innodb存储引擎 使用explain关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返 回执行计划的信息,而不是执行这条SQL ,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中 使用到的建表语句文末 explain select * from actor; 在查询中的每个表会输出一行,如果有两个表通过 join 连接查询,那么会输出两行 ...

HBase 系列(六)——HBase Java API 的基本使用

一、简述# 截至到目前 (2019.04),HBase 有两个主要的版本,分别是 1.x 和 2.x ,两个版本的 Java API 有所不同,1.x 中某些方法在 2.x 中被标识为 @deprecated 过时。所以下面关于 API 的样例,我会分别给出 1.x 和 2.x 两个版本。完整的代码见本仓库: Java API 1.x Examples Java API 2.x Examples 同时你使用的客户端的版本必须与服务端版本保持一致,如果用 2.x 版本的客户端代码去连接 1.x 版本的服务端,会抛出 NoSuchColumnFamilyException 等异常。 ...

.NET Core C#中级篇2-5 常见实用类

NETCore CSharp 中级篇2-5 本节内容为常见实用类和方法的使用 String.Format string.format方法是一个字符串格式化类,它里面的一些写法是对字符串进行指定格式的转换。 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。 String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程