![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
潜龙2号
这个作者很懒,什么都没留下…
展开
-
Struts、Hibernate、Spring的原理以及优点
一、Struts工作原理MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的转载 2015-04-24 16:39:26 · 496 阅读 · 0 评论 -
同步与异步的概念
进程同步用来实现程序并发执行时候的可再现性。一.进程同步及异步的概念1.进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事.就像早上起床后,先洗涮,然后才能吃饭,不能在洗涮没有完成时,就开始吃饭.按照这个定义,其实绝大多数函数都是同步调用(例如sin,isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那转载 2015-11-13 10:56:54 · 637 阅读 · 0 评论 -
byte[]数组与十六进制字符串与字符串的互相转换
字符串转换成十六进制字符串方法1: /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char[] chars = "0123456789ABCDEF".toCharArray(); StringBuilder sb转载 2015-12-10 14:56:05 · 1205 阅读 · 0 评论 -
java json
创建jsonJava代码 //construct json and output it public String jsonTest() throws JSONException{ JSONObject json=new JSONObject(); JSONArray jsonMembers = new JSONArray();转载 2015-09-25 15:08:04 · 311 阅读 · 0 评论 -
java发送url请求进行文件的提交以及后台struts2的action接收处理
java发送url请求进行文件的提交以及后台struts2的action接收处理1、java模拟表单方式发送url请求进行文件的提交[java] view plaincopy/** * * @作者 王建明 * @创建日期 2013-06-27 * @创建时间 19:28:18 * @描述 —— 模拟表单转载 2015-12-01 16:19:27 · 1684 阅读 · 0 评论 -
SpringMVC multipart文件上传
一、介绍 spring内建的multipart支持网络程序文件上传。我们可以通过配置MultipartResolver来启动上传支持。它定义在org.springframework.web.multipart包中。spring是通过使用Commons FileUpload插件来完成MultipartResolver的。 默认情况下,spring不处理multipar的form信息,转载 2015-12-03 14:39:02 · 541 阅读 · 0 评论 -
使用Dom4j解析XML
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它. 对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。如今你可以看到越来越多的Ja转载 2016-01-22 20:42:29 · 377 阅读 · 0 评论 -
JAVA发送HttpClient请求及接收请求结果过程
1、写一个HttpRequestUtils工具类,包括post请求和get请求?12345678910111213141516171819202122232425转载 2015-12-04 15:43:05 · 28201 阅读 · 2 评论 -
使用spring @Scheduled注解执行定时任务
首先要配置我们的spring.xmlxmlns 多加下面的内容、[html] view plain copyxmlns:task="http://www.springframework.org/schema/task" 然后xsi:schemaLocation多加下面的内容、转载 2016-01-23 19:16:24 · 367 阅读 · 0 评论 -
java RSA加密解密实现
该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jar下载地址:http://download.csdn.net/detail/centralperk/5025595注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。RSA加密对明文的长度是有限制的,如果加密数据过大会抛出如下异转载 2015-12-08 11:03:38 · 713 阅读 · 0 评论 -
HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2015-12-08 16:33:48 · 350 阅读 · 0 评论 -
spring的rabbitmq配置
1、applicationContext-base.xml Xml代码 xml version="1.0" encoding="UTF-8"?> beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.or转载 2016-01-13 11:18:48 · 2941 阅读 · 0 评论 -
Spring RESTful风格url示例
REST是设计风格而不是标准资源是由URI来指定。对资源的操作包括获取、创建、修改和删除资源这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。通过操作资源的表现形式来操作资源。常用操作GET获取POST提交PUT更新Delete转载 2016-04-21 10:25:54 · 1553 阅读 · 0 评论 -
Java 利用commons-configuration.jar 动态修改配置文件(.properties)
import java.util.Map;import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.PropertiesConfiguration;import org.apache.commons.configuration.reloadin转载 2016-05-17 11:25:49 · 1328 阅读 · 0 评论 -
深入理解JVM—JVM内存模型
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子转载 2016-05-30 22:17:38 · 434 阅读 · 0 评论 -
org.apache.log4j.Logger详解
org.apache.log4j.Logger 详解1. 概述1.1. 背景 在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句转载 2015-10-23 14:52:41 · 614 阅读 · 0 评论 -
Jackson 框架,JSON和java对象的互相转换
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且J转载 2015-09-08 10:50:40 · 8874 阅读 · 0 评论 -
深入Java单例模式
在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。 1. 最简单的实现 首先转载 2015-04-19 10:46:06 · 360 阅读 · 0 评论 -
JAVA中关于链表的操作和基本算法
[java] view plaincopyimport java.util.HashMap; import java.util.Scanner; import java.util.Stack; /** * * @author kerryfish * 关于java中链表的操作 * 1. 求单链表中结点的个数: get转载 2015-04-21 15:09:07 · 409 阅读 · 0 评论 -
JAVA实现快速排序
快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。设要排序的数据是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这原创 2015-04-27 17:05:09 · 545 阅读 · 0 评论 -
终止java线程的三种方法
终止线程的三种方法 有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1. 使用退出标志终止线程转载 2015-05-09 22:56:47 · 653 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java转载 2015-05-08 21:33:28 · 379 阅读 · 0 评论 -
MySQL存储过程
1.1 创建存储过程MySQL中,创建存储过程的基本形式如下:CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body 其中,sp_name参数是存储过程的名称;proc_parameter表示存储过程的参数列表; characteristic参数转载 2015-07-05 17:16:12 · 671 阅读 · 0 评论 -
Java集合中对象排序
集合中的对象排序需求还是比较常见的,当然我们可以重写equals方法,循环比较;同时Java为我们提供了更易使用的APIs。当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。下面通过两个例子分别用Comparable和Comparator实现对User对象中年龄排序。Comparable接口方式类转载 2015-07-03 21:27:33 · 621 阅读 · 0 评论 -
Java NIO原理图文分析及代码实现
前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http:/转载 2015-07-03 14:23:25 · 250 阅读 · 0 评论 -
Java中堆内存和栈内存详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器转载 2015-07-07 15:50:25 · 324 阅读 · 0 评论 -
JVM调优总结
一、相关概念基本回收算法引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep)此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。转载 2015-08-26 19:42:07 · 322 阅读 · 0 评论 -
Spring 框架简介
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。在这篇由三部分组成的 Spring 系列 的第 1 部分中,我将介绍 Spring 框架。我先从框架底层模型的角度描述该框架的功能,然后将讨论两个最有趣的模块:Spring 面向方面编程(AOP)和控制反转转载 2015-09-25 15:37:31 · 489 阅读 · 0 评论 -
类的加载机制和反射
1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的转载 2015-09-28 10:55:17 · 349 阅读 · 0 评论 -
java内存分配
(1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编 译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为 它们都会导致编译程序无法计算准确的存储空间需求.转载 2015-09-28 11:20:48 · 458 阅读 · 0 评论 -
Spring中Controller和RequestMapping的详解
先看一个简单的实例:@Controller@RequestMapping("/hello")public class anyTypeController{ @RequestMapping(method={RequestMethod.GET,RequestMethod.POST}) public String processWebRequest(){ return转载 2015-09-28 19:43:17 · 11891 阅读 · 2 评论 -
数据库连接优化
*****修复连接泄露代码*****1. ndao封装的方法,不需要修复2. 直接操作DBResource的方法,通过定义vo类来使用ndao的封装3. 其他特殊情况,谨慎使用DBResource,确保所有的statement、resultset、transaction资源及时回收释放4. 线上紧急bug可先按3来处理一、基本参数配置1.转载 2016-05-31 17:52:10 · 1096 阅读 · 0 评论