自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小鱼儿的专栏

勿忘初心 方得始终

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 JAVA8中关于Map新增computeIfAbsent方法的使用

JAVA8中关于Map新增computeIfAbsent方法的使用目录computeIfAbsent的语义使用说明源码解析目录computeIfAbsent的语义从map中根据key获取value为空,会将第二个参数的返回值存入并返回使用姿势map.computeIfAbsent("list", key -> Lists.newArrayList())使用说明如果不使用computeIfAbsent方法,java中的使用场景是什么样子的public Object computeIfA

2021-08-17 23:29:50 1482

原创 gradle学习笔记三:使用IDEA创建Gradle程序

### 前言在平常工作中,使用最多事IDEA开发,不可能说使用终端命令行就能高效率的完成一个应用的开发。在上一篇中熟悉了Gradle构建的Java应用程序的基本结构,本篇来记录一下如何使用Intelli IDEA创建一个Gradle程序

2020-04-28 22:08:49 427

原创 gradle学习笔记二:使用Gradle构建Java应用程序

### 前言首先,我也是一个Gradle小白,目前所了解到的Gradel是个自动化构建工具,可以帮助我们自动管理依赖,编译、打包程序。至于它的优缺点以及工作流程并不是很熟悉。正是因为如此,才需要系统的学习gradle。个人认为一个技术或者一个框架,如果经常使用它,系统的去学习是最快掌握它的方法。

2020-04-28 21:57:01 1080

原创 gradle学习笔记一:安装gradle

不同环境下(Linux、Mac、Windows)的Gradle安装

2020-04-24 00:07:51 363

原创 Centos7下安装JDK8 无需Oracle登录

下载jdk1.8由于现在下载jdk需要登录Oracle账户,可直接使用网盘下载:https://sn9.us/file/21580407-406977967下载完成后,解压并移动到opt目录下[root@bogon xiaoyuer]# tar -xzvf jdk-8u231-linux-x64.tar.gz [root@bogon xiaoyuer]# mv jdk1.8.0_231/ ...

2019-11-11 23:32:31 782

原创 Zookeeper Java API (二) zk节点内容的操作和节点的删除

