自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

program_red的专栏

记录平时的问题&学习交流

  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 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 138

原创 java String类型的理解

String并不是基础数据类型之一,而是一个封装的字符串类型(java.lang.String),这个类应该是我们使用频次最高的类了,那么这个类我们如何去理解使用和原理呢?1、内存模型(重点讲述常量池);2、String使用的基本场景及底层原理;3、intern方法的理解;一、内存模型简单描述下JVM的内存模型包含:程序计数器、本地方法栈、方法区、虚拟机栈、堆;其中重点要描述的是常量池,常量池jdk7以前(jdk6及以前)存放在方法区中,jdk1.7及之后存放在堆中,如下图:.

2021-08-05 17:21:54 190 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 151

原创 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 594

原创 Maven 生命周期

生命周期Lifecycleclean清理阶段default项目构建阶段site项目站点阶段plugin goal插件目标插件绑定参考生命周期(Lifecycle) maven将整个项目构建过程分为三个过程,每个过程都已经被定义成抽象模板,并通过插件的方式来确认具体的使用。clean(清理阶段)* pre-clean: 清理之前do something* clean:执行清理过程

2017-08-25 15:13:42 612

原创 Maven 搭建私服(nexus)

下载安装nexus配置私服环境设置私服仓库使用镜像模式案例测试下载发布上传下载安装nexus教程下载地址:https://www.sonatype.com/download-oss-sonatype安装地址:https://help.sonatype.com/display/NXRM3/Installation启动nexus 命令:sh bin/nexus(安装目录的bin目录

2017-08-17 16:05:09 316

原创 Maven 仓库

maven仓库本地仓库远程仓库中央仓库私服远程仓库配置镜像参考maven仓库什么是maven仓库 一个管理项目构件的地方,统一管理构件,然后提供给不同的项目使用;一方面提高了构件的复用性,另一份提高了效率。在没有仓库之前,通常会新建一个lib文件夹,用于存放jar包。相同的依赖,各种粘贴复制。有了仓库之后,项目只需申明引用即可,在打包的时候,会自动将需要的包合并打包,从而去除

2017-08-17 07:56:20 556

原创 Maven 依赖管理

引入依赖依赖范围传递性依赖依赖分析手段参考引入依赖在maven引入jar依赖是通过:<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dep

2017-08-16 14:59:22 622

原创 Maven 如何打包可运行jar包

