
Java 多线程开发之原子变量与 CAS 算法(二)
一、前言 {#一、前言} ------------ 在上篇 [《Java 多线程开发之 volatile(一)》](https://51tbox.com/) 文章中介绍了 volatile 的相关内容,它是一个轻量级的锁,但不支持原子操作。 本篇将介绍原子操作相关内容。 二、基本概念 {#二、基本概念} ---------------- ### 2.1 CAS 算法 {...
一、前言 {#一、前言} ------------ 在上篇 [《Java 多线程开发之 volatile(一)》](https://51tbox.com/) 文章中介绍了 volatile 的相关内容,它是一个轻量级的锁,但不支持原子操作。 本篇将介绍原子操作相关内容。 二、基本概念 {#二、基本概念} ---------------- ### 2.1 CAS 算法 {...
一、前言 {#一、前言} ------------ Java 提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。 我们可以将 volatile 看做一个轻量级的锁,但是又与锁有些不同: |---------------|-----------------------------------------| | ``` 1 2 3 ...
```lang-java //获取date日期的开始时间,如2021-01-01 00:00:00 private Long getStartTime(Date date) { Calendar dayStart = Calendar.getInstance(); dayStart.setTime(date); dayStart.set(Calendar...
一、前言 {#一、前言} ------------ 在很多项目中,数据库相关的配置文件内容都是以明文的形式展示的,这存在一定的安全隐患。 在开发和维护项目时,不仅要关注项目的性能,同时也要注重其安全性。 二、实现思路 {#二、实现思路} ---------------- 我们都知道项目启动时,Spring 容器会加载配置文件并读取文件中的内容,那么我们可以下边步骤操作:...
一、前言 {#一、前言} ------------ 本篇主题为行为型模式中的第四个模式--观察者模式。上篇 Java 设计模式主题为 [《Java 设计模式之迭代器模式(十五)》](https://51tbox.com/) 。 二、简单介绍 {#二、简单介绍} ---------------- ### 2.1 定义 {#2.1-定义} 观察者模式是行为模式之一,定义对象...
准备:qq邮箱、邮箱授权码 邮箱授权码生成方式: 进去qq邮箱网页版,设置-\>账户-\> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启所有服务后生成授权码。 至此准备工作完成。 下面上代码: pom.xml文件中添加以下依赖: ```lang-xml <!--邮箱支持 https://mvnre...
一、前言 {#一、前言} ------------ 本篇主题为行为型模式中的第三个模式--迭代器模式。上篇 Java 设计模式主题为 [《Java 设计模式之命令模式(十四)》](https://51tbox.com/) 。 二、简单介绍 {#二、简单介绍} ---------------- ### 2.1 定义 {#2.1-定义} 迭代器模式是行为模式之一,它把对容器...
正在写一个博客系统,需要使用到图片上传功能,但是由于服务器性能太差,直接上传到云服务器需要的时间会让人失去理智,所以找了一个其它云服务商提供的对象存储服务,看到七牛云有10G免费空间,已能满足需求,所以就动手了  直接上代码: ...
实现思路: {#toc_0} -------------- > 1.在github创建access_token > > 2.确定请求路径及发送的数据格式 > > 3.代码实现 *** ** * ** *** 一、在github创建access_token {#toc_1} -------------------------------- *...
一、前言 {#一、前言} ------------ 本篇主题为行为型模式中的第二个模式--命令模式。上篇 Java 设计模式主题为 [《Java 设计模式之模板方法模式(十三)》](https://51tbox.com/) 。 二、简单介绍 {#二、简单介绍} ---------------- ### 2.1 定义 {#2.1-定义} 命令模式将一个请求封装为一个对象,...