2019-08-26 16:50
1. 背景
在 JDK 1.6 中对锁的实现引入了大量的优化。
目的
减少锁操作的开销。
2. 锁优化
在看下面的内容之间,希望大家对 Mark Word 有个大体的理解。Java 中一个对象在堆中的内存结构是这样的:
img
Mark Word 是这样的:
img
2.1 适应性自旋锁
自旋锁的思想:让一个线程在请求一个共享数据的锁时执行忙循环(自旋)一段时间,如果在这段时间内能获得锁,就可以避免进入阻塞状态。
自旋锁的缺点:需要进行忙循环操作占用 CPU 时间,它只适用于共享数据的锁定状态很短的场景。
...
2019-08-26 16:32
从SQL Server 2005开始,提供了CTE(Common Table Expression,公用表表达式)的语法支持。
CTE是定义在SELECT、INSERT、UPDATE或DELETE语句中的临时命名的结果集,同时CTE也可以用在视图的定义中。
在CTE中可以包括对自身的引用,因此这种表达式也被称为递归CTE。
CTE的优点
公用表表达式提供的功能其实和视图差不多,但是它不像视图一样把SQL语句保存在我们的数据库里面。
微软官方给出的使用CTE的优势:
1.可以编写一个递归查询。
...
2019-08-26 16:32
作者 : Stanley 罗昊
【转载请注明出处和署名,谢谢!】
*观看本文章需要有一定SpringBoot整合经验*
Shiro框架简介
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,
从最小的移动应用程序到最大的网络和企业应用程序。
分析Shiro的核心API
其实,Shiro的核心类有三个,分别是:
1.Subject:这个类呢,我们称之当前用户的主体,这个用户的主体包含了登陆、注销等等的一些方法,还有一些判断授权的一些方法;
...
2019-08-26 16:25
1 引言
命名实体概念消歧是命名实体消歧(英语:Named Entity Disambiguation)的一个重要研究子领域(命名实体概念可见本文3.1章)。什么叫概念消歧了?在这里举一个简单例子进行说明,一个命名实体“天龙八部”,它有许多个不同的含义,其中有电视剧类的含义,电视剧含义有好几个,如“1997黄日华版电视剧”、“1982年TVB版本电视剧”、“2003年内地胡军版电视剧”、“”2013年内地版电视剧“等;其中有漫画类的含义,漫画含义有好几个,如“腾讯动漫的漫画”、“黄玉郎改编的漫画”。虽然电视剧类的含义有好几个,但这些含义都是同一个概念,它们都属于“电视剧”这个概念。
...
2019-08-26 16:55
前言
上一篇其实已经说完了boot的大致工作,但是Linux在最后进入操作系统之前还有一些操作,比如进入保护模式。在我自己的FragileOS里进入保护模式是在引导程序结束后完成的。
实模式到保护模式属于操作系统的一个大坎,所以需要先提一下
从实模式到保护模式#
实模式和保护模式都是CPU的工作模式,它们的主要区别就是寻址方式
实模式出现于早期8088CPU时期。当时由于CPU的性能有限,一共只有20位地址线(所以地址空间只有1MB),以及8个16位的通用寄存器,以及4个16位的段寄存器。所以为了能够通过这些16位的寄存器去构成20位的主存地址,必须采取一种特殊的方式。访问内存的就变成了:
...
2019-08-26 16:25
摘要:Spring的代理在上层中主要分为ProxyCreatorSupport和ProxyProcessorSupport,前者是基于代理工厂,后者是基于后置处理器,也可以认为后置就是自动代理器。当spring容器中需要进行aop进行织入的bean较多时,简单采用ProxyFacotryBean无疑会增加很多工作量(因为每个Bean!都得手动写一个)。所以自动代理就发挥它的作用了。...
2019-08-26 16:47
前不久,我写了一篇文章回顾 Python 中 print 的发展历史 ,提到了两条发展线索:
明线:早期的 print 语句带有 C 和 Shell 的影子,是个应用程序级的 statement,在最初十几年里,经历过 PEP-214 和 PEP-259 的改进;再到 2009 年的大版本 3.0,由语句改成了 print() 函数,还在 3.3 版本,做过一次功能增强,最终上升成为一等的内置函数。
暗线:介绍了 print 的竞争对手们,像传统的日志模块 logging、调试模块 pdb、主流 IDE 的调试功能,以及后起之秀 PySnooper,它们瞄准着 print 的位置,摩拳擦掌,虎视眈眈。
...
2019-08-26 16:29
基于mysql5.7,innodb存储引擎
使用explain关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返 回执行计划的信息,而不是执行这条SQL ,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中
使用到的建表语句文末
explain select * from actor;
在查询中的每个表会输出一行,如果有两个表通过 join 连接查询,那么会输出两行
...
2019-08-26 16:15
一、简述#
截至到目前 (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 等异常。
...
2019-08-26 16:35
先附上项目项目GitHub地址 spring-boot-mybatis-interceptor...
2019-08-26 16:08
NETCore CSharp 中级篇2-5
本节内容为常见实用类和方法的使用
String.Format
string.format方法是一个字符串格式化类,它里面的一些写法是对字符串进行指定格式的转换。
String.Format 方法的几种定义:
String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
String.Format (String, Object[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。
...