自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 单例模式

单例模式懒汉式在真正使用时才实例化package com.ziwu.learn.designpattern.singleton;public class LazySingleTest { public static void main(String[] args) { //多线程 new Thread(()->{ ...

2020-01-07 20:37:29 155

原创 redis:01入门指南以及在springboot中使用redis

https://redis.io/downloadstep1:参考官网的安装很简单wget http://download.redis.io/releases/redis-5.0.6.tar.gztar xzf redis-5.0.6.tar.gzcd redis-5.0.6makestep2:make完成之后当前目录下会有一个redis的配置文件redis.conf为了后续能在...

2019-11-18 19:34:19 189

原创 java多线程-(无锁)CAS算法基础

通过cas算法来控制并发级别,这种无锁的实现相比阻塞等待效率要高出很多,CAS算法的过程大致如下:CAS(V,E,N)包含这样的三个参数,V表示要更新的值,N表示新值,E表示预期值,只有当N=E时才会将值更新位N,如果N!=E则说明有其他线程更新了值,不做更新。最终会返回当前V的真实值。多线程中同时操作一个变量时,只有一个会更新成功。CAS操作之所以是线程安全的是基于CPU的cmpxchg(比...

2019-11-17 18:49:17 154

原创 java多线程-(happen-before原则)

happen-before(生效可见于,并非字面的先行执行)程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。 监视器锁规则:解锁happens-before于加锁。 volatile变量规则:volatile变量的写,先发生于读,这保证了volatile变量的可见性 传递性:A先于B,B先于C,那么A必然先于C start规则:线程的...

2019-11-09 18:21:08 306

原创 java多线程-原子性,有序性,可见性

1:原子性是指一个操作是不可中断的。即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。原子操作一定是线程安全的。(32位机器读取64位的数据类型也不是原子操作)2:有序性并发程序,在执行的时候有可能会乱序,操作系统在执行指令的时候会进行一定的优化3: 可见性指的是一个线程修改了共享内存的值,另一个线程是否感知的问题。比如出现指令重排后就会造成变量的可见性...

2019-11-09 17:57:51 119

原创 java多线程-线程的同步

在java中要实现多线程之间的同步操作主要有如下两种方式:synchronized关键字和对象的wait()和notify()/notifyAll();首先来看一下synchronized关键的字的使用作用范围:给指定对象加锁,在进入同步代码块前需要先获得指定对象的锁package com.ziwu.learn.thread;public class TestLock impl...

2019-10-27 14:30:33 151

原创 java多线程-Thread类的一些基本API

1 @Deprecated(since="1.2")Thread.stop()该方法被声明为废弃方法,不推荐使用,该方法过于暴力,强制结束。该方法会释放它所有的监视器锁,可能会导致数据不一致的问题,举个简单的例子比如i++操作,在一个线程读取I值后被stop掉,其他线程在读取I之后取到的结果是未被写入的结果。2Thread.sleep(long millis[,nanos])使当前正...

2019-10-23 21:29:06 129

原创 java多线程-基本的操作及状态分析

1,如何创建线程​​public static void main(String[] args) { Thread thread1 = new Thread(){ @Override public void run(){ System.out.println("thread1 is run")...

2019-10-23 07:28:34 99

原创 java多线程-基础知识

为了很好的利用多核处理器的性能,并行开发的收益也随之越来越高,为此针对多线程作了一些总结1,临界区:临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待。(加锁就是限制临界区的访问)2,锁死锁(A-B-C-D-A-B-C-D...);活锁(面对面让路问题,通常因为处...

2019-10-20 22:07:52 181

原创 快速搭建svnserve服务指南

step1:在linux环境下进行安装:yum -y install svnservestep2:创建仓库的根目录:mkdir -p /application/svndata(数据目录),mkdir -p /application/svnauth(权限配置文件)step3:创建版本仓库:svnadmincreate /application/svndata/teststep4:修改...

2019-10-14 21:17:40 232

原创 rocketMQ实战(四): hello world

step1:pom文件中引入依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.0.0-incubating</version>&amp

2018-06-06 22:06:03 391

原创 rocketMQ实战(三):可视化界面三分钟安装

step1:从开源项目https://github.com/apache/rocketmq-externals下载代码到本地step2 : 解压后进入rocketmq-console目录,cmd到此目录,执行mvn package(为避免麻烦直接删除src下的test目录)step3 : 拿到jar包后直接部署这是一个springboot工程,上传rocketmq-console-ng-1.0.0...

2018-06-05 22:20:28 2992

原创 rocketMQ实战(二):部署

rocket的部署模式:    1、单master部署    2、多master部署    3、多master多slave(异步复制):宕机会有少量消息丢失,性能高(消息投递到一个master后会异步将消息复制到其他master,消息只要投递到一个Master就算投递成功,但是当一个master宕机后可能存在消息还没有复制的情况,所以可能会造成消息丢失)    4、多master多slave(同步...

2018-06-03 20:57:28 324

原创 rocketmq(broker配置参数设置)不断更新中

brokerClusterName=DefaultClusterbrokerName=broker-anamesrvAddr=192.168.1.101:9876brokerId=0deleteWhen=04fileReservedTime=48brokerRole=ASYNC_FLUSHflushDiskType=ASYNC_FLUSHlistenPort=10911autoCreateTopi...

2018-06-03 19:02:11 10449

原创 rocketMQ实战(一):基本概念及结构框架介绍

rocketMQ在设计初就支持集群部署,在高并发场景有着十分广泛的应用。首先来看看rocketMQ官网的一个设计框架图如官网所介绍的那样,rocketMQ由四个部分组成:nameServer、broker、producer和consumer。它们中的每一个都可以水平扩展而不会出现单点故障。nameServer提供轻量级的服务发现和路由。每个nameServer都记录完整的路由信息,提供相应的读写服...

2018-06-03 15:58:37 893

原创 个人编程之路的一些思考和问题的总结

今夜三点失眠至此,回顾一下自己编程三年以来的心路历程。 自我评估应该算是对技术有着执念的人吧。三年期间断断续续购买计算机书籍花费1万多。不怕笑话,自己看过的书不足20本,很多书都是被当时的好奇心所驱而买。至今无大成,故而反思自己为什么没有遇见心想事成的自己。 三年长胖了50斤,因为我认为工作本已经很繁忙,应该将业余时间充分用在阅读上,晚上也时常熬夜12点看书。看汇编,看C语言,看java,看pyt

2018-01-19 06:12:07 442

原创 sublime常用插件及其快捷键

使用 Ctrl + Shift + P 调出面板,选中“Package Control: Install Package”并回车,然后通过输入插件的名字找到插件并回车安装即可。1:Emmet 提供html和css代码快速编辑   快捷键:Ctrl+E

2018-01-14 12:33:31 719

原创 maven 光速入门攻略06

现在来说一下maven 项目骨架我们回顾一下我们搭建web项目时候曾经做了多少次重复的动作maven 骨架可以让你快速构建你自己的应用本文以spring boot项目的搭建为例来说明一下如何自定义骨架如果我们已有一个spring boot的项目或者一个SSH项目step01:在pom文件中添加maven archetype的插件 org.

2017-09-10 20:24:30 208

原创 spring boot 三分钟构建restful应用

step01:登录spring官方构建网页:http://start.spring.io/ step02:将maven项目解压后导入eclipse如果没有安装maven 运行压缩后的文件夹中的mvnw.cmd即可自动安装(maven简单入门攻略:http://blog.csdn.net/baidu_27622303/article/details/53957075)step03

2017-09-10 15:38:10 783

原创 java 设计模式之动态代理

最近在读曾宪杰的java中间件,这本书还是很值得推荐的,书中讲解的动态代理也是不多哔哔,几句话就说出了重点。下面是一些总结:首先来看一下静态代理业务实现类:package dynamicproxy;public class CalculatorImpl implements Calculator{ @Override public int add(int a, int b)

2017-09-05 00:09:54 136

原创 java 多线程之Future与FutureTask

Future 一个接口代表一个思想:如果调用的算法返回的数据,并且后续计算与这些数据没关系的话,大可不必浪费时间等待其完成。FutureTask 是JDK提供的一个实现类 它接收一个实现Callable接口的业务对象,通常配合线程池一起使用。掌握思想就能够在合适的场合去正确的应用,其实并不难。下面给出简单的示例一看即懂:package demo01;import

2017-08-28 06:39:40 188

原创 java 多线程之Exchanger

Exchanger不会阻塞主线程的执行Exchanger只支持两个线程之间的数据交换两个线程之间无论谁先到达exchange都会阻塞,然后等待另一个线程也到达exchange方法。然后交换数据后继续执行。下面来看一个简单的例子就会使用啦package demo01;import java.util.ArrayList;import java.util.List

2017-08-27 16:37:41 223

原创 选择排序

我一直不提倡去死记算法,只要理解了算法的思想才可以真正掌握在选择排序中,数字列表可以分为两个子列表(已排序的和未排序的)假想他们之间有一个墙进行隔开,每次从墙右边搜索最小元素按顺序赋值要排序的队列。最后左边最终会是全部排序好的元素。顾名思义选择排序的关键就是搜索最小元素的索引后面吧这句话用自己的语言翻译下就显得简单多了        public static

2017-07-31 17:41:14 133

原创 类的设计SOLID原则

简要的记录一下类的设计原则,一个良好的类结构设计会对代码整洁产生相当重要的影响,虽然不提倡过度设计,但一些简单而实用的原则还是需要像对待法律一样去严格遵守。触犯这些原则,总能给我们带来意想不到的麻烦。1:单一职责(single responsible principle)对于一个类,应该仅有一个引起它发生变化的原因2:开放闭合(open closed  principle)类应该对扩展开放

2017-04-24 21:47:27 315

原创 记一次w3c xml解析

package demo01;import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.springframework.util.Assert;import org.w3c.dom.Doc

2017-03-27 18:50:57 177

原创 二分查找

public class BinarySearch{ public static int search(int findKey, int[] target) { int startPoint=0; int endPoint=target.length-1; while(startPoint<=endPoint) { int mid=startPoint+(endPoin

2017-02-07 23:18:05 152

原创 maven 光速入门攻略05

通过入门04系列构建出的一个maven简单的骨架项目   来讲解一些maven的一些初级构建命令           打开命令行:进入D:\TestMaven\helloworld>目录下,也就是和pom.xml文件平级的目录下                         执行mvn complile 命令     (mvn 的编译命令   成功后会在target目录下产生编译

2017-01-08 22:53:21 254

原创 maven 光速入门攻略04

上一节对maven的基本目录结构做了一个简单的介绍,下面开始介绍一个简单的maven构建demoEclipse对maven有很好的集成,实际项目中不会让我们徒手去构建目录。不过为了能够更好的认识maven本章先介绍如何利用mvn archetype:generate 命令来构建一个maven项目archetype(骨架)  第三方开源项目对此有很好的扩展和实现,如果第三方arche

2017-01-03 22:22:11 280

原创 commons-csv的基本操作

本文主要介绍一些关系CSV的基本操作。commons-csv 由两大核心对象组成 CSVParser(解析),CSVPrinter(写csv)下面附上工具类,以及测试类package com.csv.demo;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOu

2017-01-03 22:12:06 7286 1

原创 maven 光速入门攻略03

maven项目的目录结构是固定的,在开始之前先对目录结构有一个简单的了解是十分必要的。下面是官方文档给出的一个maven项目的标准目录结构,必须严格按照目录构建maven项目src/main/javaApplication/Library sourcessrc/main/resourcesApplication/Library resources

2017-01-02 21:54:07 219

原创 maven 光速入门攻略02

初识maven:maven项目的核心是pom.xml(project object model)下面给出一个pom.xml  中的基本元素  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  4.0.0  com.net

2017-01-01 21:25:52 172

原创 maven 光速入门攻略01

不喜欢花哨的格式,喜欢最简单的描述,it`s my style1:安装maven :http://maven.apache.org/download.cgi   下载apache-maven-3.3.9-bin.zip文件,解压到指定目录,然后配置maven环境变量,和jre环境变量设置方式一样,指定到bin目录下 maven就算装好了。  测试:windows cmd命令 :maven

2016-12-31 17:09:35 199

原创 effective java之Buileder模式创建对象

相比工厂模式,更容易扩展类。适用于构建参数比较多的对象缺点:构建繁琐下面给出 effective java中的例子:package buileder;public class Instructions{ private final String dateOfManufacture; private final String validity; private String co

2016-12-29 00:14:12 342

原创 commons-io之LineIterator

BufferedReader 通常在只有读到空格或者换行符时才会结束读取,攻击者很容易构内存攻击导致系统瘫痪,出于安全考虑这里推荐使用io包的LineIterator,并且其在性能上也优于普通流。小面附上小demoLineIterator iterator=FileUtils.lineIterator(new File("C://demo.csv"));        while(iter

2016-12-19 06:49:30 9604 3

原创 《1》数据结构、简明概念

今天第一次写博客好开心、希望能把自己的一些心得分享给真正喜爱计算机的人此博客栏目主要是对《大话数据结构》这本书的读后总结,个人认为这本书还是比较适合初学者入门的,特别是像我这样的~~首先搞清楚数据对象、数据元素、数据项之间的关系,这对后续的学习还是有很大的帮助的。举一个通俗点的例子。比如鸟类就是数据对象;黄鹂、喜剧、鹦鹉就是数据元素;羽毛、眼睛、腿就是数据项数据项可以理

2016-07-04 23:59:09 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除