JAVA
文章平均质量分 56
yutiannanjingjiangsu
这个作者很懒,什么都没留下…
展开
-
Struts2、Spring、Hibernate、tomcat书籍推荐
无意中找到一本书《Struts2技术内幕 深入解析Struts架构设计与实现原理》决定配合struts2的源代码学习。应该能回答前面的大部分遗留问题了。好奇,发现真有《SPRING技术内幕 深入解析SPRING架构与设计原理》现在就缺tomcat了。不过tomcat的源码分析博客有很多。有一本《深入剖析TOMCAT》,看目录,有点乱的感觉,不过知识点也比较全面。还有原创 2013-09-01 14:08:44 · 2037 阅读 · 0 评论 -
用 java 实现二叉树
/** * 说明生活中遇到的二叉树,用 java 实现二叉树 。 这是组合设计模式。 我有很多个(假设 10 万个)数据要保存起来,以后还需要从保存的这些数据中检索是否存在 某个数据, (我想说出二叉树的好处, 该怎么说呢?那就是说别人的缺点) , 假如存在数组中, 那么,碰巧要找的数字位于 99999那个地方,那查找的速度将很慢,因为要从第 1 个依次往 67 后取,取出来后进行比转载 2013-09-23 15:05:43 · 2033 阅读 · 0 评论 -
编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。
/** * 编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。 * * :listFiles方法接受一个 FileFilter对象,这个 FileFilter 对象就是过虑的策略对象,不同的人提供不同的 FileFilter 实现,即提供了不同的过滤策略。 * */package test;转载 2013-09-23 14:59:39 · 2253 阅读 · 0 评论 -
编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中
/** * 编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中。 a.txt 文件中的单词用回车符分隔,b.txt 文件中用回车或空格进行分隔 */package test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileRea转载 2013-09-23 14:54:22 · 6896 阅读 · 0 评论 -
访问控制符
转自:http://book.2cto.com/201306/24615.htmlJava语言中,访问修饰符可以出现在类、成员变量、成员方法及构造方法前,用来控制访问权限。Java语言提供了4种级别的访问控制。public:Java访问控制权限中最为宽松的修饰符,中文含义为“公共的”。public修饰的类、属性及方法不仅可以跨类访问,还可以跨包访问。protected:介于pu转载 2013-10-04 15:49:46 · 956 阅读 · 0 评论 -
快速排序
/** * 快速排序,没你想得那么简单 * 注意:1 0 和4 4时的处理 */package test;import java.util.Random;public class Qusort { public static void qsort(int[] arr, int low, int high){ if(low>=high)return; //System.o原创 2013-10-02 18:50:38 · 614 阅读 · 0 评论 -
AJAX
推荐一本书 《JSP+Dreamweaver CS4+CSS+Ajax动态网站开发典型案例》,虽然涉及的内容不多,但很细很全面。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。异步JS和XML---XML是指服务器端JSP(servlet)页面发回的数据格式,其实不局限于JSP(servlet)页面转载 2013-08-30 12:30:10 · 683 阅读 · 0 评论 -
javascript的几个小例子
1、同一个脚本区域中,若定义了重复相同的函数,后者覆盖前者 function add(n){return n=n+1;} var str = add(2); alert(str); function add(n){return n=n+2;}//覆盖前者 var str2 = add(2); alert(str2); 2、正则表达式的使用转载 2013-08-21 14:05:19 · 517 阅读 · 0 评论 -
struts1
推荐《Struts 2完全学习手册》struts1的主要组成部分重要:业务逻辑控制器action负责处理用户请求,其本身不具有处理能力,而是调用Model来处理的。重要:很多框架都能够实现数据库连接池管理(本质还是JDBC),但整合框架时,使用哪个框架实现呢??比如SSH?struts1核心库:struts.jar转载 2013-08-30 16:09:17 · 750 阅读 · 0 评论 -
javaBean
JavaBean是什么javaBean是描述java的软件组件模型,实质是一个java类,必须设置成员变量的set()和get()方法的类,必须public,必须有一个默认无参数的构造方法(要实例化它,它当然需要满足这些要求)。(题外话:组件也是类)MVC框架中,jsp属于view,javaBean属于MC(将javaBean的数据和(非set\get)方法拆分,分布构造Model和C原创 2013-08-29 17:01:03 · 806 阅读 · 0 评论 -
jsp及其servlet
用户登录页面比较,观察jsp和它转成的servlet(*.java)。说明:客户端提交至的页面,还是本身。//C:\Program Files\tomcat6\webapps\Shopping<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"原创 2013-08-29 15:21:35 · 577 阅读 · 0 评论 -
tomcat和servlet
最好先了解一下tomcat的源码解析,再阅读下面的文字。Context的部署配置文件web.xml的说明 一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的 当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类 。1、 它首先载入在$CATALI转载 2013-08-29 20:40:57 · 973 阅读 · 0 评论 -
jsp
TODO 想将Jsp的重点一次指明。JSP的运行机制JSP的运行机制:1、首先,客户端发送URL请求。Tomcat服务器获取URL请求,如果获取的后缀名是.jsp,则Tomcat把请求交给JSPServlet处理2、如果JSP第一次被调用,将把JSP编译成Servlet,如果JSP不被修改将不会再被编译,否则将会再次编译。通常,在JSP文件没有被修改的前提下,JSP只会原创 2013-08-29 14:47:43 · 954 阅读 · 0 评论 -
JAVA和C/C++的一点区别
1、java中for()之后若不加{},只能执行语句,不能声明变量。C/C++可以2、java泛型,,不能是intC/C++可以原创 2013-08-15 19:10:59 · 620 阅读 · 0 评论 -
二分排序:直接插入排序+二分搜索
/** * 二分排序:直接插入排序+二分搜索 * 即用二分搜索定位元素插入位置 */package test;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] a = {转载 2013-08-17 16:02:01 · 639 阅读 · 0 评论 -
mysql的奇怪问题
1、报错永远很迷糊2、变量定义,前面不加@,即不能是@name---和sqlserver相反啊,有木有!!mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需要,可以使用default赋默认值。3、where判断时,使用列取别名,有原创 2013-08-26 20:37:20 · 1007 阅读 · 0 评论 -
C++和JAVA中一些区别,包括指向子类的引用会调用谁的方法,子类构造函数自动调用父类构造函数时,父构造会调用的谁方法
/* * 不同于C++,JAVA中子类总是重写父类函数。C++中子类只重写父类的虚函数。 * 不同于C++,JAVA中指向子类对象的父型引用,依然优先调用子类对象的函数。C++相反。 * 不同于C++,JAVA中子类的构造函数自动调用父类的构造函数,若父类的构造函数中调用了方法,依然是子类优先。C++相反 */package test;class father{ father()原创 2013-09-23 14:07:23 · 1398 阅读 · 0 评论 -
JAVA中clone浅复制
package test;public class Snake implements Cloneable{ private Snake next; private char c; Snake(int i, char x){ c = x; if(--i>0){ next = new Snake(i, (char)(x+1)); } } void increment()转载 2013-09-23 14:32:39 · 662 阅读 · 0 评论 -
外部类可以访问内部类的私有成员
/** * 外部类可以访问内部类的私有成员 */package test;public class Test{ int a =1; private static class inner{ private static Test t = new Test(); private static int b = 2; } private class inner2{ //p原创 2013-09-23 14:37:52 · 2937 阅读 · 0 评论 -
C++和java类对象赋值----值传递还是址传递
引用和址传递是有些不同的,这里只取相同的部分---不要被误导。假设class A,class B分别是C++和java的类。C++A的对象生成方法:1)A x; //调用构造函数生成x。后面还可以 x = y,调用拷贝构造函数,可能是值传递,也可能是部分引用,取决于class A是否重载“=”。2)A原创 2013-05-15 20:49:16 · 1721 阅读 · 0 评论 -
多线程单实例
/** * 只要多线程能成功获取单例(即多线程获得的单例实例是相同的),必然能共享单例的状态 * 注意: * 1、单实例,被一个线程调用时,另一个线程也可以同时调用 * 2、但同一个时刻,单实例的某个成员方法(成员变量?)可以被多个线程访问??实验结果好像是的(反例很少,担心是程序问题) * 3、某个时刻,某个线程调用单实例的某个成员方法A访问资源r,那么同时,另一个线程B可以调用单实例原创 2013-08-16 12:06:14 · 1178 阅读 · 0 评论 -
JAVA静态成员
/** * 对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共用。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新; 静态数据成员存储在全局数据区。静态原创 2013-08-17 09:53:52 · 1282 阅读 · 0 评论 -
servlet
这部分结合之前的几章一起看,以免遗漏。http://blog.163.com/qqabc20082006@126/blog/static/2292852520106249123739/Servlet什么是Servlet Servlet是一个JavaEE组件,是在服务器端运行以处理客户端请求并作出响应的程序。Servlet何时被创建转载 2013-08-29 21:25:47 · 799 阅读 · 0 评论 -
MVC
推荐购买《Struts 2完全学习手册》JSP+servlet+javaBean可以分别对应:view+control+model,但是耦合度还是很高。比如:JSP中使用实例化javaBean或使用javaBean的实例,就会导致相当程度的耦合,如果我们想换一个javaBean,就必须修改JSP代码。但如果将这种耦合使用方式放到配置文件(如*.xml)中,那么只需修改配置文件,多简转载 2013-08-30 14:35:01 · 467 阅读 · 0 评论 -
struts2
同样,请参照《Struts 2完全学习手册》如此,没有了struts1中的action-mapping配置请求数据和javaBean,注入action参数。而是action直接吃掉了javaBean,改为配置请求数据和action,更方便了。这里我有个疑问,action吃掉了javaBean(也就是FormBean),这不是把action提出来做转载 2013-08-30 18:13:58 · 605 阅读 · 0 评论 -
struts2续
struts2中action吃掉了数据javaBean的定义,调用业务javaBean,应该是作为新的Model存在;而struts.xml(或者说,struts.xml的所有者)作为Controller,控制页面跳转(发送响应结果)??struts2中action被称作业务控制器。新的Model包括action和用户实现的业务逻辑组件:业务javaBean??分清楚一个概转载 2013-08-30 21:21:07 · 610 阅读 · 0 评论 -
struts2配置详解(1)
参考《Struts 2完全学习手册》1、struts2框架配置文件web.xml-------------filterDispatcherstruts.xml-----------Struts启动时自动加载struts-2.0.dtd--------文档类型定义struts-default.xml-----Struts启动时自动加载还是因为struts.xml的default转载 2013-08-31 10:08:38 · 615 阅读 · 0 评论 -
struts2配置详解(2)
参考《Struts 2完全学习手册》感觉自己蛮坑爹的,很多东西想不明白,就写下来了,还问一句:对吧?呵呵,迟早回去看源代码弄清楚。现在忙着找工作,先迷糊着吧!想到一个问题,struts中,每个请求(对应的线程对象?)访问一个action实例,该实例是归请求独有的,即自己new后delete。但new、delete一个对象是很耗时间和资源的,为什么不新建一个pool,事先ne转载 2013-08-31 14:55:25 · 637 阅读 · 0 评论 -
struts2瞎猜想
瞎猜的,记下来,等看了源代码再更正。ServletContext只有一个实例,面向所有客户端,ServletContext.getRequest()可以根据session ID获得某个客户的Request。再从Request中获得session。ServletContext中有成员filter....和成员servlet....(或是filter数组、servlet数组),ServletC原创 2013-08-31 17:21:44 · 627 阅读 · 0 评论 -
action注解
同样,推荐《Struts 2完全学习手册》不喜欢action注解,1、麻烦;2、破坏了struts.xml的页面导航功能;3、提高了耦合度不过也有优点:想偷偷干点什么,就弄action注解。发个例子,就很清楚了。需要注意的地方在于命名: (1)Web.xml中配置Action类的包时,扫描规则转载 2013-08-31 21:07:43 · 1364 阅读 · 0 评论 -
单实例与只包含静态成员的类(待修改)
//纯属臆测,以待以后修改使用单实例的原因是:new和释放对象太耗资源。1、单实例,只建立一个实例。下面的创建方法,是看来的,据说,因为非懒惰式,也没使用synchronized getInstance(),所以效果更好。但没实现过,不知行不行,呵呵。 public class Singleton{ private Sin原创 2013-09-01 21:46:19 · 1099 阅读 · 0 评论 -
代理模式java
转自:http://blog.csdn.net/jianghuxiaoxiami/article/details/3403924(会使用,但Proxy类的原理暂没明白)为了看懂《深入浅出hibernate》/** * 1.代理模式 * --------和装饰模式有些类似,只不过少了装饰抽象类,不能用不同的派生类,为真实对象增加不同的功能代理模式的作用是:为其他对象提供一种代理以转载 2013-09-04 12:04:07 · 592 阅读 · 0 评论 -
装饰模式java
昨天开始看《深入浅出hibernate》,发现装饰模式看起来有点困难。今天稍稍理解了一下。/**装饰,装饰真实对象的方法而已。实质就是利用子类重写父类的方法。 * 装饰对象和真实对象有相同的接口----接口中的方法都被装饰。真实对象不想装饰的方法不要放在 接口中。 * 装饰抽象类的作用是:不同的派生类,可以给真实对象需要装饰的方法增加不同的功能。 * (1) 装饰对象和真实对象原创 2013-09-04 10:44:45 · 677 阅读 · 0 评论 -
线程安全和不安全
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类对象的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。----某种线程安全,针对单实例。----对于非单实例模式的类,每个线程访问的该类对象保证和其他线程的不同,那么该类也是线程安全的,例如SessionFactory。但是某个线程通过自己的SessionFactor原创 2013-09-14 17:37:07 · 705 阅读 · 0 评论 -
抽象类与接口
/** * 继承 * 构造函数不能被继承。 * 子类的构造函数先找基类的手写无参构造函数,如果没有没有手写无参构造函数的话就得显示调用有参的构造函数, * 如果也没有有参的构造函数,才会调用默认无参构造函数。 * 即如果你的父类手写了有参的构造函数,那么子类必须显示调用父类构造函数。 * * 抽象类-继承 * 抽象类,抽象成员方法,但没有抽象成员变量,且java中成员变量一般是原创 2013-09-23 14:45:12 · 735 阅读 · 0 评论 -
Java重载、覆盖与构造函数
/** * 拷贝构造函数---Copyf t2 = new Copyf(t1);就不会在调用默认构造函数了。 * 复制clone和引用 * 重载和覆盖都是子类对父类而言 * override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所原创 2013-08-16 19:17:41 · 1580 阅读 · 0 评论 -
栈操作LIFO,实现12月份的圧栈和出栈
/** * 栈操作LIFO,实现12月份的圧栈和出栈 * 利用Stack类实现----Stack继承自Vector(队列) * 完全看不出编程能力啊,笔试可以这样做吗? * * * Queue:是一个raw type----继承后才能用 */package test;import java.util.Stack;public class Stacks { static转载 2013-08-17 16:02:55 · 882 阅读 · 0 评论 -
从键盘输入两个整数,然后输出他们的平方值及立方值
/** * 从键盘输入两个整数,然后输出他们的平方值及立方值 * * java se5以后提供了一个比较好的输入方法下面是一个小例子:import java.util.*;class test{public static void main(String []args){Scanner cin=new Scanner(System.in); System.out.printl转载 2013-08-15 12:51:40 · 7087 阅读 · 0 评论 -
C/C++以及Java中移位的问题以及负数移位
#include "iostream"typedef unsigned char byte;using namespace std;int main(){ int x = 0x80000002;//-2的原码,但x不是-2,因为计算机中数值是以补码形式存储的 cout<<x<<endl;//-2147483646 int x2 = 0xFFFFFFFE;//-2,说明数值是以补码形原创 2013-08-14 21:53:06 · 1823 阅读 · 0 评论 -
基本类型和对象类型进行计算以及自动类型转换
/** * 猜测:基本类型和对象类型进行计算时,可以互相转换 * 自动类型转换--位数少的自动向位数多的转换 */package test;import java.math.BigInteger;import java.util.ArrayList;import java.util.Arrays;public class Test { /** * @param args原创 2013-08-23 15:34:22 · 637 阅读 · 0 评论