自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shulan09的专栏

java学习……java笔记……java复习……还在摸索中,欢迎提出质疑^^

  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

转载 Js文件中调用其它Js函数的方法

Js文件中调用其它Js函数的方法  在项目开发过程中,也许你会遇这样的情况。在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能。我们知道,在html中,利用引入的两个js是不可以相互调用的。那么该如何解决呢?当然,你可以将代码通通copy过来,这样会让你的b.js会变得很长,也许已经影响到

2013-05-16 22:00:42 921

转载 javascript变量声明有误var的区别

var 不一定是用来定义局部变量的。jscript的全局变量和局部变量的分界是这样的:过程体(包括方法function,对象Object o ={})外的所有变量不管你有没有加var保留字,他都是全局变量。而在过程体内(包括方法function(){},对象Object o={})内的对象加var保留字则为局部变量,而不加var保留字即为全局变量。

2013-05-16 21:58:32 695

转载 javascript

前天参加了一个前端工程师的面试,完了以后深受打击。几下来的两场面试也陆陆续续的问到了javascript的相关知识,为了不再同一个地方跌倒两次,今天来总结一下javascript的相关知识吧。      先介绍一下javascript的内置对象吧。算了,这里有一篇介绍javascript内置对象文章,直接copy过来吧。Number:JavaScript Number 对象是 一个数值

2013-05-16 21:46:06 560

原创 观察者模式(Observer pattern)

观察者模式将观察者和被观察者分离开,它定义了一种一对多的依赖关系,让多个观察者同时监听同一个被观察者(主题对象)。当被观察者对象发生变化时,会通知所有观察者,使它们自动更新自己。举个例子,当用户单击网页上的某个按钮时,网页做出一些反应行为,例如,弹出一个对话框,那么这个对话框是怎么知道用户是否单击了按钮呢?这是因为,按钮被单击时,浏览器会通知所有观察这个按钮单击事件的观察者做出相应反应。观察者模式

2013-05-15 22:49:31 640

原创 适配器模式(Adapter pattern)

“设计模式”的概念最早是由建筑设计大师亚历山大提出的。亚历山大在《建筑的永恒之道》中时这样描述的:模式是一条有三个部分组成的通用规则:它表示了一个特定环境,一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。其实,软件行业也是如此,这些问题的本质就是模式。行业中的一些人将设计过程中那些解决特定条件下的问题的模式总结出来,就形成了我们通常所说的设计

2013-05-15 22:08:29 928

原创 hibernate缓存

使用hibernate架构,在首次访问数据时,速度很慢,但是如果同一时间,其他用户也也需要这些数据时,相应速度就会很快。这是因为hibernate的缓存机制。用户在需要数据时,会先从session中查询,如果session中有,就直接从session中取而不用查询数据库,如果没有才会查询数据库。当session中的对象更新使,会有一个版本标识,hibernate会根据这个版本标识来获知更新。如果缓

2013-05-15 00:22:31 601

原创 load()和get()

load()和get()都是Session接口的方法,都是用于获取实体对象的,都只需要提供实体类的class对象或完整的类名和ID值。那么,它们有什么区别呢?在回答这个问题之前,我们先来看一下这两个方法的主要功能细节。        根据主键去获取实体,是最常用的也是最简单的查询。如果使用JDBC的话,可能会使用到这样的sql语句:select * from xxx where id=?;

2013-05-14 23:52:41 663

原创 spring的依赖注入

依赖注入是spring 的IOC 容器中一个核心概念。它本质上来管理对象数据的填充和对象之间的关联关系。通过依赖注入,应用程序本身不会主动向容器请求资源,容器会自动把这些对象给应用程序。  IOC容器的核心思想是Spring提供的Bean工厂(SessionFactory)。在spring中,bean工厂创建的各个实例称作Bean。Bean工厂负责读取Bean定义文件,管理对象的加载,生成,维

2013-05-14 23:33:51 1053

原创 归并排序

