随笔
文章平均质量分 54
钟渊
持续学习
展开
-
【基础篇】HashMap中capacity 的探究
相信很多猿人工作都使用hashmap ,但是真正对他了解的有多少呢?今天我们就来看下我们在new hashmap 的时候,它的大小是怎么变化的。先看下这段代码:public static void main(String[] args) throws Exception{ Map<String,String> map = new HashMap<>(3); Class<? extends Map> aClass = map.ge原创 2021-08-28 21:58:48 · 448 阅读 · 0 评论 -
spring-retry重试机制验证
1、背景调用第三方接口,按照最大次数轮询去获取结果,或因为网络波动导致超时等原因导致返回失败情况。 Retry重试框架,支持AOP切入的方式使用,支持注解;重试次数、重试延迟、重试触发条件、重试的回调方法等功能来实现重试机制2、相关配置pom文件<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artif原创 2021-02-26 09:29:34 · 322 阅读 · 0 评论 -
一次重构的话题
背景:最近公司开始自建供应链系统,我接手了商家端各个系统的开发和重构任务,说实话对于一些祖传代码看起来真的很头疼,没办法只能一步一步的去梳理原理的业务逻辑,本篇主要记录下有关if- else 在项目重构时的一些案例和心得。目的:代码可扩展、可维护。使用工厂模式和策略模式重构前:if (VendorCheckStatusEnum.PASS.getCode() == checkStatus) { //doSomething } else { //doSomething原创 2020-07-26 20:29:40 · 191 阅读 · 1 评论 -
lombok中@Accessors注解的介绍
Accessors类中的属性:1、fluent:流畅的,设置为true,getter和setter方法的方法名都是基础属性名,且setter方法返回当前对象。@Data@Accessors(fluent = true)public class Person { private Long id; private String name; // 生成...原创 2020-02-24 09:57:26 · 516 阅读 · 0 评论 -
JVM内存参数之详解
常用参数说明:prod_java_mem_opts=-server 堆的最大空间:-Xmx2g 堆的最小空间:-Xms2g 新生代和老年代的比:-XX:NewRatio=2 设置G1作为GC的收集器:-XX:+UseG1GC 垃圾回收的最长时间:-XX:MaxGCPauseMillis=200 G1堆内存的区块大小:-XX:G1HeapRegionSize=16m 设置用...原创 2019-11-19 15:16:20 · 549 阅读 · 0 评论 -
基于Elasticsearch+Kibana+Filebeat简单说明
1、ELK的组成部分通过上图我们可以看到,ELK 是由三个Elastic 的产品组合而成, 分别是ElasticSearch、Logstash 和Kibana。 三者之间是的部署关系如下图所示: Logstash 就好比是挖矿工,将原料采集回来存放到ElasticSearch 这个仓库中, Kibana 再将存放在ElasticSearch 中的原料进行加工包装成产品,输出到w...转载 2019-11-13 20:43:09 · 2614 阅读 · 0 评论 -
Epoll模型
Linux2.6 内核epoll介绍 先介绍2本书《The Linux Networking Architecture--Design and Implementation of Network Protocols in the Linux Kernel》,以2.4内核讲解Linux TCP/IP实现,相当不错.作为一个现实世界中的实现,很多时候你必须作很多权衡,这时候参考一个久经考验的原创 2016-03-09 18:53:53 · 348 阅读 · 0 评论 -
在线购物系统权限模块
1)部门模块 1)设计实体/数据库表(领域建模/数据库建模) 2)设计业务bean(DAO层) 有些项目有Service层和DAO层,这样主要是为了解决有多个数据库来源。 一般的项目有service层就够了,不然70%的代码都是重复的。 不管有没有DAO层,事物一定要在业务层打开。原创 2016-02-28 23:04:10 · 738 阅读 · 0 评论 -
Tomcat的部署和路径的加载
一、静态部署1、直接将web项目文件件拷贝到webapps 目录中 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如转载 2016-05-27 16:48:01 · 1855 阅读 · 0 评论 -
记录webservice
概念:1、WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用. 2、我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单调用了一下服务器上的一段代码而已。转载 2016-05-06 11:20:32 · 627 阅读 · 0 评论 -
SOAP和wsdl的区别
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序原创 2016-05-06 16:28:55 · 3057 阅读 · 0 评论 -
xml解析方式
首先定义一个接口[java] view plain copy package com.lei.xml; import java.io.InputStream; import java.util.List; public interface XMLParser { // 解析xml原创 2016-05-06 18:07:53 · 493 阅读 · 0 评论 -
javabean学习
一、JavaBean简介JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点:1.可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困原创 2016-05-09 17:49:21 · 438 阅读 · 0 评论 -
js中join()与 split()的对比
数组的一些方法:1.join()和split()方法 var x;var a=new Array();a[0]="XHTML";a[1]="CSS";a[2]="JavaScript";alert(a.join());alert(typeof(a.join));alert(typeof(a));join() 方法用于把数组中的所有元素放入一个字符转载 2016-07-22 17:41:45 · 1966 阅读 · 1 评论 -
流媒体服务器总结
最近一直研究流媒体服务器的搭建及使用,今天就简单整理下方便以后查阅。一:企业级的流媒体平台框架:EasyDarwinEasyDarwin是在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行开发和维护的免费开源、高效、易扩展的面向企业级的流媒体平台框架,开始于2013年,遵循 Apple开源License,为了敏捷流媒体服原创 2016-06-15 09:08:33 · 5342 阅读 · 0 评论 -
springmvc+hibernate时Jackson报错org.codehaus.jackson.map.JsonMappingException
一、错误信息这里两个实体类:Dep(部门) 和 emps(员工) 是一对多双向关联刚开始在Dep.java中添加了@JsonIgnoreProperties(value={"emps"}),还是行不通。尽然还是报错。第二次报错:No serializer found for class org.hibernate.proxy.pojo.javassist.Java原创 2016-07-27 09:45:45 · 567 阅读 · 0 评论 -
Hibernate的实体类中为什么要继承Serializable?
hibernate有二级缓存,缓存会将对象写进硬盘,就必须序列化,以及兼容对象在网络中的传输 等等。java中常见的几个类(如:Interger、String等),都实现了java.io.Serializable接口。实现 java.io.Serializable 接口的类是可序列化的。没有实现此接口的类将不能使它们的任一状态被序列化或逆序列化。序列化类的所有子类本身都是可序列转载 2016-07-18 15:03:49 · 934 阅读 · 0 评论 -
org.hibernate.hql.ast.QuerySyntaxException: is not mapped 异常处理
一、错误信息二、解决方法1、最容易想到的,就是你的from是实体类而不是表名,这个应该大家都知道,注意大小写2.你的hibernate配置文件中没有加入相应的映射文件3、如果上面两方面都对了,还有错,基本上处于崩溃状态,哈哈....一般是上面两种原因,还是不行,那就是你hql语句有错了,好好检查一下,可能是空格的原因。原创 2016-07-29 10:18:42 · 1173 阅读 · 0 评论 -
对称加密算法DES、3DES和AES
学习交流关注微信公众号:钟渊博客1、对称加密算法1.1定义对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,...原创 2016-07-11 16:26:46 · 28229 阅读 · 0 评论 -
java中finally语句快会不会执行的问题
一、先看下面的代码public static void main(String[] args) { try { System.out.println("how's the weather today?"); } catch (Exception e) { System.out.println("i don't k原创 2016-08-04 17:13:26 · 2204 阅读 · 0 评论 -
springmvc中静态资源加载不出来
一、问题 点击登陆或退出时,页面失去样式.......如果你的DispatcherServlet拦截 *.do或者*.action这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。二、解决方法(1)激活Tomcat的defaultServlet来处理静态文件原创 2016-08-01 17:07:10 · 5552 阅读 · 0 评论 -
spring mvc开发接收日期字段表单提交的问题
今天遇到的这个问题和大家分享下。。 首先Emp中有birthday(Date)属性,使用表单提交的时候,一直报错,研究了一大会终于搞定了。解决办法: 1、在实体类中添加注解如下@DateTimeFormat(pattern="yyyy-MM-dd") private Date birthday;//出生年月日2、最主要的添加一个jar包下载地址:点原创 2016-07-22 10:17:22 · 4419 阅读 · 3 评论 -
登陆页面实现保存帐号密码功能
通过Cookie实现"记住我"的功能1.登陆页面如下:每个字段对应的属性name如下表:用户帐号name登陆密码password验证码checkNum记住我rememberMe2.Action中的处理如下:在用户第一次登陆后,进行Cookie进行处转载 2016-08-05 15:21:15 · 3507 阅读 · 1 评论 -
jquery的each()详细介绍
each()方法能使DOM循环结构简洁,不容易出错。each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组、多维数组、DOM, JSON 等等在javaScript开发过程中使用$each可以大大的减轻我们的工作量。下面提一下each的几种常用的用法 each处理一维数组 var arr1 = [ "aaa", "bbb", "ccc原创 2016-08-02 16:44:33 · 872 阅读 · 0 评论 -
数组的排序
一、选择排序图例:选择排序我们可以将它看做是" 大圈套小圈 "。拿着0角标的元素,依次跟下一个角标的元素进行比较。代码:class ArraySort { public static void sort(int arr[]) { for(int i=0;i<arr.length-1;i++){ for(int j=i+1;原创 2016-08-27 23:14:33 · 506 阅读 · 0 评论 -
LRU、LFU、FIFO算法总结
一、概述(1)FIFO:First In First Out,先进先出(2)LRU:Least Recently Used,最近最少使用(3)LFU:Least Frequently Used,最不经常使用 FIFO表示先进先出,类似于对列,在数据的结构上使用对列来实现。结构图:1. 新访问的数据插入FIFO队列尾部,数据在FIFO队列中顺序移动;2.原创 2016-08-29 21:49:36 · 9589 阅读 · 0 评论 -
ideal的安装流程
一流程图:双击进入安装界面安装完成。原创 2016-08-30 16:44:02 · 9892 阅读 · 0 评论 -
ajax跨域问题
一、首先来看看在页面中如何使用jQuery的ajax解决跨域问题的简单版:$(document).ready(function(){ var url='http://localhost:8080/WorkGroupManagment/open/getGroupById" +"?id=1&callback=?'; $.ajax({ url:url,原创 2016-08-30 20:50:34 · 305 阅读 · 0 评论 -
Tomcat启动脚本浅析
本文以Tomcat5.0.28为例,讨论一下Tomcat的启动过程及常见问题。大家都知道,Tomcat最普遍的启动方法就是在DOS 命令行窗口中执行Tomcat的bin目录下的startup.bat文件(双击该文件即可启动)。 1. startup.bat脚本解析 下面我们首先来看看startup.bat脚本是如何启动Tomcat的。Startup脚本非常明了,它的主要任务就是先设置CAT转载 2016-08-22 17:38:02 · 2898 阅读 · 0 评论 -
List集合中的对象根据属性排序
集合类List存放的数据,默认是按照放入时的顺序存放的,比如依次放入A、B、C,则取得时候,则也是A、B、C的顺序,实际场景中,有时我们需要根据自定义的规则对List中的元素进行排序,该如何实现呢?看下面小例子:package test.tool.gui.dbtool.util; import java.util.ArrayList; import java.util.Colle转载 2016-08-22 20:59:01 · 1146 阅读 · 0 评论 -
String与StringBuffer的区别
简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuf转载 2016-09-01 22:58:49 · 517 阅读 · 0 评论 -
Jquery选择器总结
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div") 选择所有的div标签元素,返回div元素数组 $(".myClass") 选择使用myClass类的css转载 2016-08-25 21:01:33 · 332 阅读 · 0 评论 -
Ajax实现页面局部刷新
直接看代码吧!!!!!!!!!页面中的js代码//ajax局部加载页面 function sortInfo(id,type){ $.get('${base}/artGallery/artGalleryInfo.jhtml',{'id':id,'type':type},function(data){ //得到data中form中的html // var dd= $(data原创 2016-09-19 18:56:47 · 8679 阅读 · 0 评论 -
关于servletContext.getRealPath()空指针的问题
maven项目启动报空指针,整了几天终于弄好了,记录下。。。刚开始这样写的private static final String INSTALL_INIT_CONFIG_FILE_PATH = "/install_init.conf";File installInitConfigFile = new File(servletContext.getRealPath(INSTALL_I原创 2016-10-10 21:08:06 · 2858 阅读 · 0 评论 -
HandlerInterceptorAdapter类浅析
今天看代码时,发现Spring中的这个类也可以实现拦截器的功能,就研究了下,该类在org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个包下面。下面看下代码:public class MemberInterceptor extends HandlerInterceptorAdapter { //预处理原创 2016-09-24 22:24:13 · 3069 阅读 · 0 评论 -
request方法大全
协议:request.getProtocol()输出:HTTP/1.1服务器信息 getServletConfig().getServletContext().getServerInfo()输出:JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor转载 2016-09-24 23:25:17 · 436 阅读 · 0 评论 -
div中 文字垂直居中的解决方案
两种方法 1. 显示 //不需要vertical-align:center;因为没用,重点是上绿色部分,当文字多余一行是不行,采用第二种 2.用padding,填充 下面是我找的资料,蛮详细的在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以原创 2016-09-26 10:03:28 · 1356 阅读 · 0 评论 -
运行tomcat报Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"
启动tomcat报错:Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space PermGen space的全原创 2016-09-26 13:56:13 · 29588 阅读 · 3 评论 -
删除CentOS6.5系统自带的jdk
首先查看JDK的版本,java -version卸载步骤如下:[root@localhost ~]# rpm -qa|grep jdkjava-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64[root@localhost ~]# rpm -qa原创 2016-10-22 13:08:01 · 4437 阅读 · 0 评论 -
使用hilo高低位算法-生成商品编号
/** 高低位算法*/private class HiloOptimizer { private String prefix; //前缀 private int maxLo; private int lo; private long hi; private long las原创 2016-09-27 18:22:43 · 2431 阅读 · 0 评论