java
文章平均质量分 59
qianmacao
我就是我
展开
-
string 的内存分配情况,以及intern()方法
特别 注意:在jdk1.7以及以后对于intern()方法,保存的是第一次在常量池中创建对象的索引。也就是说后面字符串对象调用intern()获取都是第一次创建该字符串对象的实例的索引。String tr1 = new StringBuffer().append("计算机").append("课程").toString(); System.out.println(tr1.int原创 2017-01-12 15:56:26 · 1272 阅读 · 0 评论 -
线性表的分析及实现
(一)概念线性表在内存中是一块连续的存储空间。只要知道第一个元素在内存中的位置,其他元素的位置就不难知道。访问第N个元素的时间是o(1),但是要在数组中查找指定的数据则时间复杂度为O(N),当向数组中插入或者删除某个数据时的事件复杂度为O(n),因为插入或者删除任意元素后面的元素都要做出相应的移动。、(二)特性(1)同一性。保存的是同一类型的元素(2)序偶性。除了第原创 2015-01-22 10:04:35 · 753 阅读 · 0 评论 -
JAVA缓存的实现
缓存可分为二大类: 一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式; 二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查. 下面为一个简单的缓存代码 Java代码 package lhm.hcy.guge.frameset.cache; impo转载 2014-12-31 15:52:39 · 451 阅读 · 0 评论 -
JAVA 单例模式与hashmap结合实现缓存
在平时做项目的时候,有一些数据并不是很频繁的改动,而且这些数据在很多地方用到,这个时候就可以把这个数据做成缓存的形式,一旦有了缓存,就不用每次用到的时候,就去数据库里读取,只需要第一次拿到数据以后,以后就可以从缓存里面提取数据。一个通常的处理方式,就是在应用程序启动的时候,就从数据库读取数据,然后保存在缓存中.缓存的数据放在上面地方呢,在JAVA中比较方便的是放在hashmap里面。注意h转载 2014-12-31 15:44:36 · 1081 阅读 · 0 评论 -
java hashmap深度分析
java.util.HashMap是很常见的类,前段时间公司系统由于对HashMap使用不当,导致cpu百分之百,在并发环境下使用HashMap 而没有做同步,可能会引起死循环,关于这一点,sun的官方网站上已有阐述,这并非是bug。HashMap的数据结构 HashMap主要是用数组来存储数据的,我们都知道它会对key进行哈希运算,哈系运算会有重复的哈希值,对于哈希转载 2014-12-31 15:53:48 · 478 阅读 · 0 评论 -
Exception in thread "main" java.lang.IllegalThreadStateException
public static void main(String[] rags) { System.out.println(Thread.currentThread().getName() + " 线程运行开始!"); TestA a = new TestA(); a.start(); a.start(); //原创 2014-12-12 11:04:34 · 7300 阅读 · 0 评论 -
多线程学习(二)
Runnable和Thread的区别实现Runnable接口相对于继承Thread类来说,有如下显著的好处: (1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。 (2)可以避免由于Java的单继承特性带来的局限。我们经常碰到这样一种情况,即当我们要将已经继承了某一个类的子类原创 2014-12-12 10:53:30 · 481 阅读 · 0 评论 -
j_spring_security_check 404
最近在研究spring security的权限管理机制,自己试着搭了一个框架,可是在输入http:....../j_spring_security_check的时候,一直报404错误,在网上查了好多,都和我的不符,但是肯定是配置的问题,主要看spring.common.xml和spring.security.xml可是这两个的配置是正确的,一个一个字的和标准配置检查的, <form-logi原创 2014-12-11 15:51:33 · 10222 阅读 · 0 评论 -
Set的底层实现方式
Q:STL中set底层实现方式? 为什么不用hash?A: 第一个问题:set底层实现方式为RB树(即红黑树)。 第二个问题: 首先set,不像map那样是key-value对,它的key与value是相同的。关于set有两种说法,第一个是STL中的set,用的是红黑树;第二个是hash_set,底层用得是hash table。红黑树与hash table最大的转载 2014-12-10 14:42:29 · 14032 阅读 · 0 评论 -
web project的Jar包冲突
myeclipse创建web project的时候已经自动加上了一些包,bean-validator.jar, javax.annotation.jar, javax.ejb.jar . javax.resource.jar, javax.servlet.jar, javax.servlet.jsp.jar 等所以在创建了项目原创 2014-12-11 16:05:58 · 1072 阅读 · 0 评论 -
Tomcat之Session和Cookie大揭密
一、JSP和Servlet中的Cookie 由于HTTP协议是无状态协议(虽然Socket连接是有状态的,但每次用HTTP协议进行数据传输后就关闭的Socket连接,因此,HTTP协议并不会保存上一次的状态),因此,如果要保存某些HTTP请求过程中所产生的数据,就必须要有一种类似全局变量的机制保证数据在不同的HTTP请求之间共享。这就是下面要讲的Session和Cookie。转载 2014-12-10 15:07:01 · 6340 阅读 · 0 评论 -
java多线程学习
Java编写程序都运行在在Java虚拟机(JVM)中,在JVM的内部,程序的多任务是通过线程来实现的。每用java命令启动一个java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程,就是它自己。在这个JVM环境中,所有程序代码的运行都是以线程来运行。在Java程序中,JVM负责线程的调度。线程调度是值按照特定的机制为多个线程分配CPU的使用权。调度的模转载 2014-12-11 10:56:50 · 525 阅读 · 0 评论 -
Ehcache详细解读
Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考转载 2015-03-05 11:55:23 · 538 阅读 · 0 评论 -
使用 CAS 在 Tomcat 中实现单点登录
CAS 介绍CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:开源的企业级单点登录解决方案。CAS Server 为需要独立部署的 Web 应用。CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),转载 2015-03-05 12:38:39 · 745 阅读 · 0 评论 -
spring 定时任务
spring中的定时任务可以通过注解来实现。(一)首先在spring的配置文件applicationContext.xml中加入如下配置:[html] view plaincopyxmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="原创 2015-12-08 14:10:23 · 421 阅读 · 0 评论 -
Spring中@Async用法总结
引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。1. 何为异步调用? 在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺原创 2015-11-11 14:01:34 · 6121 阅读 · 0 评论 -
spring 定时任务的配置文件解析
scheduler : 在同一时间可以启动的定时任务的数量。这边设置的是20,那就是说,在某一特定时刻,只能有20个定时任务(使用@scheduler注解的方法)被启用。execotor : (使用@Asyn注解) task:executor/@pool-size:可以指定执行线程池的初始大小、最大大小 task:executor/@queue-capacity:等待执行的任务队原创 2015-12-08 15:47:06 · 958 阅读 · 0 评论 -
xmemcached详解
变更历史XMemcached简介XMemcached的主要特性高性能支持完整的协议支持客户端分布允许设置节点权重动态增删节点支持JMX与Spring框架和Hibernate-memcached的集成客户端连接池可扩展性使用指南依赖包如果你使用maven简单例子touch更新数据超时时间客户端分布CAS操作更全面的例子迭代所有keyIncr/Decr命名空间查看统计信息SASL验转载 2016-01-07 16:26:08 · 2241 阅读 · 0 评论 -
varchar和Nvarchar区别
类型长度使用说明长度说明char(n) 定长索引效率高 程序里面使用trim去除多余的空白n 必须是一个介于 1 和 8,000 之间的数值,存储大小为 n 个字节varchar(n)变长效率没char高 灵活n 必须是一个介于 1 和 8,000 之原创 2015-12-20 12:11:29 · 1024 阅读 · 0 评论 -
Java为什么需要保留基本数据类型
基本数据类型对以数值计算为主的应用程序来说是必不可少的。自从1996年Java发布以来,基本数据类型就是Java语言的一部分。John Moore通过对使用基本类型和不使用基本类型做java基准测试给Java中为什么要保留基本数据类型做了一个很有力的说明。然后,他还在特定类型的应用中把Java和Scala、C++和JavaScript的性能做了对比。在这些应用中,使用基本数据类型应用性能会转载 2015-11-29 11:48:12 · 1566 阅读 · 0 评论 -
SQL Server死锁总结
1.死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No转载 2015-11-11 16:53:46 · 3996 阅读 · 0 评论 -
WebSocket 实战
WebSocket 前世今生众所周知,Web 应用的交互过程通常是客户端通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给客户端,客户端浏览器将信息呈现,这种机制对于信息变化不是特别频繁的应用尚可,但对于实时要求高、海量并发的应用来说显得捉襟见肘,尤其在当前业界移动互联网蓬勃发展的趋势下,高并发与用户实时响应是 Web 应用经常面临的问题,比如金融证券的实时信息,Web 导转载 2015-03-05 14:41:03 · 2492 阅读 · 0 评论 -
Java RMI之HelloWorld篇
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技术。大名鼎鼎的EJB都是建立在rmi基础之上的,现转载 2015-03-05 11:55:55 · 454 阅读 · 0 评论 -
EhCache 分布式缓存/缓存集群
开发环境:System:WindowsJavaEE Server:tomcat5.0.2.8、tomcat6JavaSDK: jdk6+IDE:eclipse、MyEclipse 6.6 开发依赖库:JDK6、 JavaEE5、ehcache-core-2.5.2.jarEmail:hoojo_@126.comBlog:htt转载 2015-03-05 11:44:05 · 552 阅读 · 0 评论 -
CORBA版HelloWorld
CORBA,是一个很古老的技术,甚至诞生于Java之前,不过随着WebService、SOA、RMI等等技术的出现,CORBA由于过于复杂而渐渐淡出了人们的视线,不过在一些交互性很强的系统异构应用领域,CORBA似乎很重要,比如中国联通、移动、美国的数字电视系统应用领域,是CORBA把整个系统核心部分集成起来的。如果没有异构的、需要预留标准接口的、交互性很强的应用,你不应该考虑使用COBRA。转载 2015-03-05 11:56:37 · 667 阅读 · 0 评论 -
overload和override
overload是重载的意思,重载的方法一般有以下几个特点:(1)可以通过参数的个数不同重载;(2)可以通过参数类型不同重载;(3)返回值不同,这是在参数的类型或者个数顺序不同的前提下,也就是说,如果仅仅是返回值不同吗,其他都相同编译不能通过;(4)可以通过参数的不同顺序进行重载;(5)函数名相同;(6)指的是同一个类中的多个函数名相同的函数之间的关系。(7)不能通过访原创 2015-02-02 14:22:48 · 734 阅读 · 0 评论 -
string.split()方法对空字符的处理
java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误如下:String strtest = "1,2,";String arry[] = strtest.split(",");这样得到的数组元素个数只是2两个,为什么呢,最后一个","后没有内容,它没有作为空字符串成为第三个数组元素,结尾的空字符串被丢弃了!这个函数还有另一原创 2015-01-26 17:31:57 · 13988 阅读 · 0 评论 -
upload.parseRequest(request) 结果为null
一、项目基本环境:struts2等 二、基本需求&问题:需要自己写程序调用common-fileupload来处理上传的文件,但在代码调用upload.parseRequest(request)来处理时,返回了空的items commons-io在struts框架中无法获取upload.parseRequest(request)上传的文件的主要原因是因为struts将request进行原创 2015-01-26 17:16:08 · 5327 阅读 · 2 评论 -
Java Integer 缓存问题
[html] view plaincopypublic class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Integ转载 2014-11-20 17:15:01 · 731 阅读 · 0 评论 -
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
因为bean里有Date字段,且从数据库里读出来的是java.sql.Date赋值给了java.util.Date,转化成JSONArray时出错;jian原创 2014-11-03 17:13:09 · 1924 阅读 · 1 评论 -
session详解
一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 session。有时候我们可以看到这样的话“在一个浏览转载 2014-10-15 10:52:03 · 689 阅读 · 0 评论 -
NegativeArraySizeException
java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException java.lang.NegativeArraySizeException如果应用程序试图创建大小为负的数组,则抛出该异常。原创 2014-11-17 15:39:01 · 45416 阅读 · 0 评论 -
aop详解(二)
上篇讲了aop的原理以及使用jdk原创 2014-11-12 14:24:00 · 501 阅读 · 0 评论 -
aop详解
这几天研究了一下面向切面编程,它是OOP的延续。通过预编译和运行期的动态代理实现程序功能的统一维护。AOP可以对程序的各个部分进行分离,从而达到低耦合,一高程序的可重用性。它主要的用处有,日志的记录,事务的处理,安全控制,异常处理。实现原理其实就是将日志记录,事务处理这些功能从主导的业务逻辑中分离出来,从而在不改变业务逻辑的情况下添加一些额外的处理。在查找资料的时候,有介绍它是gof设计模原创 2014-11-12 11:25:49 · 704 阅读 · 0 评论 -
定义了一个数组 int CC [] ={1,2,3}; Array constants can only be used in initializers.
只能在声明时这样赋值int CC [] ={1,2,3}; 声明后就用循环赋值或者单个赋值。for(i=0; i<3; i++) cc[i] = 0x0;cc[0] = 1;cc[1] = 2;……原创 2014-10-24 13:20:45 · 3923 阅读 · 0 评论 -
递归与迭代
递归函数在运行时回带来部分运行时开销,原创 2014-10-24 17:01:18 · 1114 阅读 · 0 评论 -
spring的ioc机制
(一)首先定义一个类原创 2014-11-10 13:22:39 · 539 阅读 · 0 评论 -
Arrays.fill()
Arrays.fill()功能很Arrays.fill()功能很有限,只能用同一个值填充各个位置原创 2014-10-24 16:48:49 · 3888 阅读 · 1 评论 -
java反射机制详解
java反射机制?(一)概念jyib转载 2014-11-10 11:28:38 · 784 阅读 · 0 评论 -
nested exception is org.hibernate.PropertyAccessException: Null value was assigned to a property of
在action请求数据的过程中报出"Null value was assigned to a property of primitive type setter of"错误,搜索之后发现是因为数据库里相应的字段为NULL。原创 2014-11-20 17:33:18 · 3536 阅读 · 1 评论