![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 72
紫守笨
这个作者很懒,什么都没留下…
展开
-
J.U.C - CAS & Unsafe & 原子类
1 CAS(Compare And Swap)1.1 什么是CAS?CAS:Compare And Swap 比较与转换,是一个同步原语。底层的原理就是使用了CPU的指令,通过硬件来实现的,具有原子性的特征。CAS(oldValue, exceptedValue) 比较期望值与旧值,如果不相同就替换掉,因为CAS是原子性的,所有多线程操作的时候,不需要使用其他方式来保证原子性,直接使用即可。原子类大量使用到了CAS,例如:static class IntCount { st原创 2021-08-10 11:47:15 · 151 阅读 · 0 评论 -
java String类型的理解
String并不是基础数据类型之一,而是一个封装的字符串类型(java.lang.String),这个类应该是我们使用频次最高的类了,那么这个类我们如何去理解使用和原理呢?1、内存模型(重点讲述常量池);2、String使用的基本场景及底层原理;3、intern方法的理解;一、内存模型简单描述下JVM的内存模型包含:程序计数器、本地方法栈、方法区、虚拟机栈、堆;其中重点要描述的是常量池,常量池jdk7以前(jdk6及以前)存放在方法区中,jdk1.7及之后存放在堆中,如下图:.原创 2021-08-05 17:21:54 · 209 阅读 · 1 评论 -
Java HashCode & equals
1 HashCode是什么?Hashcode简单来讲就是一个散列值或者说一串整数值。Java为啥要设计一个HashCode值?1.1 Object对象的hashCode()函数我们都知道Object类默认包含了:hashCode() 方法。是一个native类型的方法(JNI的c语言实现的方法),默认返回:对象存储的地址。也就是说java中的任何对象,都会有一个hashCode方法,然后返回的结果就是对象存储的地址。1.2 Object对象的equals()函数equals...原创 2021-08-04 19:14:12 · 165 阅读 · 0 评论 -
IDEA - 如何查看代码的字节指令
在使用IDEA时,我们有时候可以查看一下,我们具体的代码字节指令是啥,比如:泛型、装箱拆箱等存在一些隐式操作的时候,可以方便的通过IDEA来来查看。1、IDEA配置Preferences --> Tools --> External Tools (如下图)2、添加自定义的ToolsName:自定义名称(show byte codes)Program:/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/..原创 2021-08-02 14:17:00 · 611 阅读 · 0 评论 -
小议“悲观锁和乐观锁”的原理、场景、示例
1 博由2 摘要3 理论知识4 案例41 乐观锁案例411 乐观锁 - 版本号控制案例412 乐观锁 - 时间戳控制案例42 悲观锁案例5 场景51 什么时候使用悲观锁52 什么时候使用乐观锁参考[1] 博由前几天与一些朋友谈到这个问题,之前有一些概念的上的涉及,但是并没有相对深入的了解,因此找一些资料来帮助自己理解悲观锁和乐观锁的概念理解、场景、然后通过示例来阐述乐观锁和悲观原创 2016-12-18 11:26:29 · 2166 阅读 · 0 评论 -
[小试牛刀] - Hadoop文件操作
博由HDFSURL访问方式FileSystempomxml配置参考博由 上一篇简单操作了一下WordCount的实现,第一个Hadoop程序;在Hadoop中比较核心内容有: [1] dfs 分布式文件系统 [2] MapReduce 主要想了解一下Hadoop的分布式文件系统。HDFS HDFS:Hadoop Distribute File Sys原创 2017-01-10 16:36:39 · 533 阅读 · 0 评论 -
Mybatis[1] - HelloWord
Mybatis简单介绍HelloWord 入门环境准备1 包引入pomxml2 配置文件mybatis-configxml3 表结构实体POJO实体映射配置代码实现项目地址Mybatis简单介绍 MyBatis是Java ORM 框架,类比于:Hibernate ORM,与Hibernate相比其性能会更好些,但是比JDBC稍微差一些。这里不做过多介绍。本文通过示例来阐述My原创 2017-02-21 17:27:08 · 456 阅读 · 0 评论 -
Mybatis[4] - 配置文件 - plugins
博由plugins是什么案例实现分页interceptor自定义Interceptor配置插件分页实践分页插件分页封装类分页插件拦截StatementHandler-prepare方法prepare code 源码拦截实现分析处理链路路由处理RoutingStatementHandler实际处理PreparedStatementHandlerBaseStatementH原创 2017-03-02 15:37:48 · 2354 阅读 · 1 评论 -
RabbitMQ [生产者 - 处理非路由消息]
非路由消息如何处理案例代码QA非路由消息 生产者发布消息时,在默认情况下,并不知道消息是否发布成功,是否正确路由到相应的队列。本文的目的在于如何处理路由失败的消息。如何处理1. 设置mandatroy=true;默认情况是false,设置为true的目的是告诉rabbitmq当交换器路由不到合适的队列时,不是将该消息丢失,而且将这个消息返回到生产者(basic.return);2.原创 2017-07-06 15:02:35 · 1420 阅读 · 0 评论