![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 69
huashanlunjian
这个作者很懒,什么都没留下…
展开
-
哈希算法
有学号和姓名为下的五个学生:5 tom、8 jane、12 bit 、17 lily 、40 sunny我们可以利用哈希算法根据id将学生姓名存入,再根据id检索。学生ID相当于KEY ,名字相当于VALUE代码如下:package com.algorithm.hash;public class hash { //哈希函数 public static int Has...原创 2011-07-26 18:02:43 · 127 阅读 · 0 评论 -
MYBATIS 的parameter
Parameter 1. 传入简单类型 JAVA代码:public User get(Long id) { return (User) getSqlSession().selectOne("com.liulanghan.get" , id);} MAPPER : <select id="findUserListByIdList" par...原创 2012-11-06 15:25:16 · 579 阅读 · 0 评论 -
Mybatis的Date类型不走索引的问题
该问题出现在ORACLE 数据库,其他数据库没有试过。如果JAVA中的属性为DATE,而数据库中是DATE类型的话。mybatis会默认将JAVA中DATE属性映射到数据库的Timestamp类型。这时就会有这样的查询where create_time >= v_time左边为DATE右边为Timestamp.类型不一致,ORACLE会隐式将小的转成大的。也就是变成这...原创 2013-04-18 15:44:58 · 2817 阅读 · 0 评论 -
Mybatis中resultMap
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。1.resultType 在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,...原创 2012-11-09 13:53:20 · 812 阅读 · 0 评论 -
Java中的Session和作用域
几乎所有的Web开发语言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中) request 在当前请求中有效 session 在当前会话中有效 (从登录到退出这段时间)application 在所有应用程序中有效 (服务器启动到停止...原创 2012-11-13 11:56:51 · 926 阅读 · 0 评论 -
线程安全,有状态,无状态的对象
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。进程有独立的地址空间进程有单独的地址空间,包括文本区域(text region)、数据区域...原创 2012-11-14 10:45:18 · 81 阅读 · 0 评论 -
JAVA static和Final
1.Static关键字 Static可以用来修饰属性、方法、构造静态块。 1.当static修饰属性时,可以创建具体的对象来调用该属性,也可以直接通过类名调用该属性。当创建对象调用该属性时,每个对象共同拥有一个静态成员变量,也就是说当其中任何一个对象修改该属性的值时,其他对象的属性值也同时改变。...原创 2012-11-14 11:46:28 · 82 阅读 · 0 评论 -
ThreadLocal
什么是ThreadLocal ThreadLocal称为线程局部变量,它为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。由于它是线程局部变量,所以是线程安全的。 ThreadLocal原理 ThreadLocal是如何做到为每一个线程维护变量的副本...原创 2012-11-15 15:28:24 · 83 阅读 · 0 评论 -
注解annotation
ava注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。1.1、@Retention: 定义注解的保留策...原创 2013-05-07 14:40:06 · 108 阅读 · 0 评论 -
Tomcat Server是如何处理http请求的
假设来自客户的请求为:http://localhost:8080/xhj/xhj_index.jsp1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应3) Engine获得请求localhost/wsota/wsota_index.j...原创 2013-05-08 10:24:35 · 66 阅读 · 0 评论 -
spring使用hessian例子
服务端代码:对外提供服务的接口,和普通接口一样public interface MathService { public int add(int a, int b); } 接口实现类,和普通接口实现类一样public class HessianMathService implements MathService { ...原创 2013-04-12 14:38:36 · 100 阅读 · 0 评论 -
JAVA异常
1.异常分类,如下图 error和RuntimeException为未检查异常,无需程序员显示抛出和捕获IOException等异常需要显示抛出和捕获异常。 2。关于异常的问题。 以前碰到过这样一个问题,系统中有如下代码:try{ ... }catch(Exception e){ ... }finally{ ... } 但是系统上线时...原创 2013-04-07 22:11:35 · 58 阅读 · 0 评论 -
String,StringBuffer与StringBuilder的区别
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内...原创 2013-04-07 22:08:32 · 59 阅读 · 0 评论 -
哈希算法检索字符串
先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做?有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止。 代码如下:public class hash { public static boolean equals(String str1,String str2){ int...2011-07-27 18:00:21 · 317 阅读 · 0 评论 -
eclipse包树形结构设置
突然让eclipse里面包的显示变成了树形,看的很不方便,找东西也不方便。整了一会终于找到了设置的地方原创 2011-03-31 09:14:14 · 1212 阅读 · 0 评论 -
一个JAVA程序的分析,关于=
看这样一个程序public class test { public static String getString(int i) { return "" + i; } public static void main(String args[]) { int col = 0; String[] arr = new String[10]; while (co...原创 2011-03-31 17:58:07 · 126 阅读 · 0 评论 -
检测一个对象是否每个字段都为空的方法
public static Boolean checkObjectIsNotNull(Object m) throws IllegalArgumentException, IllegalAccessException{ Boolean result = false; if(m != null){ Class clazz = m.getClass(); Field[...原创 2012-01-11 21:56:42 · 1961 阅读 · 1 评论 -
表连接的原理
当一个查询请求涉及到数据库的多个表时,必须用一定的连接条件或连接谓词将这些表连接起来,才能提供用户需要的信息 。常用的表连接方式: a. 嵌套循环连接(Nested Loop ) b. 排序合并连接(Sort Merge) c. 哈希连接(Hash join ) 嵌套循环连接( Nested Loop ) 代码如下: /* * 嵌套循环连接( Nested Lo...原创 2011-11-10 16:41:31 · 569 阅读 · 0 评论 -
struts与json
JSON插件执行的流程如下:struts中配置如下:<package name="json" extends="json-default" namespace="/test"> <action name="testByAction" class=" UserAction" method="testByAction&原创 2012-10-24 14:19:00 · 94 阅读 · 0 评论 -
struts中的package和namespace
package属性是用来实现继承的 namespace是用来解决重名的比如<package name="a" namespace="/a" extends="default"><package name="b" namespace="/b" extends="default"&原创 2012-10-24 15:25:28 · 130 阅读 · 0 评论 -
MyBatis的动态SQL
MyBatis 的动态SQL 是基于OGNL 表达式的,它可以帮助我们方便的在SQL 语句中实现某些逻辑。 MyBatis 中用于实现动态SQL 的元素主要有:·if·choose (when ,otherwise )· trim· where·set· foreach 1.if if 就是简单的条件判断,利用if 语句我们可以实...原创 2012-10-30 16:57:14 · 74 阅读 · 0 评论 -
spring定时任务quartz
一般的定时任务是采用的quartz, quartz有两种方式运行,第一种为普通的方式, 如果一个任务每三分钟执行一次,那么前三分钟的任务还没执行完,后面的任务会继续执行。这样的坏处会导致两个线程在同时处理一批数据,可能出现问题。 第二种方式是,如果一个任务每三分钟执行一次,那么前三分钟的任务还没执行完,后面的任务会等待(线程等待),这样会出现一个长长的等待队列...2013-04-07 21:31:04 · 105 阅读 · 0 评论 -
关于spring事务
在ORACLE数据库中,一般DDL语句是隐式COMMIT提交的,所以在修改表或者创建表时,不写COMMIT也会执行。但一条sql的时候,如果不显示commit(),SQL便不会持久化到数据库。在spring中,JdbcTemplate操作采用的是JDBC默认的AutoCommit模式,当没有显示指定事务时,JDBC会将一条SQL作为一个事务来执行。也就是说,数据还是会持久化到数据库。...2013-06-13 14:44:06 · 69 阅读 · 0 评论 -
removeAll方法使用的问题
看下面的代码:public class test { public static void main(String agrc[]){ List<String> a = new ArrayList<String>(); List<String> b = new ArrayList<String>(); a.add("1");...原创 2012-09-27 09:28:06 · 7093 阅读 · 1 评论 -
非阻塞同步机制与CAS操作
锁的劣势 Java在JDK1.5之前都是靠synchronized关键字保证同步的,这种通过使用一致的锁定协议来协调对共享状态的访问,可以确保无论哪个线程 持有守护变量的锁,都采用独占的方式来访问这些变量,如果出现多个线程同时访问锁,那第一些线线程将被挂起,当线程恢复执行时,必须等待其它线程执行完他 们的时间片以后才能被调度执行,在挂起和恢复执行过程中存在着很大的开销。锁还存在着...原创 2014-07-29 16:07:54 · 124 阅读 · 0 评论 -
synchronized
synchronized 关键字的作用一个词概括就是:线程同步。它可以将将对象或者Class加锁,用来防止两个线程同时访问一个数据。 看如下代码: package com.test.runnable;public class DoSomething implements Runnable{ private String name; public DoSom...2014-08-21 16:58:27 · 86 阅读 · 0 评论 -
JAVA并发控制的几种办法
假如有十张票,现在需要三个窗口(线程)卖,代码如下: package com.test.runnable;class MyThread implements Runnable { private int ticket = 10; public void run() { while (ticket > 0) { System.out.printl...原创 2014-08-25 16:43:09 · 879 阅读 · 0 评论 -
线程池有助于实现最佳资源利用率
为什么要用线程池?诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。 构建服...原创 2014-04-21 10:01:29 · 703 阅读 · 0 评论 -
什么是线程,如何创建线程
如果你学习过操作系统,那么一定对进程的概念非常熟悉,其实,几乎每种操作系统都支持进程——进程就是在某种程度上相互隔离的、独立运行的程序。进程的引入大大提高了任务并发执行的效率,但是,进程也因为耗费资源太大等缺陷限制了它在并行处理方面的发展。不过线程的引入改变了这一状况,线程也称做轻量级进程。就像进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变...原创 2014-04-21 12:03:11 · 287 阅读 · 0 评论 -
线程简介(转)
一、线程概述线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。进程和线程是现代操作系统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统...原创 2014-04-21 12:06:04 · 73 阅读 · 0 评论 -
spring 拦截器
1.拦截器配置 <mvc:interceptors > <mvc:interceptor> <mvc:mapping path="/user/**" /> <bean class="com.xxx.interceptor.UserInterceptor"></bean>原创 2015-05-05 16:07:06 · 96 阅读 · 0 评论 -
用 ThreadLocal 管理用户session
很多项目中需要在代码中使用当前登录用户的信息,但是又不方便把保存用户信息的session对象传来传去,这种情况下,就可以考虑使用 ThreadLocal。 ThreadLocal是一个依附于本地线程的变量,按照我的理解,每次对服务器请求,都会使用到一个线程,ThreadLocal的作用就是在这个线程的使用过程中只为这个线程所用。 说说具体如何管理用户session。 现在...原创 2014-11-10 15:47:28 · 1018 阅读 · 0 评论 -
java dump线程日志
JVM 自带的工具获取线程堆栈:JDK自带命令行工具获取PID并做ThreadDump:1. jps2. jstack <pid>原创 2016-02-15 10:52:45 · 932 阅读 · 0 评论 -
spring实现初始化和销毁bean之前进行的操作
第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和 destory-method方法 第三种是: 通过bean实现InitializingBean和 DisposableBean接口 ...原创 2014-03-03 19:01:08 · 105 阅读 · 0 评论 -
birt读取现有系统的数据库配置作为数据源
Birt的数据源可以用多种形式,当我们把BIRT嵌入到现有系统时,一般想读取现有系统的数据库配置。那么怎样读取呢,配置如下: 建议脚本数据源。然后在beforeOpen中加入如下代码:importPackage(Packages.org.springframework.context.support);//引用Spring类importPackage(Packages.or...2013-09-10 13:51:05 · 204 阅读 · 0 评论 -
int和Integer的区别
先看一个例子: public class test { public static void main(String args[]){ Integer c1 = 1; Integer d1 = 1; int c2 = 1; int d2 = 1; Integer c3 = 300; Integer d3 = 300; int c4 = ...原创 2013-02-27 16:13:51 · 140 阅读 · 0 评论 -
JAVA代理模式
代理模式是我们比较常用的设计模式之一。其中新思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信,代理模式一般涉及到的角色有: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时...原创 2013-01-22 18:15:56 · 199 阅读 · 0 评论 -
汉字转拼音
import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;import net.sourceforge.pin...原创 2013-11-26 16:39:04 · 77 阅读 · 0 评论 -
freemarker操作字符串,数字,布尔类型函数
布尔类型 1. 后台不能将值设置为Boolean对象类型,否则不能传到前台。只能设置为boolean类型。 2.不能直接${test}获取,而需要${test? string('true', 'false')}来获。 字符串类型 1. substring(start,end)从一个字符串中截取子串 start:截取子串开始的索引,start必须大于等于0,...原创 2013-11-26 16:45:02 · 397 阅读 · 0 评论 -
JVM 内存监控
jps Java进程查看工具,实际上它和Unix/Linux上面的ps命令的功能差不多 jmap jmap -histo pid号>log文件名 jmap -dump:file=a.hprof pid号:中间不能有空格 #instance是对象的实例个数 #bytes是总占用的字节数 class name对应的就是Class文件里的class的标识 ...原创 2013-11-28 14:17:06 · 111 阅读 · 0 评论