位运算的小技巧
在 移位运算和 异或运算中讨论了这两种位运算。计算机中还有一些其他的位运算,它们比较简单,但也还有一些巧妙的作用,本文将逐一介绍它们。
阅读全文 ...在 移位运算和 异或运算中讨论了这两种位运算。计算机中还有一些其他的位运算,它们比较简单,但也还有一些巧妙的作用,本文将逐一介绍它们。
阅读全文 ...位运算是直接操作内存中的二进制数据。因此运算效率比常规的四则运算高出不少。
阅读全文 ...异或运算(exclusive or)又记作XOR,一般用插入符号(caret)^
表示,其可以看到是更加单纯的或运算(|)。我们知道,或运算的规则是:
异或运算则是去除了或运算中的规则①,即只有a、b相异时,结果才为真,其他情形都为假。因此异或运算的真值表为:
0^0 = 0
0^1 = 1
1^0 = 1
1^1 = 0
与0异或,其值不变;与1异或,相当于取反。
异或运算有一些特殊的性质,利用这些性质,可以解决特定的问题。这也是本文所要讨论的重点。
阅读全文 ...我们知道,计算机使用2的补码(Two's complements)来表示负数。这样有一个好处:可以使用同一种运算规则来处理正负数的运算,否则,二进制的正数和负数相加,将会得到错误的结果。为了处理这个讹误,必须为负数设计一套“加法器”。关于这一部分的讨论,参照 关于2的补码。
而补码使正负数使用同一套“加法器/乘法器”规则,实际上利用了同余运算的性质。
阅读全文 ...docker
以及docker-compose
的安装以及加速镜像的配置不在此处说明。windows系统上直接安装客户端即可完成docker及docker-compose的安装。在centOS 8中安装docker服务以及docker-compose可以参考下面的文章:
运行如下命令检查docker和docker-compose的安装情况:
阅读全文 ...@Transactional
注解开始
#@Transactional
注解是使用spring-transaction的最便捷方式。也是使用Spring框架开发最先接触的内容。
当你在一个服务的方法上使用@Transactional
注解时,意味着你希望为此方法开启事务支持。如果你的项目成功配置了数据源和事务管理器,Spring会为此方法使用如下默认设置开启事务:
对于MySQL数据库而言, 事务的隔离级别在不同程度上保证了数据一致性。
我们知道,事务的四大特性:原子性、一致性、隔离性、持久性,其中隔离性就是通过锁机制来保证的。
另外3个性质,通过MySQL的
redo log
和undo log
来保证。
MySQL对每条SQL语句的执行,都添加了一个隐式事务,言外之意,就是添加了隐式锁。
除了隐式锁之外,MySQL还可以使用显式锁。
这是从锁的可见性(或者使用方式)上来区分锁。本文不讨论MySQL的粒度锁(表锁,行锁,页锁)。
阅读全文 ...使用idm
下载y2b视频导致服务器内存溢出,内核强制关闭了服务进程。
通过系统日志定位原因,并介绍了服务器维护的几个相关命令。
阅读全文 ...几个说明:
properties配置文件中,;spring.messages.basename
必须要加classpath前缀。如spring.messages.basename=classpath:i18n/messages
必须要手动配置;MessageSource
,springboot不会自动配置之- 如果使用
MessageSource.getMessage()
方法,第一个参数的引用形式为"code"
,而不是"{code}"
或者"${code}"
。如messageSource.getMessage("test.msg", null,Locale.getDefault());- 在配置
LocalValidatorFactoryBean
之后,才可以在javax.validation.constraints
包下的注解(@Size
,@NotNull
...)下的message属性中使用"{code}"
的形式声明校验提示信息。如@NotNull(message = "{leftTime.not.null}")
;- springMVC的locale配置和JVM的locale配置不一样,在application.properties中配置的
spring.mvc.locale=zh_CN
实际上配置的是WebMvcProperties
,在获取消息时,locale信息应该使用webMvcProperties.getLocale()
1获取而不是使用Locale.getDefault()
获取。
MessageSource is a powerful feature available in Spring applications. This helps application developers handle various complex scenarios with writing much extra code, such as environment-specific configuration, internationalization or configurable values.
One more scenario could be modifying the default validation messages to more user-friendly/custom messages.
In this tutorial, we'll see how to configure and manage custom validation MessageSource in the application using Spring Boot.
阅读全文 ...Logback是Java应用中使用最广的日志框架之一,它是 其前辈框架Log4j的替代者。相比Log4j,Logback在日志处理速度、配置多样性、对旧日志文件的处理灵活性上均要优于Log4j。
这篇文章将介绍Logback的主要组成结构并指导你使用Logback构建更好的程序。
阅读全文 ...