自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java同步控制类的使用

有时为了控制同步, 我们一般会是用synchronized关键字或者对于变量使用volatile 进行修饰, 来达到并发的一个控制synchronized可以锁类,对象实例,其他对象,wait和notify要放在synchronized里面,join是等待其他线程执行后在一起执行,yeild放弃争抢cpu执行start是开启一个线程,会去调用runable接口的run方法,或者重...

2019-12-11 10:01:40 105

原创 Java 通过FTP与SFTP 方式, 实现 文件的上传下载 删除操作

1. FTPFTP通讯协议采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。默认端口: 21在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。2. SFTPSftp是Secure Fi...

2019-09-25 10:48:24 421

转载 实现 Java 本地缓存(转)

转载的内容缓存,我相信大家对它一定不陌生,在项目中,缓存肯定是必不可少的。市面上有非常多的缓存工具,比如 Redis、Guava Cache 或者 EHcache。对于这些工具,我想大家肯定都非常熟悉,所以今天我们不聊它们,我们来聊一聊如何实现本地缓存。参考上面几种工具,要实现一个较好的本地缓存,平头哥认为要从以下三个方面开始。1、存储集合的选择实现本地缓存,存储容器肯定是 key/v...

2019-09-18 09:25:36 85

原创 数据库优化知识小结(二)

