Russ Xia Blog

身处寒夜,把握星光。

Java中三元运算符的装箱拆箱

Java中三元运算符的装箱拆箱遇到的问题及其原因分析

Java中三元运算符的装箱拆箱 问题复现 测试环境中,有一段一直报NullPointerException的代码 //map.get(CommonConstants.COUNTRYID) != null 此处为false //busiBasicinfo.getCountryId())此处为null busiBasicinfoDTO.setCountryId(map.get(Commo...

Java集成Kafka简单步骤

Kafka的配置与启动,Java接入Kafka的简单demo

Java集成Kafka简单步骤 准备 kafka下载地址:http://mirror.bit.edu.cn/apache/kafka/1.0.1/kafka_2.11-1.0.1.tgz 项目代码地址:https://github.com/RussXia/kafka_demo 1.启动zookeeper ./bin/zookeeper-server-start.sh ./confi...

二叉树及其遍历

什么是二叉树,以及二叉树的三种深度遍历方式

二叉树及其遍历 一、什么是二叉树? 二叉树(英语:Binary tree)是每个节点最多只有两个分支(不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”和“右子树”。二叉树的分支具有左右次序,不能颠倒。 (引用自wiki) 一棵深度为k,且有2^(k+1)-1个节点的二叉树,称为满二叉树(Full Binary Tree)。这种树的特点是每一层上的节点数都是最大节点数。 而在...

关于#与$的区别

关于#与$的区别 '#{}'与'${}'的区别 结论 ’#{}’是经过预编译的,是安全的; ${}仅仅是一个string替换,存在sql注入的可能性。 能使用#{}的时候尽量使用#{} 二者的区别 在Mybatis的动SQL解析阶段,使用#{}和${}会有不同的表现: ’#{}’ ’#{}’会解析成一个JDBC预编译语句(PreparedStatement)的参数标记符(占位...

Mac下的个人常用软件

Mac下的个人常用软件

Mac下个人常用的软件列表 SourceTree 图形化的git管理工具 Chrome 常用的插件:Adblock Plus、Axure RP Extension for Chrome、Charset、Momentum、Octotree、Tampermonkey、有道词典Chrome划词插件、购物党 Sublime Text/Atom 好用的文本工具 ...

类加载过程

Java类加载过程以及双亲委派模型

类加载过程 类从被加载到虚拟机内存开始,到卸载除内存,主要的生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 它们开始的顺序如下图所示: 其中,加载、验证、准备、初始化这四个阶段是顺序开始的,解析阶段则不一定(为了支持Java的运行时绑定) 加载与类加载器 加载 加载阶段,虚拟机主要完成下面3个事情: 通过类的权限定名获取此类的二进制字节流 将这...

Spring IOC 循环依赖

什么是循环依赖以及Spring如何检测循环依赖的

Spring IOC 循环依赖 1.什么是循环引用? 所谓循环依赖,就是在注入Bean到Spring容器的时候,存在两个Bean,它们通过构造函数注入,且a依赖于b,b依赖于a。 对于这种通过构造函数注入的循环依赖,Spring是无法进行实例化的,在实例化的工程中会抛出org.springframework.beans.factory.BeanCurrentlyInCreationE...

String类型与运行时常量池

String类型以及运行时常量池的变迁

String类型与运行时常量池 String不属于8种基本数据类型,它是一个对象,但是它却有其他对象所没有的一些特性。 对于同属于String类型的对象,下面的代码的运行结果很显而易见,而造成这个现象的原因就是因为运行时常量池的存在。 (下文所有代码均在Hotspot虚拟机上编译执行,文中所出现的jvm,指的也是Hotspot) String str1 = "Hello" ; Str...

Hello World

Hello World

个人博客,记录学习。