自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文心

专注工作 纯粹生活

  • 博客(37)
  • 收藏
  • 关注

原创 Java多线程(9):Lock

在Java多线程中 使用ReentrantLock类也能达到同步的效果使用Condition实现等待/通知在使用notify()/notifyAll()进行线程通知 被通知的线程却是由JVM随机选择的 但是使用ReentrantLock结合Condition类可以实现选择性通知...

2018-06-05 09:22:38 154

原创 Java多线程(8):ThreadLocal的使用

变量值的共享可以使用public static变量的形式 所有的线程都使用同一个public static变量 如果想实现每一个线程都有自己的共享变量该如何解决呢?ThreadLocal 能解决这样的问题类ThreadLocal主要解决的就是每个线程绑定自己的值 可以将ThreadLocal类比喻成全局存放数据的盒子 盒子中可以存储每个线程的私有数据类InheritableThreadLocal的...

2018-06-04 14:37:57 336

原创 Java多线程(7):线程间的通信

1.轮询方式while(true){    // 判断条件}2.wait/notify:改变线程对象的状态:notifyAll()唤醒所有线程通知过早 会打乱程序正常的运行逻辑wait等待的条件发生了变化 也容易造成程序逻辑的混乱条件判断if/while3.管道用于在不同线程间直接传输数据 一个线程发送数据到输出管道 另一个线程从输入管道中读数据 通过使用管道实现不同线程间的通信 而无须借助于类似...

2018-06-04 11:46:37 224

原创 Java多线程(6):synchronized和volatile

非线程安全:多个线程对同一个对象中实例变量进行并发访问 发生的后果就是脏读 也就是取到的数据其实被更改过的线程安全:获取的实例变量经过同步处理 不会出现脏读现象sychronized关键字:关键字synchronized取得的锁都是对象锁 哪个线程先执行带synchronized关键字的方法 哪个线程就持有该方法所属对象的锁Lock 那么其他线程只能等待 前提是多个线程访问的是同一个对象如果多个线...

2018-06-02 11:52:49 127

原创 Java NIO(7):字符集

理解字符映射的工作原理及如何处理多个字符所有文件在底层都是二进制文件 全部都是字节码对于文本文件 之所以看到一个个的字符 系统底层的二进制序列转换成字符的缘故编码:明文的字符序列转化成计算机里的二进制序列(encoder)解码:二进制序列转化为明文字符序列(decoder)Java默认是Unicode字符集字符集?为每个字符编个号码JDK1.4提供了Charset来处理字节序列和字符序列之间的转换...

2018-05-31 06:36:42 692

原创 Java NIO(6):Server和Client案例

Server:package com.tony.app;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectableChannel;impor...

2018-05-30 19:57:39 2519

原创 Java NIO(5):Selectors(选择器)

选择器提供选择执行已经就绪的任务的能力 这使多元I/O成为可能就绪选择和多元执行使得单线程能够有效地管理多个I/O通道尽管SelectableChannel类上定义了register()方法 还是应该将通道注册到选择器上任何一个通道和选择器的注册关系都被封装在一个SelectionKey对象中深入理解选择器:selector内部工作原理选择器维护着注册过的通道的集合 而且这些注册关系中的任意一个都...

2018-05-30 13:33:11 513

原创 Java NIO(4):管道

通道工具类:

2018-05-30 10:09:54 158

原创 Java NIO(3):Socket通道

Socket通道类可以运行非阻塞模式全部Socket通道类:DatagramChannelSocketChannelServerSocketChannel  传统的Socket是阻塞的要把一个Socket通道置于非阻塞模式 需要依靠Socket通道类的公有超级类SelectableChannelconfigureBlocking():true 设置阻塞模式 false 非阻塞模式isBlockin...

2018-05-30 08:45:03 544

原创 Java NIO(2):通道

通道提供与I/O服务的直接连接 用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据多数情况 通道与操作系统的文件描述符和文件句柄有着一对一的关系借助通道 可以最小的开销来访问操作系统本身的I/O服务 缓冲区是通道内部发送和接收数据的端点File I/O和Stream I/O文件通道 套接字通道创建通道:文件通道:package com.tony.app;impo...

2018-05-29 07:28:09 138

原创 Java NIO(1):缓冲区

在新的IO中 所有数据的必须通过Channel传输 发送到Channel中的所有对象都必须先放入Buffer中 读取Channel中的对象也要先放入Buffer中一个Buffer对象是固定数量的数据的容器 作用是一个存储器或分段运输区 在这里数据可被存储并在之后用于检索对于每个非布尔原始数据类型都有一个缓冲区类缓冲区倾向于处理字节缓冲区是一个数组 可以理解成一个容器缓冲区的属性:1.容量(Capa...

2018-05-28 12:41:08 191

原创 CentOS 6:安装FastDFS搭建图片服务器

FastDFS是开源的高性能分布式文件系统主要功能:文件存储 文件同步 文件访问 以及高容量和负载均衡 目的是为了解决海量的数据存储问题 适合4KB到500MB之间的文件FastDFS的主要角色:1.Tracker Server(跟踪服务器)2.Storage Server(存储服务器)3.Client(客户端)1.Tracker 主要做调度工作 起到均衡作用 管理所有的Storager(用组(g...

2018-05-25 00:00:08 1667

原创 Dubbo(1):监控中心

dubbo-admin-2.5.4.warCentOS 6.9 Tomcat 8.5JDK 1.8原因:不支持1.8 支持1.7解决方案:修改dubbo-admin目录下的pom文件重新编译打包war 放到Tomcat 8 下的webapps中运行用户名和密码都是root...

2018-05-23 00:58:39 137

原创 CentOS 6 安装zookeeper 3.4.12

解压缩:tar zxvf zookeeper-3.4.12.tar.gz进入解压目录 创建目录data进入cnf目录 cp一份zoo_sample.cfg为zoo.cfgbzoo.cfg 修改dataDir的路径(快照存储的目录)为你刚才创建的data路径进入bin目录 开启服务...

2018-05-22 18:15:06 529

原创 SpringBoot(2):核心

使用Spring或Spring MVC需要手动添加依赖 而这些依赖大多是固定的 Spring Boot通过starter能够帮助我们简化Maven配置@EnableAutoConfiguration表示让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置比如:spring-boot-starter-web依赖 会自动添加Tomcat和Spring MVC的依赖 并对它们进行自动...

2018-05-22 17:40:42 130

原创 SpringBoot(1):入门

Spring Boot可以以jar包的形式独立运行 内嵌Servlet容器starter简化Maven配置 自动加入依赖包自动配置Spring(也支持自定义自动配置)项目监控条件注解Eclipse安装Spring Tool Suite插件来创建Spring BootIDEA(Spring Initializer项目)Maven手工构建    不管Eclipse还是IDEA创建的Spring Boo...

2018-05-22 01:18:14 177

原创 CentOS 7(1):初识

CPU:一个具有特定功能的芯片 里面还有微指令集 如果让主机实现功能 要参考CPU是否含有内置的微指令集    管理与运算CPU的架构:我们使用的软件必须经过CPU内部的微指令集才实现 精简指令集(RISC)            ARM 复杂指令集(CISC)           Intel AMDCPU的位数:一次数据读取的最大量主板架构:主板是连接各个组件的一个重要项目 因此在主板上面沟通各...

2018-05-21 00:06:27 318

原创 Maven(3):坐标和依赖

Maven的坐标元素:groupID:定义当前Maven项目隶属的实际项目 一个实际项目会被划分很多模块artifactID:实际项目中的一个Maven模块version:项目的版本packaging:打包方式classifier:用来帮助定义构件输出的一些附属构件Maven内置了一个中央仓库的地址(http://repo1.maven.org/maven2)该中央仓库包含了世界上大部分流行的开源...

2018-05-17 16:05:13 251

原创 Maven(2):仓库

仓库分类:本地仓库 远程仓库 中央仓库配置本地仓库:配置阿里云仓库中央仓库:Maven官方维护的仓库

2018-05-15 20:04:47 117

原创 Maven(1):安装

编译 运行单元测试 生成文档 打包和部署 这就是构建Maven不仅是构建工具 还是依赖管理工具和项目信息管理工具Windows 10jdk 1.8Maven 3.5.3Eclipse 4.7.3配置环境变量:默认用户范围的配置文件用户范围和全局范围使用同一个配置文件...

2018-05-15 19:46:00 120

原创 Redis(4):Redis的事务

redis中的事务就是一组命令的集合multi命令开启事务 开始接收命令 并把命令放入事务队列中exec命令提交事务 执行事务队列中的命令redis中的一个事务不能被其他命令打断事务中的命令执行出错 redis如何处理?1.语法错误2.运行错误一个事务中 只有所有的命令都执行完成后才能得到每个命令结果的返回值watch命令unwatch命令 取消监控expire:设置一个键的过期时间 单位是秒 过...

2018-05-14 11:37:53 129

原创 Redis(3):Redis数据类型

Redis采用字典结构以键值对(key-value)的形式存储数据的散列类型的键值(value)也是字典类型 字段和字段值的映射 但字段值只能是字符串 不能是别的数据类型(散列类型不能嵌套)一个散列类型的的键(key)可以包含至多2的32次方-1个字段散列类型适合存储对象:使用对象类别和ID构成键名 字段表示对象的属性 字段值表示对象的属性值命令:hset key field value 字段赋值...

2018-05-13 19:33:45 487

原创 Redis(2):Jedis和Redis数据类型

Jedis的使用导包:package com.tony.app;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class RedisTest { @Test public void run1() { // 指定Redis服务...

2018-05-13 13:04:22 145

原创 Redis(1):源码编译安装及入门

CentOS 6.9redis-3.0.7.tar.gz1.解压 tar -zxvf redis-3.0.7.tar.gz 2.安装    cd redis-3.0.7    make        编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序make install    (make install 命令将这些可执行程序复制到/usr/local/bin目录下 方便以后执...

2018-05-13 00:25:43 5744

原创 Spring的事务隔离级别和传播机制

事务的ACID:1.原子性(Atomictiy):事务开始后所有操作 要么全部做完 要么全部不做 不可能停滞在中间环节2.一致性(Consistency):事务开始前和结束后 数据库的完整性约束没有被破坏  比如A向B转账 不可能A扣了钱 B却没收到3.隔离性(Isolation):同一时间 只允许一个事务请求同一数据 不同的事务之间彼此没有任何干扰 比如A正在从一张银行卡中取钱 在A取钱的过程结...

2018-05-10 08:27:20 301

原创 Java8(1) :行为参数化

定义接口:package com.tony.app;public interface PersonPredicate { boolean test(Person person);// boolean test(T template);}实现类:package com.tony.app;public class PersonByName implements PersonPredica...

2018-05-08 15:25:13 129

原创 Java正则表达式(1)

正则表达式定义了字符串的模板 可以对字符串(或文本,大量的字符串构成了文本)进行查找 提取 分割 替换等操作什么是模板?可以是简单字符 固定的字符串 或包含了特殊字符的组合 有了模板 就可以用这个规则去匹配字符串了 匹配到了就可以进行相应的操作简单的例子:查找name字符串中是否包含了tonyString name = "tonytonytonytony";这个例子中模板就是字符串"tony"匹配...

2018-05-08 09:57:19 189

原创 ==和equals()

==和equals()都可以用来判断两个变量是否相等==:如果判断的两个变量是基本类型并且是数值类型 则只要两个变量的值相等 == 返回true如果判断的两个变量是引用类型 则如果它们指向的是同一个对象 == 返回truepackage com.tony.app;public class EqualsDemo { public static void main(String[] args)...

2018-05-07 20:44:23 120

原创 Java多线程(5):守护线程

Java分为两种线程:1.User Thread(用户线程)2.Daemon Thread(守护线程)当在java中创建线程时 默认状态它是用户线程 如果该线程正在运行 JVM不会结束程序守护线程:为系统中的用户线程提供服务 没有用户线程存在 JVM不会等待守护线程结束 JVM会结束程序和相关联的守护线程package com.tony;public class DaemonThread im...

2018-05-07 17:10:03 90

原创 Java多线程(4):interrupt() interrupted() isInterrupted()

interrupt():中断线程(设置中断标识位)interrupted():测试当前线程是否已经中断(当前线程指运行此方法的线程)isInterrupted():测试线程是否已经中断中断的理解:通过中断并不能停止一个线程 需要被中断的线程自己去处理被中断的线程如何知道自己被中断了?线程对象有一个标识位来表示是否被中断了测试:package com.tony;public class MyTh...

2018-05-07 16:16:52 148

原创 Java多线程(3):线程相关方法

两种不同方式调用Thread类中的方法1.this.方法名()2.Thread.方法名()区别:第一种调用方法 是线程实现类本身或Thread类第二种调用方法 执行Thread.方法名()代码所在的线程测试:package com.tony;public class MyThread extends Thread { public MyThread() { System.out.prin...

2018-05-07 13:12:27 98

原创 Java多线程(2):Thread.currentThread()和this

MyThread.javapackage com.tony;public class MyThread extends Thread { @Override public void run() { System.out.println("子线程的名称:" + Thread.currentThread().getName()); }}ThreadTest.javapackage ...

2018-05-07 10:22:21 124

原创 Java多线程(1):创建线程的方式

线程:可以理解为在进程中独立运行的子任务线程创建的两种方式:1.继承Thread类package com.tony;public class MyThread extends Thread { @Override public void run() { System.out.println("Hello,Thread..."); }}测试:(ThreadTest.class)pac...

2018-05-07 09:46:30 111

原创 SecureCRT链接虚拟机中的CentOS 6

虚拟机版本信息:虚拟机的网络连接方式:查看CentOS的IP地址:ifconfig查看CentOS 6的登录用户名称:whoami查看SSH是否安装:rpm -qa | grep ssh如果没有安装 使用下面命令安装:yum install openssh-server查看SSH服务是否已经运行:没有运行 请事先开启:service sshd start==================开启SS...

2018-05-06 07:57:58 865

原创 yum

man yum  #查看使用情况(网络摘录)http://man.linuxde.net/yum==================yum命令在Fedora和RedHat以及SUSE中基于rpm的软件包管理器它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装;yum提...

2018-05-06 03:31:14 109

原创 系统更新

2018-05-06 03:13:34 118

原创 查看系统信息

系统:CentOS 6.9内核:2.6.x位数:64位

2018-05-06 02:42:45 67

空空如也

空空如也

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

TA关注的人

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