1. 数据库调优维度数据库调优的目的: 让数据库运行的更快,相应时间更快, 吞吐量更大用户的反馈----> 找到数据相关问题日志的分析-----> 日志和异常定位问题服务器资源的监控------> CPU / 内存 / I/O等数据库内部监控-----> (Active Session) 监控会话,是否繁忙/SQL堆积第一步: 选择合适DBMS (MY...

2019-09-11 13:57:12 78

原创 SQL 学习笔记(一)

1. SQL语言按功能划分DDL,英文叫做 Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。DML,英文叫做 Data Manipulation Language,数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。DCL,英文叫...

2019-09-11 13:56:38 1501

原创 Git学习命令使用

1. 下载安装Git学习来源:添加链接描述2. 使用命令git创建全局用户git config --global user.name “xzb”git config --global user.email “465722177@qq.com”切换盘符cd e:创建文件mkdir learngit显示当前目录pwd初始化目录为git仓...

2019-08-16 17:55:14 51

原创 记录一个IDEA中MAVEN更新私服jar,download不下来的原因

在公司下载项目后, 需要下载相应的jar包, 加了一个Maven依赖项(dependency)可是我始终获取不到本地解决:1. Maven的setting.xml文件检查没有问题 , 比如私服地址配置,镜像等配置发布时使用的用户名和密码,后期需要申请 ,这个只是更新下载包,可忽略<servers> <server> <id>服务...

2019-07-18 14:06:59 5346

原创 Java8实战之函数代码引用(::)

2019-06-18 20:53:32 62

原创 BIO与NIO简单学习

1. 概念2. BIO3. NIO4. 使用:如果拿NIO比作成一个餐厅的话,ServerSocketChannel就相当于整个餐厅,SocketChannel相当于客人,Selector相当于服务员,SelectionKey相当于服务种类(迎接客人,点餐等)这是简单学习!!!...

2019-06-14 10:36:02 67

原创 Win10下安装多版本MySQL(MySQL5和MySQL8)

1. 多版本zip准备[ https://dev.mysql.com/downloads/mysql/ ] 官网地址,MYSQL5.72. MYSQL8,2. 解压到指定目录3. 配置环境变量2. 加入Path变量3. 配置以及初始化,创建服务(MYSQL5)1.在bin的同级目录下创建my.ini配置文件2. my.ini 内容:3. 创建自己指定的目录: ...

2019-06-05 21:49:00 1023

原创 本地缓存Ehcache的使用(记录)

1. 什么是EhcacheEhcache是纯java的开源缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。它主要面向通用缓存、Java EE和轻量级容器,具有内存和磁盘存储、缓存加载器、缓存扩展、缓存异常处理程序。Ehcache最初由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然开源,但一些新的主要功能(...

2019-05-02 17:11:39 1964

原创 API接口幂等设计(Token方式防止表单重复提交或网络延迟)

场景要求:页面的数据只能被点击提交一次发生原因:由于重复点击或者网络重发,或者 nginx 重发等情况会导致数据被重复提交解决办法:集群环境:采用 token 加 redis(redis 单线程的,处理需要排队)单 JVM 环境:采用 token 加 redis 或 token 加 jvm 内存处理流程:数据提交前要向服务的申请 token,token 放到 redis 或 jvm 内...

2019-04-27 01:27:01 3139 2

原创 linkedList模拟实现map 原理: 数组+链表的方式实现Map功能(不是hashMap)

大致思路实体基于Entry<K,V> 存储此处是使用LinkedList自己封装的链表 ,这个实现的效率低基于1.7版本的HashMap原理: 单项链表+数组 Node<K,V>[] 实现基于1.8把那本的HashMap原理: 数组 + 红黑树 实现核心知识(1).两个对象进行比较时,如果hashCode()值相同,那么 他们的值不一定相同(2).两个对...

2019-03-29 14:11:01 177

原创 通过源码分析自定义实现LinkedList集合

数据结构数组; 链表; 红黑树; 二叉树数组和链表结构对比实现细节以及思路实现本质: 双向链表的数据结构链表: 节点: 存储上一个节点地址信息, 元数据, 下一个节点地址信息通过地址指针 实现数据节点的双向指向核心参数理解first节点的使用? 是为了查询的时候知道从哪个地址开始遍历last节点的使用? 是为了添加元素的时候,从哪个地址开始.实现细节添加的时候: 注意是...

2019-03-28 00:09:23 68

原创 自定义实现ArrayList

大致思路通过看源码ArrayList 分析:核心(1)是由线性的连续分配的内存空间, 有Object[]数组实现(2当数组满时, 需要使用扩容机制: System.arraycopy(原数组,原数组的起始复制位置,目标数组,目标数组的移动位置, 复制的容量 大小) Arrays.copyOf(数组,扩容的大小) --底层使用System.arraycopy(..)方法...

2019-03-27 17:00:41 169

原创 自定义实现jdbc数据库连接池

连接池作用达到资源的复用提高响应速度(不必要的连接与关闭)资源的分配策略,可以统一管理连接池的大致实现思路核心参数:空闲连接数: 没有使用的连接数活动连接数: 正在使用的连接数最大连接数: 最多允许存在的连接数初始化连接池(用容器封装:比如Vecotr sql包下)实现获取Connection的方法:(1) 判断当前连接数(countPool) 是否小于 最大连接数...

2019-03-26 23:41:49 284

原创 自定义实现简易版SpringMVC(基于Servlet)

了解SpringMVC流程了解ServletServlet 生命周期:Servlet 加载—>实例化—>服务—>销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Ser...

2019-03-26 12:45:50 425

原创 Spring自定义实现IOC和依赖注入(注解方式)

大致思路:注解实现方式:就是用 反射机制. 获取指定的包下使用了注解的类,存储在一个map容器, 然后获取map容器下类的属性, 利用反射给使用了注解的属性赋值对象.xml实现方式:使用xml解析配置文件+反射机制此处使用注解方式1. 引入相关jar<dependencies> <!-- 引入Spring-AOP等相关Jar --> <depen...

2019-03-25 22:32:49 2457

原创 Java并发编程之内存模型概念知识

Java内存模型共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它...

2019-03-17 16:23:08 62

原创 Java并发编程之线程基础与生产者与消费者问题案例

什么是线程、进程、多线程?线程: 是Java中执行代码的一条执行路径。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。进程:每个正在系统上运行的程序都是一个进程,是操作系统调度的执行单元。多线程:在一个进程中,有多条不同的执行路径,并行执行,目的为了提高程序的效率在一个进程...

2019-03-17 16:04:21 52

原创 Linux下安装Memcached和Java应用

摘要出自[纯洁的微笑]Memcache 介绍Memcache 是一个自由和开放源代码、高性能、分配的内存对象缓存系统。简单来说,Memcache 是一个高性能的分布式内存对象的 key-value 缓存系统,用于加速动态 Web 应用程序,减轻数据库负载,现在也有很多人将它作为内存式数据库在使用。它可以应对任意多个连接,使用非阻塞的网络 IO,由于它的工作机制是在内存中开辟一块空间,然后建立...

2019-03-01 11:27:39 184

原创 java打包私服生成包并发布

1. 工程版本号的修改包版本每发布一次一般更新一个版本号生产环境一般用release开发环境一般用snapshot快照版本2. 修改用于生产或开发的配置文件一般开发用的dev.properties一般生产用的prov.properties3. 发布包版本到私服地址执行命令clean deploy也可以: clean -Pdev deploy 指定-P dev这个...

2019-01-28 10:15:18 537

原创 Linux在Centos下通过tar解压mysql.tar.gz安装包的形式安装MySQL

1. 下载mysql的安装包下载地址:[ https://dev.mysql.com/downloads/file/?id=481117 ]记得版本选64位,我之前在本机下载了个32位,安装出现了各种问题, 提示很多依赖包要下载,但是下载后,还是未能在安装成功,我暂时没整明白, 所以根据自己机器选择,我机器64位的!2 建立一个普通用户及mysql用户例如xzb1、 建立...

2018-12-11 17:34:23 10704 1

原创 java多线程的实现方式(六种)

一 继承Thread线程/** * 方式一: 继承Thread 的方式实现线程 * @author xzb_l * */public class ThreadDemo extends Thread{ private int pauseTime; // 间隔时间 private String name; public ThreadDemo(int pauseTime, Stri...

2018-12-06 15:56:08 98

转载 log4j.properties配置详解与实例(转)

源地址 [http://blog.sina.com.cn/s/blog_5ed94d710101go3u.html ][https://blog.csdn.net/dr_guo/article/details/50718063 ]最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛没有一点格式,看着累。这里把网上收集到的整理了一下,并且全部都在机器上测试成功...

2018-11-16 15:03:18 64

原创 微信支付接口调用之统一下单(一)

小白第一次使用微信支付,刚开始也是比较苦恼,总的来说呢,就是看懂流程,会调用API接口,所以我认为,小白还是看看官方微信支付文档还是有必要的[ http://kf.qq.com/faq/161222NneAJf161222U7fARv.html ]微信支付有很多中方式,学习从一点一滴开始,我相信积少成多,总能达到我们想要的效果!对于不同的支付方式,其实他们所使用的也就是那一套API,...

2018-11-15 20:45:18 3455 5

原创 Linux下伪集群搭建Kafka

Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。由于我们之前的分布式系统中已经安装zookeeper服务,这里不进行zookeeper安装教程以及应用教程图解 [https://blog.csdn.net/qq_34898847/article/details/83349679 ] 。需要注意的是:Zookeeper集群的工作是超过半数才能对外提供服务,3台中...

2018-10-25 13:53:59 321

原创 消息中间件Kafka学习知识总结

1. 什么是消息系统?(1)消息系统是负责将数据从一个程序传输到另一个应用程序,因此应用程序可以专注于数据,不用担心如何共享它分布式消息传递给基于可靠消息队列的概念.消息在客户端应用程序和消息传递系统之间异步排队(2)有两种类型的消息模式可用a.点对点的方式b.发布-订阅消息系统(pub-sub)2.消息系统问题?(1)消息系统怎么知道某一个主题被哪些订阅者订阅?需要进行维...

2018-10-25 11:05:27 174

原创 Linux下伪分布式搭建zookeeper集群

zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目的一个子项目,并根据google发表的一篇论文来实现的。zookeeper为分布式系统提供了高笑且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。zookeeper接口简单,我们不必过多地纠结在分布式系统编程难于处理的同步和一致性问题上,你可以使用zookee...

2018-10-24 20:13:41 191

原创 Linux之安装Docker

docker中文社区[http://www.docker.org.cn/book/docker/what-is-docker-16.html ]1.在vm中装好好centos后,可能需要更新内核运行docker需要内核版本为3.8或者更高的版本,内核必须支持一种合适的存储驱动(Drivice Mapper、AUFS、vfs、btrfs、ZFS),默认存储驱动为Drivice Mapper或AU...

2018-10-10 11:03:18 89

原创 Linux安装mongoDB

下载解压cd /usr/localmkdir monogodbwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgztar -zxvf mongodb-linux-x86_64-3.0.6.tgzmv mongodb-linux-x86_64-3.0.6 mongodb306配置系统文件profilev...

2018-09-29 17:35:15 63

原创 Linux安装RabbitMQ

RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apache,当然了今天的主角还是讲RabbitMQ。消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生...

2018-09-29 16:13:28 4086 1

原创 SpringMVC 测试 mockMVC案列

编写一个简单案例,各种属性之后在网上查找import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;impor...

2018-09-19 15:25:12 92

原创 导入Maven项目,项目出现红色感叹号,pom.xml并出错(解决)

解决方法: 如果在设置 build path之后,或者project facts 之后还有感叹号,可以尝试以下: 右键项目: Maven—-&gt;maven update 等一会 感叹号消失!

2018-09-17 18:12:36 5236 2

原创 Linux上Redis集群搭建

Redis集群简介Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。Redis 集群采用了P2P的模式,完全去中心化。R...

2018-09-13 18:39:24 56

转载 Nginx讲解(转)

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。所以还请见谅,同时欢迎留言交流Nginx能做什么1.反向代理2.负载均衡3.HTTP服务器(包含动静分离)4.正向代理以上就是我了解到的Nginx在不依赖第三方模块能处理的事情,下面详细说明每种功能怎么做...

2018-09-13 10:36:55 34

原创 java设计模式(创建型模式)之原型模式prototype

原型模式:通过产生一个对象需要非常复杂的数据准备或访问权限.则可以使用原型模式 java中的克隆技术,以某个对象为原型,复制出新的对象, 优势:效率高(直接克隆,避免了重复执行构造过程) 克隆类似于new,但是不同于new.new创建新对象属性采用的是默认值,克隆对象的属性值完全和原型对象相同.并且克隆出的新对象改变不会影响原型对象再修改克隆的值.原型模式实现C...

2018-09-12 19:16:44 60

原创 java设计模式(创建型模式)之建造者模式

1.建造模式的本质1.实现了对象组件的单独构造和装配这个模式的构建过程复杂情况下使用. 2.实现了构建和装配的解耦,不同构建起,相同的装配,可以做出不同的对象.相同的构建起,不同装配顺序也可以出现不同的对象,试下了构建算法/装配算法的解耦.实现了更好的复用实例: 1.需要构建的实体对象/** * 飞船 * @author xzb_l *...

2018-09-12 19:14:37 66

原创 java设计模式(设计模式介绍/创建型模式)之单列模式

设计模式创建型模式: 单列模式/工厂模式/抽象工厂模式/建造者模式/原型模式结构型模式 适配器模式/桥接模式/装饰模式/组合模式/外观模式/代理模式行为型模式 模板方法莫斯/命令模式/迭代器模式/观察者模式/中介者模式/备忘录模式/解释器模式/状态模式/策略模式/责任链模式/访问者模式.1.单列模式1.核心: 保证一个雷只有一个实例,并提供一个访问该实例的全局访问点....

2018-09-12 19:02:21 49

原创 Linux学习之路之常用命令集合

u 撤销操作y2w 当前位置开始向右复制2个字4yb 从当前光标位置开始向左复制4个字yy或Y 复制当前行p(小写) 在当前光标位置之后插入复制的内容P(大写) 在当前光标位置以前插入复制的内容: 状态行命令的冒号前缀range 缓冲区有效行的范围指定/ 查找的分隔符 在编辑文书的末尾 :set 命令ai 自动缩进(autoindent),新行与前一行开头对齐ic 查找时忽...

2018-09-12 16:03:50 66

MYSQL必知必会笔记

MYSQL必知必会笔记

2019-01-22

linux 基础编程所用的命令和shell入门到精通笔记

自己看完了linux入门到精通的笔记整理,还有一些linux大部分所有常用的命令笔记,可以值得看看!

2018-12-04

Linux命令大全知识笔记

linux常用的命令,总结,也可结合linux命令大全书中观看

2018-11-05

Docker教程

Docker的基础, Docker的应用, Docker的实战,Docker的视频

2018-11-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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