转载自 《Java工程师成神之路-自动拆装箱》。 一、什么是包装类型 Java 语言是一个面向对象的语言,但是 Java 中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装
Java 中有三大类共 8 种基本数据类型。 字符型 char。 布尔型 boolean。 数值型 1. 整型:byte、short、int、long。 2. 浮点型:float、double。 String 不是基本数据类型,是引用类型。
为什么说 Java 中只有值传递?这个问题也颠覆了我学习/工作多年的认知。最近也是拜读了Hollis的博客 为什么说 Java 中只有值传递 才有了新的认识,也欢迎大家去阅读原文。 Hollis 张洪亮,阿里巴巴技术专家,51CTO 专栏作家,CSDN 博客专家,掘金优秀作者,《程序员的三门课》联合
一、编译与反编译 编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。 机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令
面向对象设计模式有 5 大基本原则:单一职责原则(Single-Responsibility Principle)、开放封闭原则(Open-Closed principle)、里氏替换原则(Liskov-Substitution Principle)、依赖倒置原则(Dependecy-Inversi
面向对象的三大基本特征:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)。 封装(Encapsulation) 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 封装是面向对象
对于 Redis 分布式锁的实现方式,网上讨论相关文章都基本都“烂大街”了。然而几乎所有相关介绍都是在单纯使用 setNX 命令的基础上进行一个简单封装。笔者之前也写了一篇《Redis分布式锁实现》,原理同样是基于 setNX 命令上的封装。阿里云专访 Redisson 作者 Rui Gu:构建开源
Stream 是 JDK8 中新增加的一个特性,被 Java 猿统称为流。ParallelStream 其实就是一个并行执行的流,它通过默认的 ForkJoinPool,可能提高你的多线程任务的速度。个人非常喜欢使用 Stream 这个新特性,这里搬录一个曾使用 ParallelStreams 导致
使用 springfox 中的 RequestHandlerSelectors.basePackage(“com.xxx”) 只能支持单个包路径的扫描匹配,如果要想支持多个包路径的匹配我们需要修改 springfox 里面的代码来支持他,现做以下修改来支持多包路径匹配。 package com.xx
分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于 Redis 的分布式锁;3. 基于 ZooKeeper 的分布式锁。 我们最先做电商+零售的库存业务时,选用的是数据库乐观锁,但是在并发较大时性能不太乐观。后来重构考虑使用 Redis 来实现分布式锁,采用了 Spring 的 RedisL