目标可以执行jarmaven 打包可执行jarmaven-jar-pluginmaven-shade-pluginmaven-assembly-plugin总结目标解决可执行jar包的打包问题;上一篇文章我们介绍了mvn package可以打包,那么如果是一个可执行的jar包,该如何打包呢?可以执行jar拥有函数入口(public static void main(String[] ar

2017-08-15 16:50:46 10082 1

原创 Maven 入门篇

Maven简介下载安装POM项目坐标基本使用创建项目骨架命令创建使用m2eclipse插件基本命令操作cleancompiletestpackageinstall总结配置参考Maven简介 提供了项目构建、项目依赖解决方案。例如:jar包依赖,在没有maven之前,通常是在依赖包的官网进行下载,然后复制到lib目录下,人工去处理依赖和管理依赖,非常的麻烦,但是m

2017-08-15 15:44:28 638

原创 RabbitMQ [生产者 - 处理非路由消息]

非路由消息如何处理案例代码QA非路由消息 生产者发布消息时,在默认情况下,并不知道消息是否发布成功,是否正确路由到相应的队列。本文的目的在于如何处理路由失败的消息。如何处理1. 设置mandatroy=true;默认情况是false,设置为true的目的是告诉rabbitmq当交换器路由不到合适的队列时,不是将该消息丢失,而且将这个消息返回到生产者(basic.return);2.

2017-07-06 15:02:35 1404

原创 用户Session 会话机制

博由Session策略1个站点Cookie 保存会话Session Sticky粘性会话Session ReplicationSession复制集中存储总结博由 本文针对:用户Session在不同的系统场景如何解决?进行分析和记录。Session策略1个站点在展开话题之前,先看看一个普通的分布式站点是咋样的? Cookie 保存会话[1] 发生位置:用户侧(例如:浏览器)

2017-06-15 12:09:37 2423

原创 Mybatis[7] - 动态SQL

博由IfCase1 错误异常Case2 正常Case3 特殊字符异常Case4 CDATA处理特殊字符IF 总结Choose语法案例choose总结foreach语法案例总结bind语法案例wherecase1 where测试Case2 测试where and问题总结set语法案例trimCase1 实现whereCase2 实现set总结Gith

2017-03-19 16:26:19 634

原创 Mybatis[6] - 映射文件

博由映射文件解析原理sqlCacheMybatis的缓存结构使用自定义缓存implements Cache InterfaceMapper Config 配置缓存如何使用代码解析单元测试源码解析现象HashMapCache 被 LoggingCache包装TransactionalCache的诞生Cache 转换结构CacheRef简单看看源码ResultMap映

2017-03-15 15:50:47 377

原创 Mybatis[5] - 配置文件 - objectFactory

博由ObjectFactory 使用解析默认配置对象创建使用情况案例创建自定义ObjectFactory配置objectFactory单元测试测试结果总结项目地址博由 objectFactory对象工厂,在mybatis的对象创建是通过objectFactory完成的。缺省的实现是DefaultObjectFactory,如果想实现自己的ObjectFactory可以实现O

2017-03-12 16:58:09 767

原创 Mybatis[4] - 配置文件 - plugins

博由plugins是什么案例实现分页interceptor自定义Interceptor配置插件分页实践分页插件分页封装类分页插件拦截StatementHandler-prepare方法prepare code 源码拦截实现分析处理链路路由处理RoutingStatementHandler实际处理PreparedStatementHandlerBaseStatementH

2017-03-02 15:37:48 2338 1

原创 Mybatis[3] - 配置文件 - typeHandler

博由什么是TypeHandler自定义TypeHandler案例实现自定义时间类型处理器实体类配置typeHandler使用TypeHandler单元测试源码解析源码思路解析SqlSessionFactory.javaXMLConfigBuilder.javaDefaultSqlSessionFactory.javaDefaultSqlSession.ja...

2017-03-02 11:49:32 1448

原创 Mybatis[2] - 配置文件讲解

前言配置文件properties 标签标签属性元素示例子标签settings 标签typeAliases 标签typeAlias 子标签package 子标签annotation 设置别名源码解析注册别名摘自源码environments 标签transactionManagerdataSourcemappers 标签需要深入的标签可以了解一下前言 上一篇文章介绍

2017-02-24 13:19:38 365

原创 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 450

原创 SQLAlchemy 嵌套事务的处理方式

博由Just Do如何实现解决上述问题创建表sqlalchemy 实现博由 sqlachemy 是python的orm框架,在使用一段时间后,我们通常会出现事务嵌套的情况,看到很多人写代码的时候,居然是session到处传递,这无疑是加大了代码之间的耦合度。 案例: def save(session): # TODO def update(sessi

2017-02-15 12:45:01 7422 5

原创 [小试牛刀] - Hadoop文件操作

博由HDFSURL访问方式FileSystempomxml配置参考博由 上一篇简单操作了一下WordCount的实现,第一个Hadoop程序;在Hadoop中比较核心内容有: [1] dfs 分布式文件系统 [2] MapReduce 主要想了解一下Hadoop的分布式文件系统。HDFS HDFS:Hadoop Distribute File Sys

2017-01-10 16:36:39 505

原创 小试牛刀 - WordCount

博由 上一篇简单介绍了通过Docker简单搭建Hadoop集群环境,终于可以简单试试开发环境的操作,因此先感受一下Hadoop的开发。通过简单的单词统计来展示,还未正式学习Hadoop代码库,先直观感受一下。环境 [1] 系统:Mac Osx [2] hadoop环境:本地单机环境 version:2.7.1 [3] 语言: java [4] 开发工具:idea

2017-01-05 14:57:04 328

原创 [新手安装篇] - Docker搭建Hadoop本地集群

博由Docker安装使用下载安装基本命令使用使用Docker建立ubuntu虚拟机1 建立ubuntu虚拟机2 启动ubuntu机器安装JAVA安装配置Hadoop虚拟机下载安装本机传输到虚拟机环境配置bashrchadoop-envshcore-sitexmlhdfs-sitexmlmapred-sitexml安装SSH配置机器的访问连接关系安装SSH配置提

2016-12-26 10:32:17 1008

转载 Unable to locate package oracle-java7-installer

QUESTION:ahmed@ubuntu:~$ sudo add-apt-repository ppa:webupd8team/java ahmed@ubuntu:~$ sudo apt-get update ahmed@ubuntu:~$ sudo apt-get install oracle-java7-installer ahmed@ubuntu:~$ sudo apt-get

2016-12-22 21:17:40 3550

原创 新手 - 安装篇

下载安装验证安装是否OK下载&安装ES地址:https://www.elastic.co/downloads/elasticsearch 环境: System: MAC OS JDK: 1.7 ES: 2.4.3启动命令elasticsearch报错:Exception in thread "main" java.lang.UnsupportedClassVersionE

2016-12-19 16:50:43 989

原创 小议“悲观锁和乐观锁”的原理、场景、示例

1 博由2 摘要3 理论知识4 案例41 乐观锁案例411 乐观锁 - 版本号控制案例412 乐观锁 - 时间戳控制案例42 悲观锁案例5 场景51 什么时候使用悲观锁52 什么时候使用乐观锁参考[1] 博由前几天与一些朋友谈到这个问题,之前有一些概念的上的涉及,但是并没有相对深入的了解,因此找一些资料来帮助自己理解悲观锁和乐观锁的概念理解、场景、然后通过示例来阐述乐观锁和悲观

2016-12-18 11:26:29 2164

原创 清结算产品&系统

摘要清结算是什么名词解释基本结构流程结构核心结构产品系统结构支付宝基本结构个人设计的清结算系统结构系统架构概况费用中心支付系统整个设计核心内容参考摘要 清结算行业在金融领域或者当前的互联网行业越来越凸显,从刚开始踏入这一领域到实现其产品、系统整体过程之后,觉得有必须和大家分享一下,清结算领域的内容,其实这方面的资料相对来说比较缺乏,很难找到,刚入行的时候,真是资料难寻

2016-12-13 14:09:03 30178 1

Spring技术文档

Spring技术文档,英文版。

2013-08-15

DTD、SCHEMA等的开发文档

DTD、SCHEMA等的开发文档,以及包含XML的开发。是一个比较全面的开发文档工具!

2013-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除