自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Wim的博客

突破自己,琳琅天上

  • 博客(48)
  • 资源 (5)
  • 收藏
  • 关注

原创 FastDFS的介绍与入门Demo

一、介绍FastDFS 是用 c 语言编写的一款开源的分布式文件系统,由阿里巴巴公司开发。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。二、FastDFS的架构FastDFS 架构包括 Tracker server 和 Storage server。...

2018-12-10 22:16:24 213

原创 Java高并发秒杀解决方案

一.秒杀业务分析所谓秒杀,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。秒杀商品通常有两种限制:时间限制,库存限制。秒杀业务的运行流程主要可以分为以下几点:商家提交秒杀商品申请,录入秒杀商品数据,主要有:商品标题,商品原价,秒杀价格,商品图片,介绍等信息运营商审核秒杀申请秒杀频道首页列出秒杀商品,点击秒杀商品图片可以跳转到秒杀商品详细页面商品详细页面...

2018-12-09 13:04:55 20286 11

原创 并发tools之交换者Exchanger

一.简介  Exchanger就是交换者的意思,用于之间线程间协作交换彼此数据,其核心依靠一个exchange(V v)方法,当两个线程调用exchange方法时候,会将传入的数据传递给彼此,当其中一个线程到达exchange方法时,另一个线程还没到达exchange,则此线程阻塞到另一个线程执行exchange,就是说Exchanger提供一个同步点,在这个同步点上交换彼此的数据。如果另一个...

2018-12-06 19:44:41 210

原创 Dubbox简介与入门实战

前言什么是Dubbox?Dubbox是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo,被国内电商及互联网项目中使用,后期阿里巴巴停止了Dubbo项目的维护(现Dubbo已捐献给Apache基金会),因为阿里巴巴内部的HSF框架比Dubbo更高效,更贴合他们业务。当当网便在Dubbo基础上进行优化,并继续进行维护,为了与原有的Dubbo区别,故将其命名为Dubbox。Dubbox作用d...

2018-10-27 19:17:59 1387

原创 Zookeeper简介与安装

Zookeeper 介绍Zookeeper动物园管理员,根据名字的意思它是一个管理者的角色,它是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Dubbo服务中Zookeeper可以起到注册中心的作用,管理各个服务应用,注册中心负责服务地址的注册与查找,相当于目录服务,服务提供...

2018-10-27 18:59:00 139

原创 JVM知识点笔记总结

1.Java内存区域与内存溢出异常运行时数据区:主要分为线程私有和线程共享两大块。线程私有(生命周期与线程相同,共生死):Java虚拟机栈(NativeStack)本地方法栈(VM Stack)程序计数器(PC)线程共享(生命周期与JVM相同):堆(heap)方法区(Method area,逻辑分开,物理属于堆)程序计数器:是一块较小的内存空间,它可以看作是当前线程所...

2018-10-26 19:00:00 114

原创 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 581

原创 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 145

原创 并发tools之信号量Semaphore

