随笔分类 -  Java

摘要:前言 在Java并发编程中,volatile关键字有着至关重要的作用,在面试中也常常会是必备的一个问题。本文将会介绍volatile关键字的作用以及其实现原理。 volatile作用 volatile在并发编程中扮演着重要的角色,volatile是轻量级的synchronized,volatile关 阅读全文
posted @ 2019-09-05 21:58 happyjava 阅读(516) 评论(0) 推荐(1) 编辑
摘要:图片若无法显示,可至掘金查看 "https://juejin.im/post/5d425230f265da039519d248" 前言 在阿里Java开发手册中,有这么一条建议:慎用 Object 的 clone 方法来拷贝对象。对象 clone 方法默认是浅拷贝,若想实现深拷贝需覆写 clone 阅读全文
posted @ 2019-08-03 14:56 happyjava 阅读(989) 评论(0) 推荐(0) 编辑
摘要:前言 Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情。当前,前提是得有Docker的基础。 源码在文末 文末有项目源码的github地址 构建一个SpringBoot项目 本人最早的一篇文章,就是教大家如何 阅读全文
posted @ 2019-07-18 13:53 happyjava 阅读(2958) 评论(0) 推荐(0) 编辑
摘要:什么是循环依赖 当一个ClassA依赖于ClassB,然后ClassB又反过来依赖ClassA,这就形成了一个循环依赖: ClassA ClassB ClassA 原创声明 本文发布于掘金号【Happyjava】。Happy的掘金地址: "https://juejin.im/user/5cc2895 阅读全文
posted @ 2019-07-18 13:52 happyjava 阅读(6262) 评论(0) 推荐(2) 编辑
摘要:若图片查看异常,请前往掘金查看: "https://juejin.im/post/5d1dee34e51d4577790c1cf4" 前言 JWT(json web token)的无状态鉴权方式,越来越流行。配合SpringSecurity+SpringBoot,可以实现优雅的鉴权功能。 关于Spr 阅读全文
posted @ 2019-07-18 13:50 happyjava 阅读(3342) 评论(0) 推荐(0) 编辑
摘要:前言 在开发中,我们常常需要对一个引用进行判空以防止空指针异常的出现。Java8引入了Optional类,为的就是优雅地处理判空等问题。现在也有很多类库在使用Optional封装返回值,比如Spring Data JPA等。下面,我们就来了解下Optional的常用用法 原创声明 本文发布于掘金号【 阅读全文
posted @ 2019-07-18 13:49 happyjava 阅读(976) 评论(0) 推荐(0) 编辑
摘要:前言 开发中,我们常常需要在最后进行一些资源的关闭。比如读写文件流等,常见的,我们会在最后的finally里进行资源的关闭。但是这种写法是很不简洁的。其实,早在JDK1.7就已经引入了try with resources来关闭资源的方式,我们今天就来体验一下try with resources的简洁 阅读全文
posted @ 2019-07-18 13:48 happyjava 阅读(3293) 评论(1) 推荐(1) 编辑
摘要:前言 在开发中,相信大家都使用过Spring的事务管理功能。那么,你是否有了解过,Spring的事务传播行为呢? Spring中,有7种类型的事务传播行为。事务传播行为是Spring框架提供的一种事务管理方式,它不是数据库提供的。不知道大家是否听说过“不要在service事务方法中嵌套事务方法,这样 阅读全文
posted @ 2019-07-18 13:47 happyjava 阅读(17938) 评论(0) 推荐(6) 编辑
摘要:前言 在开发中,有时候会碰到把多个参数,或者说把数组转成List的需求,通常我们会使用 Arrays.asList()方法。但是该方法在使用的过程中,稍有不慎就会出现严重的异常。有如下代码: 运行之后,出现了异常: 阿里Java规约中的强制性要求 在阿里Java规约中有强制性的要求:使用工具类 Ar 阅读全文
posted @ 2019-07-18 12:19 happyjava 阅读(303) 评论(0) 推荐(0) 编辑
摘要:前言 之前写过一篇序列化相关的文章,今天要讲的这个文件自transient也是跟序列化有关系的。但是,挺多人没有了解过该关键字甚至是不知道该关键字的存在。 transient关键字介绍 在Java中,当一个类实现了java.io.Serializable接口,即表明了该类可以被序列化。我们可以把该类 阅读全文
posted @ 2019-07-18 12:15 happyjava 阅读(359) 评论(0) 推荐(0) 编辑
摘要:前言 线程池,相信很多人都有用过,没用过相信的也有学习过。但是,线程池的拒绝策略,相信知道的人会少许多。 四种线程池拒绝策略 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize时,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略: 线程池默认的拒绝策略 既然有 阅读全文
posted @ 2019-07-18 12:10 happyjava 阅读(1760) 评论(0) 推荐(0) 编辑
摘要:简介 Java内存模型英文叫做(Java Memory Model),简称为JMM。Java虚拟机规范试图定义一种Java内存模型来屏蔽掉各种硬件和系统的内存访问差异,实现平台无关性。 CPU和缓存一致性 讲JMM之前,我们应该先了解下CPU和缓存一致性的问题。计算机在执行程序的时候,每条指令都是在 阅读全文
posted @ 2019-07-18 12:10 happyjava 阅读(200) 评论(0) 推荐(0) 编辑
摘要:前言 在阿里Java开发规约中,有强制性的提到SimpleDateFormat 是线程不安全的类 ,在使用的时候应当注意线程安全问题,如下: 其实之前已经介绍过使用JDK1.8的DateTimeFormatter 和LocalDateTime来处理时间了,还在用SimpleDateFormat?Ja 阅读全文
posted @ 2019-07-18 11:23 happyjava 阅读(1221) 评论(0) 推荐(0) 编辑
摘要:单例模式简介 单例模式是 Java 中最简单,也是最基础,最常用的设计模式之一。在运行期间,保证某个类只创建一个实例,保证一个类仅有一个实例,并提供一个访问它的全局访问点。下面就来讲讲Java中的N种实现单例模式的写法。 饿汉式 这是实现一个安全的单例模式的最简单粗暴的写法,这种实现方式我们称之为饿 阅读全文
posted @ 2019-07-18 11:23 happyjava 阅读(46154) 评论(4) 推荐(9) 编辑
摘要:serialVersionUID简要介绍 serialVersionUID是在Java序列化、反序列化对象时起作用的一个字段。Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实 阅读全文
posted @ 2019-07-18 11:18 happyjava 阅读(1475) 评论(0) 推荐(0) 编辑
摘要:前言 分布式锁,其实原理是就是多台机器,去争抢一个资源,谁争抢成功,那么谁就持有了这把锁,然后去执行后续的业务逻辑,执行完毕后,把锁释放掉。 可以通过多种途径实现分布式锁,例如利用数据库(mysql等),插入一条记录(唯一索引),谁插入成功,谁就持有锁;还可通过zookeeper来实现分布式锁,谁创 阅读全文
posted @ 2019-07-18 11:13 happyjava 阅读(33695) 评论(0) 推荐(5) 编辑
摘要:说明 集合和数组是我们经常会用到的数据结构,在jdk1.8之前,集合和数组的处理并不是很便捷。但是到了JDK1.8之后,使用Stream处理集合会使代码变得更加的简洁明了。作为一名开发者,其实很有必要学习新特性的用法,即使是说项目中没有采用。虽然JDK1.8已经发布数年,但是还是发现很多人都不会使用 阅读全文
posted @ 2019-07-18 11:12 happyjava 阅读(3071) 评论(0) 推荐(0) 编辑
摘要:前言 在实际开发中,有些代码是重复的、IDE一键生成的,不写不行,写了又觉得代码太臃肿,不美观。如果你也有这种体会,那么,请使用Lombok插件吧,真的非常好用。Lombok的使用也非常简单,都是各种各样的注解。 引入依赖 IDEA安装Lombok插件 单单引入Lombok的包还是不够的,ide会识 阅读全文
posted @ 2019-07-18 11:11 happyjava 阅读(4336) 评论(0) 推荐(0) 编辑
摘要:前言 Java8发布,已有数年之久,但是发现很多人都还是坚持着用SimpleDateFormat和Date进行时间操作。SimpleDateFormat这个类不是线程安全的,在使用的时候稍不注意,就会产生致命的问题。Date这个类,是可以重新设置时间的,这对于一些类内部的属性来说,是非常不安全的。 阅读全文
posted @ 2019-07-18 11:04 happyjava 阅读(3820) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示