java
文章平均质量分 81
gaibian0823
成功的法则极为简单,但简单并不代表容易。
展开
-
MyBatis之理论篇
打法是否大地方日期为人情味儿原创 2015-10-30 18:09:04 · 619 阅读 · 11 评论 -
NoSql之Redis持久化
如果你认为Redis是一个key value store, 那可能会用它来代替MySQL;如果认为它是一个可以持久化的cache, 可能只是它保存一些频繁访问的临时数据。 我们来设想一个问题,通过前面的介绍,我们知道了redis与memcached都可以当做缓存,提高访问效率,那么如果对于突然断电或者其他故障,那么是不是意味着我们的缓存数据要丢失? redis是一个支持持久化原创 2016-05-31 11:51:05 · 8097 阅读 · 5 评论 -
NoSql之Redis集群原理
为什么集群?通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿,在这种情况下, 如何正确架构Redis呢? 首先,无论我们是使用自己的物理主机,还是使用云服务主机,内存资源往往是有限制的,scale up不是一个好办法,我们需要scaleout横向可伸缩扩展原创 2016-06-30 20:44:26 · 1476 阅读 · 0 评论 -
NoSql之Redis集群搭建
上一篇我们是说了集群原理,那么这次我们来讲解集群的搭建,我下面使用的是单机多实例。1.ruby环境 redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境: yum install ruby yum install rubygems 安装ruby和redis的接口程序 拷贝redis-3.0.0.gem至/usr/loca原创 2016-06-30 21:13:04 · 553 阅读 · 0 评论 -
JVM简介
也许对于我们平常开发来说,大多数情况下的确是无需对内存的分配、释放做太多考虑,对Jvm也无需有多么深的理解的。但是也许正是这样,导致我们写的程序会出现一些容易忽视的问题,一旦问题出现,我们不易排查。因此了解jvm,是我们写好程序的一个必须技能。1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的原创 2016-07-31 11:00:43 · 499 阅读 · 0 评论 -
JVM之运行时数据分析
上篇博客,我们简介了什么是jvm,我们知道了jvm的体系结构:类装载器(ClassLoader)子系统,运行时数据区,和执行引擎。今天我们来分析一下运行时数据。Java运行时内存区 Java的运行时内存组成如下图所示: 其中,对于这各个部分有一些是线程私有的,其他则是线程共享的。依赖用户线程的启动和结束而建立和销毁(线程私有): •程序计数器原创 2016-07-31 11:39:28 · 430 阅读 · 0 评论 -
JVM之垃圾收集
Java与C++之间有一堵内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。概述: 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权利的“皇帝”又是从事最基础工作的“劳动人民”——既拥有每一个对象的“所有权”,又担负着每一个对象声明开始到终结的维护责任。 对于 Java 程序员来说,在虚拟机自动内存管理机制的帮助下,原创 2016-07-31 15:33:34 · 572 阅读 · 0 评论 -
java集合类详解(一)
最近一直想去总结java集合类,但是网上的一些资料,总是没有显示全真正的java集合类,今天凑巧在网上看到这么一张图: 点击放大图片那么我们为什么要引入集合这个概念? 在集合之前,当我们处理数据时,需要使用数组: 1.固定的大小,或不可能增长太多 2.同一个数组只能存放类型一样的数据(基本类型/引用类型) 3.你会做大量的索引,即你原创 2016-08-30 16:37:07 · 615 阅读 · 1 评论 -
集合详解之HashMap
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 1.简单说下Ha原创 2016-08-30 19:40:19 · 2120 阅读 · 4 评论 -
集合详解之ArrayList
今天我们来分析一下List中的ArrayList,平常我们编码的过程中,这个是一个非常常用的集合类型。一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronize原创 2016-08-31 15:48:35 · 1176 阅读 · 2 评论 -
RabbitMQ之理论篇
谈到RabbitMQ,首先要谈到MQ和AMQP. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需用专用连接来链接它们。 消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前原创 2016-11-20 19:08:56 · 653 阅读 · 3 评论 -
java多线程(一)
多线程最近一直在学习,现在有必要总结一下:一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就原创 2017-07-31 21:34:51 · 269 阅读 · 0 评论 -
java线程池简介
Java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。 n原创 2017-07-31 21:48:20 · 697 阅读 · 0 评论 -
NoSql之Redis数据类型
通过前面两篇博客,我们已经知道了NoSql以及redis的安装,今天我们正式介绍redis。redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字原创 2016-05-30 20:21:06 · 612 阅读 · 3 评论 -
正向代理与反向代理
正向代理的概念正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个原创 2016-04-30 16:58:34 · 395 阅读 · 4 评论 -
servlet入门篇
1.Servlet的作用? 当使用交互式 Web 站点时,您所看到的所有内容都是在浏览器中显示的。在这些场景背后,有一个 Web服务器接收会话中来自于您的请求,可能要切换到其他代码(可能位于其他服务器上)来处理该请求和访问数据,并生成在浏览器中显示的结果。 servlet 就是用于该过程的网守。它驻留在 Web 服务器上,处理新来的请求和输出的响应2.servlet是什么?原创 2015-12-10 17:45:26 · 524 阅读 · 5 评论 -
servlet生命周期以及工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行 init()。service():它原创 2015-12-31 18:39:10 · 441 阅读 · 2 评论 -
ServletConfig与ServletContext对象
一、ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数。(配置在某个servlet标签或者整个web-app下) 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletCon原创 2015-12-31 18:50:04 · 500 阅读 · 2 评论 -
java中如何实现下载word功能
对于word以及excel我并没有多少好感,但是今天工作需要不得不去亲近它了,但是后来发现这个就像人们的关系一样,你亲近它,它就亲近你。好了,废话不多说了,咱们就来看看,到底是怎样实现这个下载的。 我们的项目,是将word放到了项目中,所以就是一个死路径,我们只需要去读这个路径就可以了,所以前台不许多说,只需要传过来路径,去调用后台方法即可。我们就来看看后台。public vo原创 2015-12-31 19:15:07 · 9080 阅读 · 5 评论 -
通过dom4j读取xml实现数据库连接
在我们大多数需要开发的软件中,我们无不需要连接到数据库,当然,有时候我们将这些链接信息放到类中,而更多时候我们都是放到xml文件中,今天我们就一起来学习一下怎样通过dom4j读取配置文件,进行连接数据库。 dom4j是什么?这个我们要去查,百度的解释是:dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性原创 2016-03-06 17:55:23 · 537 阅读 · 6 评论 -
JSP 中的 Filter 过滤器
一、什么是过滤器 过滤器是一个程序,它先于与之相关的 servlet 或 JSP 页面运行在服务器上。过滤器可附加到一个或多个 servlet 或 JSP 页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择:(1)以常规的方式调用资源(即,调用 servlet 或 JSP 页面)。(2)利用修改过的请求信息调用资源。 (3)调用资源,原创 2016-03-31 09:59:11 · 816 阅读 · 4 评论 -
Filter与Servlet的区别与联系
在我们写代码时,在web.xml中总能发现类似下面的代码: <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.su原创 2016-03-31 16:26:13 · 11704 阅读 · 5 评论 -
浅谈spring
1.什么是spring框架 spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。2.架构概述 1)IoC(Inversion ofControl)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的原创 2016-02-29 18:16:23 · 748 阅读 · 3 评论 -
java中的list、set与map
数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中非JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。 JAVA集合主要分为三种类型: HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于原创 2016-02-29 18:49:10 · 434 阅读 · 4 评论 -
初始lucene与solr
对于每个软件,当数据量很大时,sql查询的效率将会很低,今天我们来介绍两个解决此问题的技术。 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta 家族中的一个开源项目。也是目前最为流行的基于 Java 开源全文检索工具包。 目前已经有很多应用程序的搜原创 2016-04-29 19:26:00 · 482 阅读 · 4 评论 -
tomcat部署solr
1、下载Tomcat与solr-5.2.1并解压,Tomcat解压后的目录为:E:\apache-tomcat-7.0.62,solr解压后的目录为:E:\solr-5.2.12、将solr部署到Tomcat中 1)、将E:\solr-5.2.1\example\example-DIH目录下的solr文件夹复制到tomcat的根目录下,即:E:\apache-tomcat-7.0.62\原创 2016-04-29 19:46:56 · 475 阅读 · 6 评论 -
Javaweb之图片的处理
对于图片的上传,我们是非常常见的,那么怎么处理图片呢?下面我就为大家介绍 web项目中的这一上传功能,那么文件是如何从本地发送到服务器的呢? 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流原创 2016-04-30 16:30:33 · 2152 阅读 · 5 评论 -
mybatis-generator的使用
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。1.准备首先,我们去下载工具类。https://github.com/mybatis/generator/releases 由于我使用的是mysql数据,所以我使用了mysql的相关jar。 2.配置信息<?x原创 2017-12-04 21:22:27 · 328 阅读 · 1 评论