前言:信号量可以控制某个资源可以被同时访问的个数,通过构造函数设定一定数量的许可调用acquire()获取一个许可,如果没有就等待调用release()释放一个许可. 实战:(下面例子只允许5个线程同时进入执行acquire()和release()之间的代码)public class SemaphoreDemo { public static void mai...

2018-10-25 11:00:56 75

原创 并发tools之闭锁CountDownLatch

前言:CountDownLatch是Java并发编程很好用的一个tools,其作用是主线程等待子线程都完成后主线程才开始执行,比如说可以用来计算子线程任务完成后共耗时多少,或者一个游戏场景所有玩家准备后主线程才开始游戏等等CountDownLatch的功能和Future的get()方法类似,只有任务完成了才返回,不然一直阻塞.CountDownLatch内部有个计数器,在新建这个闭...

2018-10-25 10:49:28 88

原创 并发tools之栅栏CyclicBarrier

前言:CyclicBarrier翻译过来就是:循环的屏障,这个类是一个可以重复利用的屏障类.它允许一组线程相互等待,直到全部到达某个公共屏障点,然后所有的这组线程再同步往后执行.await()函数每被调用依次,计数便会减少1,并阻塞当前线程.当计数减至0,阻塞解除. CountDownLatch和CyclicBarrier的区别?1.CountDownLatch的作用是允许...

2018-10-25 10:31:33 65

原创 生产者消费者的多种方式实现

前言:生产者消费者模式是工作中多线程开发很常用的一种模式,也是笔试面试高频考点1.使用阻塞队列实现(阻塞队列有很多,如ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue,SynchronousQueue)/** * 使用阻塞队列实现 * * @author m969130721@163.com * @da...

2018-10-25 10:19:45 82

原创 单例模式的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 292

原创 Easyui datagrid数据网格 过滤插件和分页冲突,解决办法。

  最近我在写一个高校共享单车系统项目,前端页面使用的是EasyUI,在我写完datagrid并弄好过滤和分页后,发现能过滤数据,但是按分页按钮毫无反映,解决办法:解决办法很简单,只需把你写的查找sql语句中的 limit语句去掉,因为使用了easyui filter后是在本地过滤的不用经过数据库,所以要查找全部。 ...

2018-02-14 18:08:15 920 1

转载 SpringMVC对日期类型的转换

在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。  1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd")  ,即可将String转换为Date类型,如下@DateTimeFormat(pattern = "yyyy-MM-dd") ...

2018-02-10 23:00:38 150

原创 手写SpringMVC,原来写一个简易SpringMVC框架这么Easy!

项目地址(功能已更新,如对你有帮助记得给个star哦!)首先大家写JAVA项目多多少少都有接触过SpringMVC这个表现层框架,但是大多数人只知道怎么用这框架,却不了解这框架的原理,如果到时候工作的公司用的是公司自己的框架难道又要慢慢重学一遍吗?所以不如了解框架的原理,再学其他框架就能很快上手。如上图所示的是SpringMVC的架构流程,下面我只简单的实现SpringMVC的...

2018-01-29 23:42:12 2037 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 271

转载 String的按值传递,java传参都是传值!!!

目录首先是String。然后是StringBuffer同理,看自己创建的对象peoplejava中对象作为参数传递给一个方法,到底是值传递,还是引用传递?String和int参数传递是按值传递还是引用传递?一道面试题目,String的传递:123456789

2017-12-14 20:42:38 1029

原创 我来教你制作JS脚本,一键完成学校教务系统的评教!

需求:我们在学校每学期都要完成教师教学评教,但是课程多,评教有点麻烦,我们能不能一键评教所有课程老师的评教呢? 答案肯定是有的。首先登陆你学校的教务系统,我学校的教务系统是正方教务系统。推荐使用Chrome浏览器,登陆到评教页面,再按F12,显示如下图所示的页面。 点中上图的Console 控制台,把下面的代码复制黏贴过去按回车。注意教师评教页面是要等待30秒,才能点击保存的,这是...

2017-12-14 15:21:51 5772

转载 Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题,亲测可用!)

Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)一、登录MySQL查看用 SHOW VARIABLES LIKE ‘character%’; 下字符集,显示如下:+--------------------------+----------------------------+| Variable_name | Value |+-----------

2017-12-13 20:32:22 508

原创 读《Java虚拟机精讲》之-------JVM内存分配的总结

一 , JVM的运行时内存结构JVM内部定义了多个程序在运行时需要使用到的内存区,二, 线程共享内存区如上面的图所示,JVM中内存区可以根据访问权限不同定以为线程共享和线程私有两大类。所谓线程共享是指的是可以允许被所有线程共享访问的一类内存区,包括堆区,方法区,运行时常量池三个内存区。1. Java堆区(heap)Java堆区在JVM启动的时候被创建,并且它在实际的内存空间中可以是不连续的。Java堆区是一块用于存储对象实例的内存区,是GC执行的重点区域。既然Java堆区用于存储Java

2017-12-11 21:21:57 692

原创 设计模式之---代理模式(AOP的原理)

代理模式主要有两种:静态代理,动态代理。代理模式的功能主要是起到增强方法和权限拦截的作用。1.静态代理:其实代理模式根据这个名字就很好理解,举个简单例子:小明要去租房,但他找不到的房东,只能去找中介,中介再帮他找房东,而这个中介就起到了代理的作用。如图所示:小明的是用户类,调用者,中介就是代理类,房东就是目标类真正需要调用的类,这时代理类就可以在中间做点手脚,起到增...

2017-11-25 14:32:56 10987 7

转载 springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?

springMVC使用multipartFile上传文件出错:MultipartHttpServletRequest: is a MultipartResolver configured?

2017-11-12 18:28:41 304

原创 Nginx功能简介与基本配置总结

Nginx的介绍简单来说Nginx就是一个高性能的http/反向代理 服务器及电子邮件(IMAP/POP3)代理服务器。官方测试Nginx能够支撑5万并发请求,并且cpu,内存等资源消耗非常低,运行非常稳定,这就是国内百度,淘宝,腾讯,网易等各大互联网公司用它的主要原因。     应用场景1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网

2017-11-05 19:53:22 1263

原创 通过反射写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 366

原创 在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 211

转载 解决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 421

原创 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 252

原创 EL表达式的使用

简介EL表达式替代jsp表达式。因为开发jsp页面的时候遵守原则:在jsp页面中尽量少些甚至不写java代码。EL表达式作用:向浏览器输出域对象中的变量或表达式计算的结果基本语法: ${变量或表达式}    代替>EL获取不同类型的数据普通的对象  <% String str = "普通字符串"; pageContext.setAttribute(

2017-10-31 18:40:21 221

原创 MyBatis的逆向工程

所谓逆向工程,就用代码自动生成,数据库中 表对应的 pojo, mapper.xml和mapper接口,这样自己就可以省去写pojo和通用的 增删查改 sql 语句了,大大的提高了开发效率。mybatis 的逆向工程实现有很多种方法,这里说我经常使用的一种。步骤:1.新建一个java工程,导入需要的jar包。如图所示:mybatis,mybatis-gene

2017-10-30 15:50:00 783

原创 Lucene笔记总结(理论篇)

1. 什么是全文检索?  全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。全文检索首先将要搜索的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。  这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-textSearch)。2.我们为什么要使用全文检索? 数据的分类:1)结构化数据 ( 有固定类型

2017-10-23 12:17:06 239

原创 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 275

原创 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 183

原创 Maven学习笔记 (一)

Maven的简介1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的1.2 Maven好处普通的传统项目  Maven项目  分析:maven项目为什么这么小?没有jar。 需要jar吗?肯定需要。没有存在于maven项目

2017-10-17 22:13:30 145

原创 什么是类加载器?

类加载器什么是类加载器,作用是什么?类加载器就加载字节码文件(.class)Java语言是一种具有动态性的解释语言,类(CLASS) 只有被加载到 JVM 中后才能运行。当运行指定程序时,JVM会将编译生成的.class文件按照需求和一定的规则加载到内存中,组织成为一个完整的Java应用程序。这个加载的过程是由类加载器来完成的,具体来说,就是由ClassLoad

2017-10-17 16:48:14 1328

原创 枚举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 177

原创 Maven学习笔记(二)

1 Maven依赖管理1.1 依赖范围我们在pom.xml添加 jar  依赖的时候需要有依赖范围选填(不写默认是compile范围) Compile 范围:   (例子 struts2-core)编译(compile)时需要 测试时需要,,运行时需要,打包时需要Provided范围:  (例子  jsp-api.jar servlet-

2017-10-16 16:48:32 174

原创 错误: 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 8754

原创 错误:-source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

-source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

2017-10-06 23:32:20 1292 4

原创 Redis介绍与简单使用

一、Redis简介1.关于关系型数据库和nosql数据库关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据库是基于特殊的结构,并将数据存储到内存的数据库。从性能上而言,nosql数据库要优于关系型数据库,从安全性上而言关系型数据库要优于nosql数据库,所以在实 际开发中一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保

2017-09-12 20:03:23 215

FastDFS1.2jar包

FastDFS 是用 c 语言编写的一款开源的分布式文件系统,由阿里巴巴公司开发。FastDFS 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

2018-12-10

鸟哥的Linux私房菜2017版

鸟哥的Linux私房菜:基础学习篇》是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

2018-10-27

剑指offer-pdf

《剑指Offer》是2012年电子工业出版社出版的图书,作者是何海涛。本书精选谷歌、微软等知名IT企业的50余道典型面试题,系统地总结了如何在面试时写出高质量代码,如何优化代码效率,以及分析、解决难题的常用方法。

2018-10-27

当当网dubbox-2.8.4

Dubbox now means Dubbo eXtensions, and it adds features like RESTful remoting, Kyro/FST serialization, etc to the Dubbo service framework

2018-10-27

Java并发编程实战

本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。 本书适合Java程序开发人员阅读。

2018-10-25

空空如也

空空如也

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

TA关注的人 TA的粉丝

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