获取节点内容获取节点内容的方法定义public byte[] getData(String path, boolean watch, Stat stat)其中: - path:要获取内容的节点路径 - watch:是否设置监控,也就是是否需要回调 - stat:节点状态 使用示例(异常自行处理)/** * 根据节点路径获取节点内容 * * @param pat...

2018-04-07 22:50:09 5196

原创 Zookeeper Java API (三) zk节点的通知(Watcher)和回调(CallBack)

Zk中的通知(Watcher)ZooKeeper中实现对接点的监控,需要实现Watcher接口类,实现其中的process方法public class WatcherDemo implements Watcher{ public void process(WatchedEvent event) { }}WatcherEvent对如下状态进行监听 1. ZooK...

2018-04-07 22:48:30 4736 3

原创 Zookeeper Java API (一) 创建Zookeeper连接和节点创建

添加Maven依赖<dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.11</version></dependency&g

2018-04-05 18:03:34 4439 1

原创 java多线程十二 闭锁CountDownLatch

CountDownLatchCounyDownLatch是一个同步类,他允许一个或多个线程一直等待,直到其他线层的操作执行完成后再去执行。 A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads com...

2016-11-23 22:54:40 1797

原创 Java多线程十一 Exchanger

Exchanger类介绍1. Exchanger是一个同步类2. 在而且只能在两个线程之间进行数据交换3. 当一个线程到达exchange()调用点时,阻塞等待另外一个线程到达等待点,然后交换数据继续各自的执行4. 可以看做是一个双向的同步队列5. 应用于基因算法和流水线设计

2016-11-23 22:52:38 582

原创 java多线程十 Semaphore

1. Semaphore是一个计数信号量,允许n个任务同时访问某个资源2. 如果没有达到可允许的线程数量,当前使用acquire()方法获取许可,使用release()方法再访问完后释放许可3. Semaphore并不存在真正的允许对象(permit objects),仅仅是维护了一个允许访问的数量集

2016-11-23 22:50:55 776

原创 java多线程九 栅栏CyclicBarrier

CyclicBarrier是一个同步工具类,它允许一组线程在到达某个栅栏点(common barrier point)互相等待,发生阻塞,直到最后一个线程到达栅栏点,栅栏才会打开,处于阻塞状态的线程恢复继续执行.它非常适用于一组线程之间必需经常互相等待的情况。CyclicBarrier字面理解是循环的栅栏,之所以称之为循环的是因为在等待线程释放后,该栅栏还可以复用

2016-11-23 22:49:42 8496 2

原创 java多线程八 join()方法解析

理解join()方法首先先看一个例子:public class JoinDemo implements Runnable { private static int n = 0; public void run() { for (int i = 0; i < 5; i++) { n += 1; } } public s

2016-11-23 22:48:40 558

原创 Java多线程七:线程调度(休眠)sleep()

线程休眠线程休眠的目的是使线程让出CPU的使用权.当线程休眠时,会将CPU资源的使用交给其他线程,以便能够线程之间的轮换调用.当休眠一定时间后,线程就会苏醒,然后进入准备状态等待执行.sleep()函数如何让一个线程休眠.有两种方法,一是使用Thread.sleep(long millis)或者Thread.sleep(long millis, int nanos)方法.另一个是使用TimeUnit

2016-10-24 20:48:42 10275

原创 Java多线程六:线程优先级和yield()让步函数

可以看出,不管优先级和yield()函数都是试图控制线程的顺序执行.但是我们需要注意的一点是,在java中没有任何机制可以保证线程的执行顺序,两种做法只不过是增加了线程之间切换的几率而已.,

2016-10-24 20:47:07 4016 5

原创 Java多线程五:后台线程

后台线程下面是一个后台线程的例子:public class SimpleDaemons implements Runnable { public void run() { try { while (true) { TimeUnit.MILLISECONDS.sleep(100); Syste

2016-10-24 20:45:37 665

原创 Java网络编程基础

异常类型在了解Socket的内容之前,先要了解一下涉及到的一些异常类型。以下四种类型都是继承于IOException,所以很多之后直接弹出IOException即可。 - UnkownHostException:主机名字或IP错误 - ConnectException:服务器拒绝连接、服务器没有启动、(超出队列数,拒绝连接) - SocketTimeoutException:连接超时 - B

2016-10-24 20:43:40 461

转载 Java网络编程基础概念

网络编程中两个主要的问题如何准确的定位网络上一台或多台主机找到主机后如何可靠高效的进行数据传输在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为流行的网络编程模型是客户机/服务器(

2016-10-12 11:33:05 526

原创 java多线程四:Callable接口解析

Callable接口和Runnable接口首先看一下Runnable接口的定义:@FunctionalInterfacepublic interface Runnable { public abstract void run();}Runnable接口中仅仅定义了一个run()方法,返回值类型为void,当线程启动,任务执行完成后无法返回任何结果。现在看一下Callable接口的定义:@

2016-09-26 18:27:17 770

原创 Java多线程三:线程池和Executors类解析

线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。一个线程池包括以下四个基本组成部分: 1. 线程池管理器(ThreadPool):用于创建并管

2016-09-26 15:05:36 757 3

原创 Java多线程二:Thread类介绍

类介绍首先看一下JavaDoc中对该类的介绍:1. Thread类表示程序中的一个可执行线程,java虚拟机允许程序中存在多个线程同时运行2. 每个线程都存在优先级,优先级高的线程比优先级低的线程更有几率得到线程。其实然并卵3. 线程可以声明为后台线程,通过后台线程声明和创建的线程也是后台线程4. 通过某个线程创建的线程拥有当前线程相同的优先级

2016-09-25 19:25:47 433

原创 Java多线程一:创建线程

Java中线程的创建一般有如下三种方法: 1. 继承Thread类,覆写run()方法 2. 实现Runnable接口,重写run()方法 3. 实现Callable接口,重写cal()方法继承Thread类public class MyThread1 extends Thread { @Override public void run() { System.ou

2016-09-25 17:21:07 558

原创 ZooKeeper客户端Curator使用一 创建连接

如何创建一个ZK连接工厂方法newClient()public static void main(String[] args) { final String connectString = "127.0.0.1:2181"; RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFrame

2016-08-23 19:32:52 12611 5

原创 ZooKeeper的数据结构模型和特点

前面几篇博客学写了ZooKeeper的安装,集群部署,以及常用命令,那么现在来看一下ZooKeeper的数据模型以及适用的场景.ZK的数据结构模型ZooKeeper会会维护一个具有层次关系的数据结构,非常类似于一个标准的文件系统,如下图所示: ZK的数据结构特点ZooKeeper这种数据结构有如下这些特点: 1. 每个子目录项如NameService都被称作znode,这个znode是被它所在的

2016-08-23 19:31:20 5771 1

原创 zookeeper在linux centos7下的集群介绍和配置

Zookeeper 有三种运行模式:单机模式、伪集群模式和集群模式。单机模式单机模式,顾名思义,只有一个zookeeper实例,我们安装完成并且启动zk,就是一个单机模式. 具体步骤和上一篇博客zookeeper的安装过程类似. 1. 首先保证已安装Java运行环境 2. 下载ZooKeeper安装包,可以去ZooKpper官网下载最新的Stable版本,并解压到指定目录 3....

2016-08-11 23:33:30 2818

原创 zookeeper安装与常用指令详解

ZooKeeper安装首先保证已安装Java运行环境下载ZooKeeper安装包,可以去ZooKpper官网下载最新的Stable版本,并解压到指定目录配置zoo.cfg 解压成功后,在conf文件夹下复制一份新的zoo_sample.cfg并重新命名为zoo.cfg具体操作流程如下# cd /opt //安装到opt目录下# wget http://mirror.bit.edu.c

2016-08-08 21:47:28 6104

原创 Java正则表达式Matcher.group(int group)相关类解析

在Java正则表达式的相关类Matcher中,有如下几个方法: - int groupCount() - String group(int group) - int start(int group) - int end(int group) - String group(String name) - int start(String name) - int end(String nam

2016-08-02 20:35:56 26328 3

原创 Java正则表达式Pattern.quote()方法详解

使用示例String pattern = Pattern.quote("1252343% 8 567 hdfg gf^$545");System.out.println("Pattern is : "+pattern);输出结果为 Pattern is : \Q1252343% 8 567 hdfg gf^$545\E方法解释在使用quote()方法之后,原有的字符串s变成了\Qs\E的样式,那

2016-07-27 22:18:20 21931 2

原创 Java正则表达式Pattern和Matcher类详解

概述Pattern类的作用在于编译正则表达式后创建一个匹配模式.Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配Pattern类常用方法及介绍Pattern complie(String regex) 由于Pattern的构造函数是私有的,不可以直接创建,所以通过静态方法compile(String regex)方法来创建,将给定的正则表达式编译并赋予给Patter

2016-07-27 22:14:47 79827 7

原创 StringTokenizer类详解

StringTokenizer类是一个用来对String进行分词编辑的应用类,类似于Java String 类中的split函数.构造函数StringTokenizer提供了三个构造参数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(S

2016-07-21 22:34:27 6514 4

原创 spring security起步六:基于数据库的用户认证

在前面的例子中,我们的用户都是存放在内存中,现在就来实现spring security基于数据库的用户认证功能。配置数据源dataSource首先,这里使用的数据库连接池为druid,数据库为mysql,所以pom.xml需引入相应的jar包<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactI

2016-07-19 20:49:55 5770 5

原创 spring security起步五:Remember Me功能实现

spring security remember mespring security 自动登录

2016-07-15 22:59:55 8957 2

原创 spring security起步四:退出登录配置以及logout属性详解

用户退出登录实质是使当前登录用户的session失效的操作。一般来说,用户退出后,将会被重定向到站点的非安全保护页,比如登录页面.用户退出功能实现增加hader.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="htt

2016-07-15 22:55:58 49848 6

原创 spring security起步三:自定义登录配置与form-login属性详解

spring security 自定义登录页spring security custom login 404 Not Foundspring security 自定义登录 405 method not supported

2016-07-12 23:04:07 91862 12

原创 spring security起步二:自定义登录页

在上一篇文章 spring security 起步:框架搭建 最后,我们可以看到spring security自动为我们生成了一个默认的登录页。首先呢 那个登录页太丑,其次呢登录时我们也想实现一些其他的功能:比如找回密码,Remember me等。那么 我们如何实现自定义登录页功能呢?添加登录页实现登录的Controller配置spring security

2016-07-07 00:43:50 9062

原创 spring security 起步一:框架搭建

spring security 基础框架搭建

2016-06-29 22:25:45 5763 2

原创 《maven 实战》笔记

《Maven实战》笔记一:创建HelloWorld《Maven实战》笔记二:使用Archetype生成项目骨架《Maven实战》笔记三:使用MyEclipse创建Maven项目

2016-06-29 22:23:49 1047

原创 使用http协议访问svn

使用http方式访问svn

2015-12-07 21:53:23 18983 1

原创 svn在Linux环境下仓库的创建与权限访问

1.创建仓库1.1svn create 创建仓库语法:svnadmin create /directory我是在home/svnrepo下新建myproject仓库cd /homemkdir svnreposvnadmin create /home/svnrepo/myproject仓库创建成功以后,会出现一个仓库名字的文件夹 文件夹下面有以下几个文件和目录

2015-10-30 11:03:52 14113 1

原创 CentOS上subversion的安装与卸载

一安装subversion在Linux控制台中输入yum install subversion 安装subversion安装完成后使用svn --version 检查svn版本号 如出现以下类似信息证明安装成功二创建svn仓库如下图所示 在home目录下新建repo仓库

2015-10-22 15:57:53 10741

汽车管理营销系统

登陆管理,用户管理,密码修改,良好的界面

2013-03-29

空空如也

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

TA关注的人

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