- 浏览: 72180 次
- 性别:
- 来自: 北京
最新评论
文章列表
版本号 x.y.z :
其中z 表示一些小的bugfix, 更改z的号,
y表示一些大的版本更改,比如一些API的变化
x表示一些设计的变动及模块的重构之类的,会升级x版本号
在package.json里面dependencies依赖包的版本号前面的符号有两种,一种是~,一种是^。
~的意思是匹配最近的小版本 比如~1.0.2将会匹配所有的1.0.x版本,但不匹配1.1.0
^的意思是最近的一个大版本 比如1.0.2 将会匹配 所有 1.x.x, 但不包括2.x.x
————————————————
版权声明:本文为CSDN博主「emi ...
年度最受欢迎中国开源软件评选
- 博客分类:
- 开源
收藏地址,方便以后学习
2018年度最受欢迎中国开源软件评选:
https://www.oschina.net/project/top_cn_2018
2019年度最受欢迎中国开源软件评选:
https://www.oschina.net/project/top_cn_2019
索引在什么情况下会失效
- 博客分类:
- mysql
1. 对于创建的多列索引(复合索引),不是使用的第一部分就不会使用索引
alter table student add index my_index(name, age) // name左边的列, age 右边的列
select * from student where name = 'aaa' // 会用到索引
select * from student where age = 18 // 不会使用索引
2. 对于使用 like 查询, 查询如果是 ‘%aaa’ 不会使用索引,而 ‘aaa%’ 会使用到索引。 ...
1. 什么是 java.awt.headless?
Headless模式是系统的一种配置模式。在系统可能缺少显示设备、键盘或鼠标这些外设的情况下可以使用该模式。
2. 何时使用和headless mode?
Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。
3. 如何使用和Headless mode?
一般是在程序开始激活headless模式,告诉程 ...
该方法只做了一件事:设置了一个名为java.awt.headless的系统属性,源码如下:
private void configureHeadlessProperty() {
System.setProperty(SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, System.getProperty(
SYSTEM_PROPERTY_JAVA_AWT_HEADLESS, Boolean.toString(this.headless)));
}
其中:
SYSTEM_PROPERTY_JAVA_AWT_HEADLESS="jav ...
StopWatch:Spring计时器
- 博客分类:
- spring
StopWatch是位于org.springframework.util包下的一个工具类,通过它可方便的对程序部分代码进行计时(ms级别),适用于同步单线程代码块。 正常情况下,我们如果需要看某段代码的执行耗时,会通过如下的方式进行查看:
public static void main(String[] args) throws InterruptedException {
StopWatchTest.test0();
// StopWatchTest.test1();
}
public static void test0() throws Inter ...
查找数组arr中第k小的奇数,如果不存在则返回0
- 博客分类:
- 算法
/**
* @author niuxd
* @title: Test
* @date 2020/7/14 12:45
*/
public class Test {
public static void main(String[] args) {
int[] arr = {6, 9, 1, 5, 9, 4, 2};
//查找第k小的奇数
String kStr = "2";
int k ;
try{
k=Integer.parse ...
SpringCloud五大组件详解
- 博客分类:
- SpringCloud
SpringCloud分布式开发五大组件详解
1、服务发现——Netflix Eureka
2、客服端负载均衡——Netflix Ribbon
3、断路器——Netflix Hystrix
4、服务网关——Netflix Zuul
5、分布式配置——Spring Cloud Config
mysql处理IP地址
- 博客分类:
- mysql
SELECT
INET_ATON('111.204.26.226');
SELECT
INET_NTOA('1875647202');
MySQL 数据库内置了两个 IP 相关的函数 INET_ATON()、INET_NTOA(),可以实现 IP 地址和整数的项目转换。
因此,我们使用 INT UNSIGNED(占用 4 个字节)存储 IP,非 Char(15)。占 15 个字节。
将 IP 的存储从字符型转换成整形,转化后数字是连续的,提高了查询性能,使查询更快,占用空间更小。
为什么不强制停止?而是通知、协作
对于 Java 而言,最正确的停止线程的方式是使用 interrupt。但 interrupt 仅仅起到通知被停止线程的作用。而对于被停止的线程而言,它拥有完全的自主权,它既可以选择立即停止,也可以选择一段时间后停止,也可以选择压根不停止。那么为什么 Java 不提供强制停止线程的能力呢?
事实上,Java 希望程序间能够相互通知、相互协作地管理线程,因为如果不了解对方正在做的工作,贸然强制停止线程就可能会造成一些安全的问题,为了避免造成问题就需要给对方一定的时间来整理收尾工作。比如:线程正在写入一个文件,这时收到终止信号,它就需要根据自身业务判断 ...
wait与sleep区别?
- 博客分类:
- 多线程
对于sleep()方法,该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。
sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。
乐观锁之版本号机制和CAS
- 博客分类:
- 高并发
乐观锁:每次去拿数据的时候,都认为别人不会修改,不会加锁,但在更新的时候会去判断一下,此期间别人有没有更新数据,版本号机制和CAS算法就用到乐观锁,参考了https://blog.csdn.net/u011381576/article/details/79922538;
举一个版本号的例子,
数据表中除了数据还有一个version字段,更新数据时version字段会加一,
假设线程A在读取数据和version(version = 1)的期间,有另一个线程B也读取了version(version = 1),
线程A修改数据,更新version(version = 2), ...
并发编程三要素
(1)原子性
原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。
(2)可见性
可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。
(3)有序性
有序性,即程序的执行顺序按照代码的先后顺序来执行。
Redis的database相关基础
- 博客分类:
- redis
Redis默认提供了16个数据库(database),每个数据库有一个id,从0到15,他们没有名字,只有id。
可以在Redis配置文件中修改数据库个数,使用以下配置:
databases 32
代表启动时提供32个数据库。
客户端登录Redis时默认登录的是id为0的数据库。
不同的数据库中数据隔离保存。
使用select id命令可以切换当前数据库,比如:
切换数据库后Redis命令行会有数据库id的标识,另外,0号数据库不显示标识。
FLUSHALL命令会清空所有数据库中的数据库,不只是当前数据库。
spring-boot可以在配置文件中设置默认登录的数据库:
s ...
volatile关键字的两层语义
- 博客分类:
- 高并发
volatile关键字的两层语义一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。2)禁止进行指令重排序。