- 博客(47)
- 资源 (5)
- 收藏
- 关注
原创 FastDFS的介绍与入门Demo
一、介绍FastDFS 是用 c 语言编写的一款开源的分布式文件系统,由阿里巴巴公司开发。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。二、FastDFS的架构FastDFS 架构包括 Tracker server 和 Storage server。...
2018-12-10 22:16:24
577
原创 并发tools之交换者Exchanger
一.简介 Exchanger就是交换者的意思,用于之间线程间协作交换彼此数据,其核心依靠一个exchange(V v)方法,当两个线程调用exchange方法时候,会将传入的数据传递给彼此,当其中一个线程到达exchange方法时,另一个线程还没到达exchange,则此线程阻塞到另一个线程执行exchange,就是说Exchanger提供一个同步点,在这个同步点上交换彼此的数据。如果另一个...
2018-12-06 19:44:41
418
原创 Dubbox简介与入门实战
前言什么是Dubbox?Dubbox是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo,被国内电商及互联网项目中使用,后期阿里巴巴停止了Dubbo项目的维护(现Dubbo已捐献给Apache基金会),因为阿里巴巴内部的HSF框架比Dubbo更高效,更贴合他们业务。当当网便在Dubbo基础上进行优化,并继续进行维护,为了与原有的Dubbo区别,故将其命名为Dubbox。Dubbox作用d...
2018-10-27 19:17:59
7585
原创 Zookeeper简介与安装
Zookeeper 介绍Zookeeper动物园管理员,根据名字的意思它是一个管理者的角色,它是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Dubbo服务中Zookeeper可以起到注册中心的作用,管理各个服务应用,注册中心负责服务地址的注册与查找,相当于目录服务,服务提供...
2018-10-27 18:59:00
335
原创 JVM知识点笔记总结
1.Java内存区域与内存溢出异常运行时数据区:主要分为线程私有和线程共享两大块。线程私有(生命周期与线程相同,共生死):Java虚拟机栈(NativeStack)本地方法栈(VM Stack)程序计数器(PC)线程共享(生命周期与JVM相同):堆(heap)方法区(Method area,逻辑分开,物理属于堆)程序计数器:是一块较小的内存空间,它可以看作是当前线程所...
2018-10-26 19:00:00
232
原创 NIO学习总结与实战
前言Java NIO 是从jdk1.4版本开始引入的一个新的IO API,可以代替标准的JavaIO API.你可以称它为NEW IO亦或non-blocking IO,NIO 支持面向缓冲区,基于通道的IO操作,NIO以更加高效的方式进行文件的读写操作。NIO与IO的区别NIOIO面向缓冲区(Buffer)面向流(Stream)非阻塞IO(non-blockin...
2018-10-26 17:26:29
1087
1
原创 Nginx负载均衡配置常用策略
前言:Nginx负载均衡配置常用策略有如下这几种轮询(默认)权重ip hashurl hash(第三方)fair(第三方)轮询:upstream www.baidu.com {server www.baidu.com:8080;server www.baidu.com:9080;}优点:实现简单.缺点:不考虑每台机器的处理能力权重:upstream www.bai...
2018-10-25 13:13:58
269
原创 并发tools之信号量Semaphore
前言:信号量可以控制某个资源可以被同时访问的个数,通过构造函数设定一定数量的许可调用acquire()获取一个许可,如果没有就等待调用release()释放一个许可. 实战:(下面例子只允许5个线程同时进入执行acquire()和release()之间的代码)public class SemaphoreDemo { public static void mai...
2018-10-25 11:00:56
162
原创 并发tools之闭锁CountDownLatch
前言:CountDownLatch是Java并发编程很好用的一个tools,其作用是主线程等待子线程都完成后主线程才开始执行,比如说可以用来计算子线程任务完成后共耗时多少,或者一个游戏场景所有玩家准备后主线程才开始游戏等等CountDownLatch的功能和Future的get()方法类似,只有任务完成了才返回,不然一直阻塞.CountDownLatch内部有个计数器,在新建这个闭...
2018-10-25 10:49:28
231
原创 并发tools之栅栏CyclicBarrier
前言:CyclicBarrier翻译过来就是:循环的屏障,这个类是一个可以重复利用的屏障类.它允许一组线程相互等待,直到全部到达某个公共屏障点,然后所有的这组线程再同步往后执行.await()函数每被调用依次,计数便会减少1,并阻塞当前线程.当计数减至0,阻塞解除. CountDownLatch和CyclicBarrier的区别?1.CountDownLatch的作用是允许...
2018-10-25 10:31:33
160
原创 生产者消费者的多种方式实现
前言:生产者消费者模式是工作中多线程开发很常用的一种模式,也是笔试面试高频考点1.使用阻塞队列实现(阻塞队列有很多,如ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue,SynchronousQueue)/** * 使用阻塞队列实现 * * @author m969130721@163.com * @da...
2018-10-25 10:19:45
195
原创 单例模式的5种写法
前言:单例模式是23种设计模式中最简单的一种,也是笔试面试中最常考察的一种设计模式,所以我们必须掌握它。1.饿汉(线程安全)/** * 饿汉 * * @author m969130721@163.com * @date 18-6-14 下午4:52 */public class Demo1 { private static Demo1 demo1 = new Demo...
2018-10-25 09:46:16
445
原创 Easyui datagrid数据网格 过滤插件和分页冲突,解决办法。
最近我在写一个高校共享单车系统项目,前端页面使用的是EasyUI,在我写完datagrid并弄好过滤和分页后,发现能过滤数据,但是按分页按钮毫无反映,解决办法:解决办法很简单,只需把你写的查找sql语句中的 limit语句去掉,因为使用了easyui filter后是在本地过滤的不用经过数据库,所以要查找全部。 ...
2018-02-14 18:08:15
1473
1
转载 SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。 1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd") ,即可将String转换为Date类型,如下@DateTimeFormat(pattern = "yyyy-MM-dd") ...
2018-02-10 23:00:38
245
原创 手写SpringMVC,原来写一个简易SpringMVC框架这么Easy!
项目地址(功能已更新,如对你有帮助记得给个star哦!)首先大家写JAVA项目多多少少都有接触过SpringMVC这个表现层框架,但是大多数人只知道怎么用这框架,却不了解这框架的原理,如果到时候工作的公司用的是公司自己的框架难道又要慢慢重学一遍吗?所以不如了解框架的原理,再学其他框架就能很快上手。如上图所示的是SpringMVC的架构流程,下面我只简单的实现SpringMVC的...
2018-01-29 23:42:12
2327
1
转载 jdk9新特征系列
(一):jdk和jre的改变JDK和JRE已经在Java SE 9中进行了模块化处理。在Java SE 9之前,JDK构建系统用于生成两种类型的运行时映像 ——Java运行时环境(JRE)和Java开发工具包(JDK)。 JRE是Java SE平台的完整实现,JDK包含了JRE和开发工具和类库。 可下图显示了Java SE 9之前的JDK安装中的主目录。JDK_HOME是安装JDK的目录。 如果你
2017-12-29 11:12:57
384
转载 String的按值传递,java传参都是传值!!!
目录首先是String。然后是StringBuffer同理,看自己创建的对象peoplejava中对象作为参数传递给一个方法,到底是值传递,还是引用传递?String和int参数传递是按值传递还是引用传递?一道面试题目,String的传递:123456789
2017-12-14 20:42:38
1499
1
原创 我来教你制作JS脚本,一键完成学校教务系统的评教!
需求:我们在学校每学期都要完成教师教学评教,但是课程多,评教有点麻烦,我们能不能一键评教所有课程老师的评教呢? 答案肯定是有的。首先登陆你学校的教务系统,我学校的教务系统是正方教务系统。推荐使用Chrome浏览器,登陆到评教页面,再按F12,显示如下图所示的页面。 点中上图的Console 控制台,把下面的代码复制黏贴过去按回车。注意教师评教页面是要等待30秒,才能点击保存的,这是...
2017-12-14 15:21:51
9173
转载 Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题,亲测可用!)
Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)一、登录MySQL查看用 SHOW VARIABLES LIKE ‘character%’; 下字符集,显示如下:+--------------------------+----------------------------+| Variable_name | Value |+-----------
2017-12-13 20:32:22
800
原创 读《Java虚拟机精讲》之-------JVM内存分配的总结
一 , JVM的运行时内存结构JVM内部定义了多个程序在运行时需要使用到的内存区,二, 线程共享内存区如上面的图所示,JVM中内存区可以根据访问权限不同定以为线程共享和线程私有两大类。所谓线程共享是指的是可以允许被所有线程共享访问的一类内存区,包括堆区,方法区,运行时常量池三个内存区。1. Java堆区(heap)Java堆区在JVM启动的时候被创建,并且它在实际的内存空间中可以是不连续的。Java堆区是一块用于存储对象实例的内存区,是GC执行的重点区域。既然Java堆区用于存储Java
2017-12-11 21:21:57
863
原创 设计模式之---代理模式(AOP的原理)
代理模式主要有两种:静态代理,动态代理。代理模式的功能主要是起到增强方法和权限拦截的作用。1.静态代理:其实代理模式根据这个名字就很好理解,举个简单例子:小明要去租房,但他找不到的房东,只能去找中介,中介再帮他找房东,而这个中介就起到了代理的作用。如图所示:小明的是用户类,调用者,中介就是代理类,房东就是目标类真正需要调用的类,这时代理类就可以在中间做点手脚,起到增...
2017-11-25 14:32:56
17884
9
转载 springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?
springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?
2017-11-12 18:28:41
541
原创 Nginx功能简介与基本配置总结
Nginx的介绍简单来说Nginx就是一个高性能的http/反向代理 服务器及电子邮件(IMAP/POP3)代理服务器。官方测试Nginx能够支撑5万并发请求,并且cpu,内存等资源消耗非常低,运行非常稳定,这就是国内百度,淘宝,腾讯,网易等各大互联网公司用它的主要原因。 应用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网
2017-11-05 19:53:22
1573
原创 通过反射写BaseServlet
package ming.stop.base;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import
2017-11-05 12:10:12
503
原创 在Linux上安装Nginx
一.下载nginx官方网站:http://nginx.org/二.安装需要的环境1、需要安装gcc的环境。yum install gcc-c++2、第三方的开发包。 PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使
2017-11-04 21:57:27
401
转载 解决mysql Navicat 出错:1130-host . is not allowed to connect to this MySql server
解决Navicat 出错:1130-host . is not allowed to connect to this MySql server,MySQL1. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localho
2017-10-31 21:01:22
639
原创 JSTL标签库的常用操作
简介jstl标签,java standard tag libarary 。java标准标签库。jstl标签库分类:核心标签库(重要)(c)国际化标签库(fmt)EL函数库(fn)SQL标签库(sql)XML标签库(x)使用jstl标签导入jstl的支持jar包,在jee5.0之后jstl已经是属于5.0的支持包里面。使用jsp页面,需要在jsp的顶部使用tagli
2017-10-31 19:05:54
408
原创 EL表达式的使用
简介EL表达式替代jsp表达式。因为开发jsp页面的时候遵守原则:在jsp页面中尽量少些甚至不写java代码。EL表达式作用:向浏览器输出域对象中的变量或表达式计算的结果基本语法: ${变量或表达式} 代替>EL获取不同类型的数据普通的对象 <% String str = "普通字符串"; pageContext.setAttribute(
2017-10-31 18:40:21
326
原创 MyBatis的逆向工程
所谓逆向工程,就用代码自动生成,数据库中 表对应的 pojo, mapper.xml和mapper接口,这样自己就可以省去写pojo和通用的 增删查改 sql 语句了,大大的提高了开发效率。mybatis 的逆向工程实现有很多种方法,这里说我经常使用的一种。步骤:1.新建一个java工程,导入需要的jar包。如图所示:mybatis,mybatis-gene
2017-10-30 15:50:00
895
原创 Lucene笔记总结(理论篇)
1. 什么是全文检索? 全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。全文检索首先将要搜索的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-textSearch)。2.我们为什么要使用全文检索? 数据的分类:1)结构化数据 ( 有固定类型
2017-10-23 12:17:06
363
原创 Lucene笔记总结(代码篇)
1.电商中搜索商品的技术如下:2.准备环境jdk1.7lucene-4.10.3mysql 5.1idea jar:mysql5.1驱动包:mysql-connector-java-5.1.7-bin.jarlucene核心包:lucene-core-4.10.3.jarlucene分析器通用包:lucene-analyz
2017-10-23 11:05:08
445
原创 Linux上安装JDK+Mysql+Tomcat环境
1.JDK安装注意:rpm等软件相关命令 相当于window下的软件助手 管理软件1)查看当前Linux系统是否已经安装java输入 rpm -qa | grep java2)卸载两个openJDK输入rpm -e --nodeps 要卸载的软件3)上传jdk到linux4)解压jdk到 /usr/local下tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr...
2017-10-19 22:16:06
285
原创 Maven学习笔记 (一)
Maven的简介1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的1.2 Maven好处普通的传统项目 Maven项目 分析:maven项目为什么这么小?没有jar。 需要jar吗?肯定需要。没有存在于maven项目
2017-10-17 22:13:30
306
原创 什么是类加载器?
类加载器什么是类加载器,作用是什么?类加载器就加载字节码文件(.class)Java语言是一种具有动态性的解释语言,类(CLASS) 只有被加载到 JVM 中后才能运行。当运行指定程序时,JVM会将编译生成的.class文件按照需求和一定的规则加载到内存中,组织成为一个完整的Java应用程序。这个加载的过程是由类加载器来完成的,具体来说,就是由ClassLoad
2017-10-17 16:48:14
7035
1
原创 枚举Enum的基本使用
简介:枚举类型:(jdk1.5以后出现的类型)废话不多说直接上例子:package org.crm.enums;/** * Created by Ming on 2017/10/17. */public enum Score { A("90-100"), B("80-89"), C("70-79"), D("60-69"), E; private
2017-10-17 15:54:13
295
原创 Maven学习笔记(二)
1 Maven依赖管理1.1 依赖范围我们在pom.xml添加 jar 依赖的时候需要有依赖范围选填(不写默认是compile范围) Compile 范围: (例子 struts2-core)编译(compile)时需要 测试时需要,,运行时需要,打包时需要Provided范围: (例子 jsp-api.jar servlet-
2017-10-16 16:48:32
315
原创 错误: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer c
关键:Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializertomcat中自带的servlet jar包 和 pom.xml中依赖的servet.jar 发生了冲突! 修改在pom.xml 修改范围为 :Provided。
2017-10-07 00:18:30
11980
原创 错误:-source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
-source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
2017-10-06 23:32:20
1684
2
原创 Redis介绍与简单使用
一、Redis简介1.关于关系型数据库和nosql数据库关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实 际开发中一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保
2017-09-12 20:03:23
295
原创 利用反射泛型编写通用的增删查改Dao父类
import ming.stop.utils.JDBCUtils;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.BeanListHandler;i...
2017-09-12 17:02:15
732
FastDFS1.2jar包
2018-12-10
鸟哥的Linux私房菜2017版
2018-10-27
剑指offer-pdf
2018-10-27
当当网dubbox-2.8.4
2018-10-27
Java并发编程实战
2018-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人