下面这个是我自己根据归并排序的原理来写,很容易理解。package arithmetic;public class QuickSort3 { public static void sort(Comparable[] data,int low,int high) {// 参照元,一般以第一个元素为基准进行划分 int i = low; in

2013-05-08 09:31:10 469

原创 冒泡排序和选择排序

package arithmetic;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class BubbleSort { public static void main(String args[]){ //BubbleSort bubble=new B

2013-05-08 09:25:35 511

原创 插入排序

理论就不多说了,直接看代码吧。有些解释就直接注释在代码中了。package arithmetic;import java.util.Arrays;/*插入排序是最简单的排序方法,是一堆数,一个个来加入到新的数组中,即这个新数组原本是没有一个数,从一堆数中取一个数放进去,然后再取一个数, * 比较,大的放后面,小的放前面,以此类推,这种排序消耗的是来一个数和新数组的所有数进行比较

2013-05-08 09:24:41 522

原创 数组和list

数组转化成list:asList,如:           String[] arr = new String[] {"1", "2"};  List list = Arrays.asList(arr);    list转换成数组,我们可以用list的toArray方法,  如:    List list = new ArrayList();    list.add("

2013-05-05 21:04:05 482

原创 拷贝数组的数据

我们在拷贝数组时,最容易犯的一种错误就是使用复制运算符=来复制数组,然后对新数组的操作也会影响到原来的数据,那是一位它们本来就是同一段内存空间,是同一个对象。其实,我们可以利用system提供的arrayCopy方法来实现。      方法的原型是:         public static voidarraycopy(Object src,int srcPos,Object dest,

2013-05-05 20:56:55 591

原创 Struts2

三大框架怎么能落下Struts2呢?Struts2明确了页面设计人员、程序设计人员以及架构设计人员之间的分工。       它试图在不同的角度上提供网页设计人员、应用程序设计人员、架构设计人员解决方案,让不同技术的人员可以彼此合作又不互相干扰。从架构设计人员的角度来看,他只需做出一些配置与定义,定义后端bean与前端页面的关系。从网页设计人员的角度来看,Struts提供了一套像是新版本的HTM

2013-05-05 00:01:46 568

原创 spring的几个注意问题

1.beanid="sessionFactory"    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">       property name="dataSource">是spring里的类,类名必须为dataSource -->           refbean="data

2013-05-04 23:48:46 538

转载 iBatis和hibernate

iBatis和hibernate都是ORM框架,但是二者又有些区别,并且各有特色。下面,我们就来总结一下。1. iBatis 易于掌握。拿来文档看半天到两天就可以掌握了。   Hibernate可能需要 3 倍以上的时间来掌握。   2. iBatis 更容易进行 sql 的优化。     3. iBatis 可以进行细粒度的优化    3.1 比如说我有一

2013-05-04 23:38:03 504

原创 JDBC总结

SQL语句:创建数据库:create database atm;删除数据库:Drop database if exists atm;进入数据库:use atm;创建表:create table account        As(       Coad  varchar(32) NOTNULL,       Pass int(6) NOTNULL,       Mo

2013-05-04 23:31:22 701

原创 Hibernate n+1问题

关联查询时,如果外键为空,那么一共执行了n+1次查询,但是却只返回n+1个父表对象和n个子表对象,这就是hibernate的典型的N+1现象。Hibernate在检索与父表关联的子表对象时,使用了默认的立即检索对策,这种策略有一下两点不足:(1) select语句的数目太多,需要频繁的访问数据库,会影响检索性能。如果需要查询n个Customer对象,那么必须执行n+1次select查询

2013-05-04 23:22:38 613

原创 Spring配置

一直想整理一下spring事务配置的问题,但是总是感觉表达的不够精确,今天在一本书上发现了这个问题,感觉说的挺到位的,就拿出来分享一下吧。spring利用AOP机制来提供事务服务,事务管理器(TransactionManager)充当切面的作用。当某个目标对象的某些方法需要使用声名式事务方式服务的时候,首先需要创建TranstactionManager的Bean,该Bean一般需要一个数据源,例如

2013-05-04 23:12:07 463

原创 iBatis异常

今天用iBatis时,总是弹出异常:     om.ibatis.sqlmap.client.SqlMapException: There is no statement named User.findById in this SqlMap.       at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedSta

2013-04-25 15:56:33 1235

原创 线程通信

线程同步中有说用同步方法、同步代码块、lock锁实现线程同步,但有时候仅仅是同步还满足不了需求。例如,一个售票系统,分打印车票和售出车票两个线程,当无票时,要打印车票后才能售票,有票时直接售出。这样,两个线程之间就需要相互通信。        对于由synchronized修饰的同步方法和同步代码块,我们可以借助Thread类提供的wait()/notify()/notifyAll()三个方法

2013-04-23 11:18:41 612

原创 线程的同步

多线程编程常常容易突然出现一些“错误情况”,当多个线程共享资源时,经常会出现一些线程安全问题。以ATM为例,如果A/B两个人同时往一个账户(Account)中存钱,这个账户中本来有1000元,假如A取得了账户(Account)对象后,B也取得这个账户对象,然后A、B分别向该账户中存入1000元,查询账户余额会发现账户中只有2000元,而不是正常的3000元。我们先来看一下这段代码:     首

2013-04-23 08:24:41 544

原创 User Tread和Deamon Tread

Deamon Tread又称“后台线程”、“精灵线程”,相对应的,User Tread可以成为“用户线程”、“前台线程”。在整理JVM时提到JVM的垃圾回收机制实质上就是一个典型的Deamon Tread,那么Deamon Tread又是怎么样的呢?  java 线程可以分为两种:User Tread和Deamon Tread。一般通过main()运行的都是User Tread,当User T

2013-04-22 12:39:52 798

原创 控制线程

java的线程支持提供了一些便捷的工具方法,通过这些工具方法我们可以很好的控制线程的执行。        线程睡眠:sleep       如果我们需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,就可以通过调用Thread类的静态sleep方法,sleep方法有两种重载形式:               1.static void sleep(long millis):让当前正在

2013-04-22 12:33:56 657

原创 线程的生命周期

在最初谈线程时,就提到过线程的生命周期要经过新建、就绪、运行、阻塞、死亡五种状态。在线程被创建并启动以后,它并不是一启动就进入了执行状态,也不是一直处于执行状态。而且,在线程启动以后,它不能一直“霸占”CPU“独自运行,所以CPU需要在多条线程之间切换,于是线程也会多次在运行、阻塞之间切换。线程的各种状态之间的关系可以用一个图来表示:       新建状态:当程序使用new关键字创建了一个

2013-04-22 10:17:09 929

原创 创建线程类

一直想把关于线程的相关问题给理清了,结果拖了好几天。今天,希望一次性全解决了吧。不过,问题挺多,还得一个一个来。这里就先谈谈创建线程类。  java使用Tread类代表线程,所有的线程对象都必须是Tread类或其子类的实例。每条线程的作用是完成一定的任务,实际上就是执行一段程序流(一段执行程序的代码)。java使用run方法封装这样一段程序流。我们可以通过继承Tread类和实现Runnable

2013-04-21 23:42:24 708

原创 单例模式

顾名思义,“单例模式”就是只有一个实例(同一时间)。单例模式确保某一个类只有一个实例,这个类就叫单例类。单例模式有3个要点:             1.某个类只能有一个实例;             2.它必须自行创建这个实例;             3.它必须自行向整个系统提供这个实例。        为了避免其他类自由创建该类的实例,我们把该类的构造器使用private修饰

2013-04-21 22:00:02 533

原创 深入构造器

构造器是一个特殊的方法,这个特殊方法用于创建类的实例。我们新建一个实例对象时,用new 关键字的方式,这是因为java语言通过new 关键字来调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建对象。但是很多时候,我们用来创建实例的类中并写没有构造器,也可以通过new的方式创建实例。这是因为,如果程序员没有写为一个类编写构造器,系统就会该类提供

2013-04-21 21:02:35 800

转载 mysql中的数据类型的长度

前几天,出去面试的同学回来说,HR问了一个关于mysql数据类型的问题:存储比text类型还大的字符串时用什么。好吧,这个我也不知道。所以,就查了一下,以下是网上Copy来的,来自17jquery。        在mysql中创建表时,varchar类型必须指定长度,int类型可以不指定长度。当然,在mysql中使用界面创建表(不使用sql语句创建表),若不指定长度,它会为你指定默认长度,下

2013-04-19 23:03:14 732

原创 Spring

普通的多层架构中,层与层之间的依赖性很强,是相互耦合的,下层定义或实现改变都会影响到上层,各层对象的生命周期都是有上层对象控制的,效率低。一方面,需求变更时,代码的改变量很大,另一方面,对象的生产机制效率低。工厂模式解决了DAO与service层之间耦合,其他层之间的依赖性依然很强,属于耦合。Spring运用IOC(控制反转和依赖注入),将层与层之间的依赖关系打散。         控制反转:

2013-04-19 22:34:49 559

原创 hibernate

任何一种技术都是为了解决某些现存的问题而存在的,hibernate自然也不例外。在hibernate之前,我们所认识的技术架构中,都有如下的一些问题:              硬编码大量的sql(直接在类里写sql,实现数据逻辑):                    1. 工作量大,团队在数据逻辑上浪费大量精力                     2.一套数据库逻辑无法支持多

2013-04-19 20:38:16 597

原创 Tomcat

前面说完了servlet和JSP,我们知道,servlet和JSP都是在一定的容器中运行的。Tomcat提供了这样一个容器。同时,Tomcat更是一个web服务中运行的。它设定了某一域名与某一网站的对应关系。每一个网站都对应着一个域名,注册了域名,做了域名与IP的映射,只是代表有一个域名对应着一个服务器。但是,想要访问对应的网站,还需要有个软件打开某个端口,通过这个端口进行访问。这个软件就是web

2013-04-19 18:20:32 566

原创 JSP

前面我们知道Servlet根据服务器请求为用户返回资源,是处理动态页面的一种方法。我们可以把Servlet看成是集成html的java类。不过,如果把html集成到Servlet里面,在页面效果开发上比较困难,同时我们也要先做好html文档,然后再把html嵌到java代码中。这样,实现起来就比较繁琐。其实,还有一种可以处理动态页面的方式,就是jsp。  JSP的应用于Servlet一样,不同

2013-04-19 17:21:09 584

原创 Servlet

Servlet实质上是一个java类,只不过这个类需要符合一些规范。它必须实现java.servlet.Servlet接口的所有方法,提供一个无参的构造方法。它只能在web容器中存活,在java Web服务器中充当了信息资源的最小表示单位,代表了一个用户可以通过浏览器获取的资源。在架构设计上,servlet层用来完成页面逻辑,包括参数获取,页面跳转。Servlet可以无限制的扩展,它可以使用jav

2013-04-18 21:03:49 578

原创 集合框架

java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如栈、队列等,而且,还可以用来保存具有映射关系的关联数组。与数组相比,集合功能更强大,使用起来也更方面,只是,集合只能用来保存对象。  哦,集合还真是一个体系庞大的家族。不过大致上,我们可以将集合分为:Set、List、Map、Queue四种体系。Set代表无序、不可重复的集合;List代表有序、重

2013-04-18 17:08:48 743

原创 数组

真是的,总结数据类型怎么能把数组给忘了呢!数组是编程语言中最常见的一种数据结构,它可以用于存储多个数据,一个数据被称为数组元素,通常可以通过数组元素的索引来访问数组元素,包括元素数组元素赋值和取出数组元素的数据。显然,不可能是基本数据类型,所以,数组是引用数据类型。哎呀,分类也是一个问题,归到数据结构还是按数据类型划到java基础里呢?算了,整理完再说……         java数组要求所有

2013-04-18 11:54:07 578

原创 OOP的三大特性

OOP(Object Oriented Programing)面向对象程序设计的三大特性:封装、继承、多态。        封装,我们都很熟悉,把所有的成员变量把对象的所有组成部分组合在一起。封装定义程序如何引用对象的数据,控制用户对类的修改和访问数据。简单的说就是将变量和方法封装在一个类中,可以对成员变量进行隐藏,外部对类成员的访问都通过方法进行,能够保护类成员不被非法修改。封装利于模块化和

2013-04-18 10:36:31 2630

原创 String

整理一下才发现关于String 的问题还真不少,出了之前说过的toString()、valueOf()、.equals()之外,还有下面这些。         1、字符串发转,我们可以有两种方法实现字符串的反转,一种是利用字符串存储字符数据的原理,取出它的char(st.charAt(i))值,也可以用string.toCharArray方法将字符串转化成char数组,重新排列并保存。另一种是

2013-04-17 23:02:36 565

原创 类的加载

JAVA类通过class关键字进行定义,它代表了一种抽象的集合,例如,人类、动物类,在类里面定义了各种属性和方法,它们代表了每个类实例的数据和动作。java虚拟机对类只加载一次,对它的静态成员变量也只加载一次。        对象,指的是某一个特定抽象的实例,它属于一种类型,也就是对象是通过类来创建的。对象必须从属于某一个类,通过new关键字进行创建,它代表一个特定类型的实例,对象可以被多次创

2013-04-17 22:06:46 586

原创 java运算符

关于java运算符,我们大多都很熟悉,这里就总结一下我个人容易出现问题的吧。       1.算数运算符:/、%(求余)、++(自加)、——(自减)            注意:自加和自减都是针对变量而言的,不能直接对数值进行操作。而且,++在变量的左边和右边是不一样的。在左边时,表示先把操作数加1在放入表达式中,在右边时,表示先把操作数放入表达式中,再加1.例如:    运行

2013-04-17 21:04:20 699

lucene索引

lucene索引jar包和分词器,还有我之前遇到典型问题的简单说明。

2013-04-14

myeclipse过期解决

myeclipse过期时,只要运行myEclipseGen.java,生成一个序列码,然后按 window----preference----myeclispe-----subsuription----enter subscription,将生成的序列号填上即可

2013-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除