• 等级
  • 513658 访问
  • 233 原创
  • 40 转发
  • 5370 排名
  • 135 评论
  • 196 获赞

JUC框架 (二) CountDownLatch、CycleBarrier、Semaphore 工具类

前言在Java多线程(三)线程通信内我们介绍了可以使用join()方法来控制某个线程在一众线程后执行.正这一节中,我们将介绍三种工具类,同样实现这一目标.三种工具使用场景各部相同.本章主要分为如下几个部分:CountDownLatch类CycleBarrier类Semaphore类正文join()方法实现在前文中,我们提及.使用join()方法可以非常容易的实现这部分...

2019-03-20 02:28:21

JUC框架 (一) 原子类 与 CAS操作

前言在前四个模块中,我们主要介绍了Thread类、synchronized与volatile关键字、线程通信、ReentrantLock锁.本节我们将介绍Java中的原子操作.本章主要包括如下几个部分:原子更新基本类型原子更新数组原子更新引用类型原子更新字段类正文原子更新基本类型AtomicBooleanAtomicIntegerAtomicLong//Int...

2019-03-20 01:48:14

Java 多线程(四) 锁与锁机制

前言在Java多线程(二)Synchronized与Volatile关键字内我们介绍了synchronized关键字,以及与锁之间的关系.在本章中,我们将继续介绍这部分的内容同时,我们可以解决在Java多线程(三)线程通信中提及的,无法唤醒某个特定线程的问题.(Condition类进行解决)此外我们还将介绍读锁与写锁,以及它们的优势.本章的主要内容如下所示:ReentrantL...

2019-03-20 00:59:17

Java 多线程(三) 线程通信

前言在前一章我们介绍了线程中较为重要的几个关键字synchronized与volatile.synchronized关键字主要是用于标示线程的同步关系与锁.volatile主要是用于将线程内的局部变量与进程总变量之间的交互关系.本文我们将介绍下线程之间的相互通信.本章主要包括如下的几个部分的内容:wait()方法与notify()方法join()方法经典的生产者&消费者实现T...

2019-03-19 16:31:51

Java 多线程(二) Synchronized与Volatile关键字

前言在上章中,我们介绍了JavaThreadAPI.本章我们介绍下Java中的Synchronized与Volatile关键字.在本章中,我们将介绍如下的几个模块:Synchronized关键字线程安全问题synchronized关键字的使用对象锁与类锁Synchronized关键字修饰final类型的变量&静态变量Volatile关键字Volatil...

2019-03-19 01:46:03

[Java基础] 如何保留两位小数

前言前段时间在处理float类型的数据的时候,发现在float/double类型的数据输出时,总会遇到这样的问题.例如:1.000000000005.问题:1.位数过多,看起来比较难受;2.最后的尾数有偏移.解决办法:将尾数四舍五入;将位数进行截断.正文如何保留2位小数字?使用BigDecimal的setScale()方法;使用System.out.println...

2019-03-18 11:38:03

Java 多线程(一) Thread API 基础

前言Java自开发之初就具有多线程多特性,其于JDK1.5又增添了java.util.concurrent内增添了非常多的多线程组件.于本章之中,我们优先总结下在Java初期,我们经常使用的JavaAPI.其中,虽然stop()等方法已经废弃,我们仍然将其提出,并且提出其优/缺点.Java中主要的API有如下几部分内容:线程的创建-Thread类与Runnable接口线程的...

2019-03-18 01:37:15

局域网内的服务器搭建(VMware)

前言在实践大数据过程中,苦于没有集群的环境,今天准备仔细搞一搞.本章主要记录下本次操作的具体步骤.安装VMwareWorkstation安装虚拟机配置虚拟机网络和网络类型安装VMwareWorkstation在Windows操作系统上安装.虚拟机操作系统.下载地址:http://www.ddooo.com/softdown/25526.htm注册号:1F04Z-6D1...

2019-03-17 23:22:48

Maven 总章

前言Maven是一个用于包管理、发布部署的一个工具.相同的类型的工具还有Ant,Gradle.本教程内所涉及的资源都可以在此项目内找到:https://github.com/SeanYanxml/maven-trainPS:记得我解除的第一个任务就是打包,曾经对于发现JarInJar的方式研究了一整个晚上.正是基于Maven的理解,之后,项目内部署包以及后面的脚本都是交与我来完成....

2019-03-13 19:36:54

Maven 打包实战

前言上一章,我们介绍了Maven内的常见插件.Maven的主要作用是用于包的管理和依赖.其次,根据Maven的生命周期可以知道,它还可以作为一个运维和打包、部署的工具而存在.本章我们将详细的介绍Maven打包以及打包的各种情况.PS:本文所用的Maven例子可以在我的Github仓库内找到https://github.com/SeanYanxml/maven-trainJar包所...

2019-03-13 19:14:04

