java杂谈随记
文章平均质量分 71
此为杂谈随记
支马也
java开发,联系方式:zxz3923@qq.com
展开
-
关于redis集群
redis集群分为主从,哨兵,Cluster,codis。通常哨兵足够用了。 越复杂对于运维的要求就越高,对于小公司未必就适用。原创 2019-01-08 10:15:12 · 138 阅读 · 0 评论 -
Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可转载 2016-02-24 12:58:38 · 236 阅读 · 0 评论 -
单例模式的七种写法
转载出处:http://cantellow.iteye.com/blog/838473 第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton (){} public static S转载 2016-02-24 12:39:40 · 201 阅读 · 0 评论 -
数据库性能优化之SQL语句优化
一、问题的提出在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百转载 2016-02-23 21:45:21 · 378 阅读 · 0 评论 -
使用HttpClient进行远程接口测试
测试代码如下:用到的jar包: 1 package com.lym.test; 2 3 import org.apache.http.HttpEntity; 4 import org.apache.http.HttpHost; 5 import org.apache.http.client.config.RequestConfig; 6 import org原创 2016-02-23 19:16:03 · 625 阅读 · 0 评论 -
MyBatis 拦截器 (实现分页功能)
1.01导入 mybatis和mysql的包1.02.配置文件 Configuration.xml 中添加 environments default="development"> environment id="development"> transactionManager type="JDBC"/> dataS原创 2016-02-23 20:13:52 · 301 阅读 · 0 评论 -
java的动态代理机制
在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的:InvocationHandler:InvocationHandler is the interface impl转载 2016-02-23 19:48:41 · 149 阅读 · 0 评论 -
Java设计模式——工厂方法和抽象工厂方法
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂 角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。例如: 1 //交通工具必须实现的接口 2 public interfac转载 2016-02-23 19:42:01 · 249 阅读 · 0 评论 -
MD5加密实现
package com.zxz; import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Scanner;原创 2016-02-23 19:36:23 · 324 阅读 · 0 评论 -
RabbitMQ简介
RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用Er转载 2016-02-23 19:34:41 · 244 阅读 · 0 评论 -
hibernate-validator的使用说明
首先,在pom.xml中添加hibernate.validator的支持[html] view plain copy dependency> groupId>org.hibernategroupId> artifactId>hibernate-validatorartifactId> versi转载 2016-02-24 19:23:35 · 918 阅读 · 0 评论 -
eclipse使用技巧一
谈谈eclipse使用技巧一俗话说的好啊,“工于利启事,必先善其器”,如果说你的编程功底是一个枪法的话,那么强大的eclipse就是android战士们最好的武器。 这里,我们来总结eclipse的使用技巧,从而使我们的编程达到一个事半功倍的效果。一、我的地盘我做主——切换工作空间,拷贝相应工作空间的样式。 工作空间就是你的工程项目放在的位置。这本身没有什么好说的,但是大概转载 2016-04-14 14:24:34 · 366 阅读 · 0 评论 -
谈谈eclipse使用技巧二
上节说道了怎么使用eclipse使您事半功倍。这节告诉您怎么用eclipse练成火眼金睛。①借你一双火眼金睛让类的层次结构一目了然让你阅读代码如虎添翼一个好的类的层次结构,让你的类的层次清晰明了,包的组织的结构有评级和层次,见下图:由此可见,一个层次的组织结构,更加清晰明了。②ctrl+o借你一双火眼金睛轻松类显示的层次结构让你阅读代码如虎添翼ctr转载 2016-04-14 14:25:12 · 232 阅读 · 0 评论 -
SVN功能详解
SVN功能详解TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。通过使用它,我们可以可视化的管理我们的版本库。不过由于它只是一个客户端,所以它不能对版本库进行权限管理。TortoiseSVN不是一个独立的窗口程序,而是集成在windows右键菜单中,使用起来比较方便。TortoiseSVN每个菜单项都表示什么意思01、SVN C转载 2016-05-09 13:23:20 · 739 阅读 · 0 评论 -
eclipse使用小技巧
一、快捷键1、提示:Alt+/2、格式化:ctrl+shift+f3、输入一对的符号,如”",(),会自动补全,输入后跳出:tab4、查找某个方法被谁调用:选中方法名,ctrl+shift+g5、查看某个类的继承关系:选中该类,ctrl+t6、通过文件名称查找类或文件:ctrl+shift+r7、alt+上/下,移动当前行到上或下8、转载 2016-05-09 09:38:06 · 294 阅读 · 0 评论 -
java中的锁
公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁的好处是整体效率相对高一些,但是有些线程可能会饿死或者说很早就在等待锁,但要等很久才会获得锁。其中的原因是公平锁是严格按照请求所的顺序来排队获得锁的,而非公平锁时可以抢占的,即如果在某个时刻有线程需要获取锁,而这个时候刚好锁可转载 2016-05-06 17:44:47 · 290 阅读 · 0 评论 -
java web 开发 乱码处理
一、表单提交的乱码处理 表单提交分为GET和POST两种提交方式。两种方式的乱码解决又不一样,用POST提交只需要在接受的时候加上request.setCharacterEncoding("utf-8");而GET方法处理应该将接收过来的值打碎成ISO-8859-1编码的,然后再组装成UTF-8的,new String(request.getParameter(param).getByt原创 2016-05-06 17:26:40 · 266 阅读 · 0 评论 -
《Maven实战》整理
1 Maven 介绍Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。本书将介绍Maven这一跨平台的项目管理工具。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。1Maven转载 2016-05-05 15:42:55 · 448 阅读 · 0 评论 -
mave的依赖范围
compile(编译范围)compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。 provided(已提供范围)provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Se转载 2016-05-05 10:12:29 · 221 阅读 · 0 评论 -
maven核心,pom.xml详解
什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。 快速察看: 4.0.0 ... ... ... ... ...转载 2016-05-05 09:57:51 · 223 阅读 · 0 评论 -
线程池的使用
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池转载 2016-04-19 17:51:48 · 252 阅读 · 0 评论 -
简述final关键字
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正。 请尊重作者劳动成果,转载请标明原文链接转载 2016-05-25 13:19:54 · 1103 阅读 · 0 评论 -
Java开发者必会的Linux命令
1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件。find . -name "*.xml" 递归查找所有的xml文件find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件grep -H 'sprin转载 2016-02-23 19:33:09 · 239 阅读 · 0 评论 -
Maven基础配置—上传jar包到私服
一、配置在需要上传的工程中的pom.xml文件中加入下面的配置releaseRelease Repositoryhttp://ip/nexus/content/repositories/releasessnapshotSnapshot Repositoryhttp://ip/nexus/content/repo转载 2016-02-23 19:32:03 · 252 阅读 · 0 评论 -
Spring策略模式
一:策略模式的定义策略模式是对算法的包装,把使用算法的责任和算法本身分隔开,委派给不同的对象管理。策略模式通常把一系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。其类图如下: 如果是要用JAVA类来实现的策略模式,其源代码如下:/** * * 策略执行 * @author weique.lqf * @version $Id: Context.jav转载 2016-02-22 14:56:11 · 543 阅读 · 0 评论 -
redis
一、Redis了解1.1、Redis介绍:redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是转载 2016-02-22 14:39:08 · 227 阅读 · 0 评论 -
maven命令
mvn eclipse:eclipse #生成eclipse配置文件mvn clean package #打包项目mvn clean install #安装成本地库mvn clean install -DoutputDirectory=lib -Dsilent=true -Pmodules mvn clean install -Pmodules #安装指定的模块到本地仓库mv原创 2016-02-22 14:29:51 · 208 阅读 · 0 评论 -
tomcat+Ngnix实现负载均衡
1.安装tomcat下载对应的Tomcat版本apache-tomcat-7.0.67-windows-x86.zip,解压到D:\apache-tomcat-7.0.67,配置如下环境变量:CATALINA_HOME D:\apache-tomcat-7.0.67Path %CATALINA_HOME%\bin;运行D:\apache-to转载 2016-02-22 14:28:17 · 297 阅读 · 0 评论 -
mybatis自动生成类
GITHUB上面,有这个插件的地址https://github.com/mybatis/generator/tree/master/eclipse/UpdateSite,下载下来,然后放到eclispe下面的dropins下面,重启一下就行了。最后,我们重点的讲一下generatorConfig.xml这个配置项文件classPathEntry :元素 用于添加运行类路径位置到类路原创 2016-02-22 14:25:45 · 1009 阅读 · 0 评论 -
爬虫攻略
互联网 Web 就是一个巨大无比的数据库,但是这个数据库没有一个像 SQL 语言可以直接获取里面的数据,因为更多时候 Web 是供肉眼阅读和操作的。如果要让机器在 Web 取得数据,那往往就是我们所说的“爬虫”了。现在项目需要,所以研究研究,把大概的过程和“坑”记录下来,也欢迎大渣批评和补充。爬虫的思路十分简单:按照一定的规律发送 HTTP 请求获得页面 HTML 源码(必要时需要转载 2016-02-22 14:20:24 · 277 阅读 · 0 评论 -
深入Java虚拟机(2)——Java的平台无关性
一、平台无关性的好处Java技术在网络环境下非常有用,其中一个关键理由是,用Java创建的可执行二进制程序,能够不加改变地运行于多个平台。这样的平台无关性随之带来许多的好处。这将极大地减轻系统管理员的工作;此外Java的平台无关性在嵌入式设备环境下也非常有用;从开发者的观点看,Java能够减少开发和在多个平台上部署应用程序的成本和时间。Java的平台无关性自然不言而喻。转载 2016-02-22 14:18:45 · 311 阅读 · 0 评论 -
@SuppressWarnings(unchecked)介绍
@SuppressWarnings原创 2016-02-22 12:48:17 · 384 阅读 · 0 评论 -
MyBatis批量查询用户信息
id="selectByIdBatch" parameterType="java.util.List" resultMap="userInfo"> SELECT id,name,sex,phone FROM user_info where> id in i转载 2016-02-21 12:19:22 · 495 阅读 · 0 评论 -
SpringMVC源码解读
SpringMVC源码解读 - HandlerMapping - RequestMappingHandlerMapping请求分发AbstractHandlerMethodMapping实现接口getHandlerInternal,定义查找流程RequestMappingInfoHandlerMapping根据RequestMappingInfo,细化匹配条件,并在匹配转载 2016-02-23 14:54:15 · 262 阅读 · 0 评论 -
SpringMVC源码解读 - HandlerMapping - RequestMappingHandlerMapping初始化
RequestMappingHandlerMapping ,用于注解@Controller,@RequestMapping来定义controller. 1 @Controller 2 @RequestMapping(value = "books") 3 public class BookController { 4 5 @RequestMapping(value =转载 2016-02-23 14:55:23 · 849 阅读 · 0 评论 -
Tomcat工作原理
1 - Tomcat Server的组成部分1.1 - ServerA Server element represents the entire Catalina servlet container. (Singleton)1.2 - ServiceA Service element represents the combination of one or more C转载 2016-02-23 14:56:54 · 213 阅读 · 0 评论 -
Maven基础配置--nexus私服配置
登录nexus私服后台,按照下图1-3的顺序进行添加仓库; 其中步骤3有三种仓库类型(Type)进行选择1、 Hosted Repository:本地仓库,在私服服务器上存放用户自行上传的jar包;2、 Proxy Repository:远程代理仓库,从远程下载jar包,并保存在私服服务器;3、 Repository Group:可把上述仓库合并为一转载 2016-02-23 19:30:37 · 199 阅读 · 0 评论 -
常用的缓存技术
1、常见的两种缓存本地缓存:不需要序列化,速度快,缓存的数量与大小受限于本机内存分布式缓存:需要序列化,速度相较于本地缓存较慢,但是理论上缓存的数量与大小无限(因为缓存机器可以不断扩展)2、本地缓存Google guava cache:当下最好用的本地缓存Ehcache:spring默认集成的一个缓存,以spring cache的底层缓存实现类形式去操作缓存的话,非常方便,转载 2016-02-23 19:29:07 · 665 阅读 · 0 评论 -
Eclipse快捷键整理
Eclipse快捷键整理如下:F3 :查看实现F4(或control + T) :继承树control + F6 :切换文件control + F7 :切换视图control + F8 :切换模板control + O :outlinecontrol + G :查看调用control + alt + H :查看代码引用co原创 2016-02-23 19:26:28 · 265 阅读 · 0 评论 -
日志简介
软件中总免不了要使用诸如 Log4net, Log4j, Tracer 等东东来写日志,不管用什么,这些东东大多是大同小异的,一般都提供了这样5个日志级别: × Debug × Info × Warn × Error × Fatal 一个等级比一个高(这五个级别是有顺序的,DEBUG === Debug ===原创 2016-02-23 19:20:29 · 239 阅读 · 0 评论