Maven 常见插件

前言上章我们了解了Maven的基础命令和生命周期.本章我们详细的聊聊插件,为后面的打包做基础.插件所有的插件配置都是写在pom.xml文件的<build>目录之间的.我们常见的Maven插件如下所示:maven-compiler-pluginJDK版本和编码<plugin> <artifactId>maven-compiler-plugin...

2019-03-13 13:47:13

Maven 基础命令与生命周期

前言前面几章,我们介绍了Maven的安装和使用方法.本章开始,我们介绍下,如何使用Maven来完成我们需要的打包操作.基本命令本章我们继续使用maven-train-parent-util项目进行演示.Maven基本的操作命令主要有:mvnclean清除依赖的Jar包,重新装载mvnpackage使用Maven进行打包mvninstall将该项目部署到本地仓库内mvn...

2019-03-12 20:47:38

Maven的聚合和依赖

前言前几章我们介绍了Maven的基本安装和使用.本章我们将介绍下Maven的聚合和依赖.在一个复杂的项目内,我们经常会遇到聚合和依赖问题.(PS:我们上章所说的Jar包的引用其实就是依赖的一种.)PS:本文所用的Maven例子可以在我的Github仓库内找到https://github.com/SeanYanxml/maven-train聚合一般的大型项目都会分为多个子项目,例如...

2019-03-12 20:12:29

Maven 基本使用与远端仓库配置

前言在前章介绍如何[安装Maven](Maven安装和配置)后,本章继续介绍如何高效的使用Maven帮助我们进行开发.于Maven真正使用之前,我们通常需要安装一些Maven的插件,帮助我们快速使用和开发.EclipseMaven开发工具的导入请看EclipseMaven插件&Tomcat插件.(PS:IDEA的安装教程自行百度)PS:本文所用的Maven例子可以在我的G...

2019-03-12 18:32:20

Maven 安装和配置

前言想必都有体会过管理Jar包的痛苦,和包版本不一,版本冲突的痛苦.为此,Java开发者创建了Maven用于管理开发过程中的Jar包依赖和使用.本章主要介绍Maven的安装和配置.Brew安装Mac用户可以使用brewinstallmaven进行安装.手动安装下载相关Jar包前往Maven的官网的下载页面.选择apache-maven-3.6.0-bin.zip或ap...

2019-03-12 17:48:11

Eclipse Maven插件&Tomcat插件

前言有段时间没有使用Eclipse创建Server程序在Tomcat内运行了.由于SpringBoot的普及,已经好久没有手动的将程序部署在Tomcat内进行运行了.由此,借此机会将插件的安装和使用做法一一记录如下,防止忘记.本章节主要包含如下几个内容:Eclipse内Maven插件的安装和使用Eclipse内Tomcat插件的安装和使用Eclipse内如何创建一个Maven项目...

2019-03-12 16:11:36

git log 数据统计 与 git blame 代码作者查询

前言之前,有次比较好奇某段代码由谁编写的,以及每个人的代码编写量.于是查了下,发现gitblame命令和gitlog命令.需要注意的是gitlog统计有可能由误差(比如空行,或者其他非代码文件也会当作统计)代码量和个人的贡献不成正比,正比如代码提交次数不能直接反应一个人的编写代码的能力一样.(有可能这家伙只是个救火队员.)gitlog统计gitlog有时可以用...

2019-03-11 21:14:20

[实战算法] 算法练习题汇总(总章)

前言说来惭愧,工作2年多,对于算法方面是一点都没有进步。反而有点退步。本章意在重启当初的算法练习题.看样子,当初欠下的技术债还是要还.练习地址:https://www.nowcoder.com/activity/oj项目地址:https://github.com/SeanYanxml/arsenal/tree/master/arsenal-java/arsenal-algorithm...

2019-03-05 14:59:54

[Drools Demos] 其 (四) : SpringBoot-Drools模板

前言前几节我们说了Drools的快速启动、数据传递和动态加载.本章我们提供一个简单的Drools-SpringBoot实例模板.本章主要对应项目内的drools-springboot-dynamic内容.基础配置:JDK1.7+EclipseMar+Maven依赖:Drools插件(非必须)本章主要对应项目内的drools-quickstart子模块.Github地址...

2019-02-23 01:17:10

[Drools Demos] 其 (三) : 动态加载规则文件

前言本章主要探讨Drools的动态加载.有很多时候,规则文件是存储在数据库或其他地方,这就要求我们对于Drools规则文件的装配过程和装配过程中关键的几个对象非常熟悉,例如:KieFileSystem/KieModule/KieBase/KieContainer/KieSession....本章主要对应项目内的drools-filesystem内容.基础配置:JDK1.7...

2019-02-23 01:14:19

博客专家

在风中的意志

我命由我不由天。
关注
  • 计算机软件/Java软件工程师
  • 中国 上海 闸北区
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