java
文章平均质量分 75
围了个脖
java web 前端后台 张靓颖
展开
-
Java编程中测试网络连通性的解决办法
在网络编程中,有时我们需要判断两台机器之间的连通性,或者说是一台机器到另一台机器的网络可达性。在系统层面的测试中,我们常常用Ping命令来做验证。尽管Java提供了比较丰富的网络编程类库(包括在应用层的基于URL的网络资源读取,基于TCP/IP层的Socket编程,以及一些辅助的类库),但是没有直接提供类似Ping命令来测试网络连通性的方法。本文将介绍如何通过Java已有的API,编程实现各种场景原创 2013-05-17 16:56:40 · 1885 阅读 · 0 评论 -
SSH集成整合
集成 Spring 与 Hibernate 1,配置SessionFactory 1,配置 ---------------------- applicationContext.xml ------------------------ <bean id="sessionFactory"原创 2013-05-20 10:20:18 · 1431 阅读 · 0 评论 -
java web编程中 struts2+hibernate 实现B2C电子商务网站的登录 、注册中验证码的实现(源码精简版)
下边只在注册中实现1、首先是在Action中写出生成验证码所需的方法(下边是在MemberAction.java中写)package www.csdn.dbshop.action;import org.apache.struts2.ServletActionContext;import www.csdn.dbshop.domain.Admin;import www.csdn.dbs原创 2013-05-20 08:35:38 · 2232 阅读 · 0 评论 -
java多线程详解
一:理解多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。 多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。如果系转载 2013-05-19 21:17:43 · 935 阅读 · 0 评论 -
java 对电话号码的排序方法
对电话号码等排序和去重,有很多方法,可以用数组Arrays的方法,可以用map,set,Collections 。经过对比,TreeSet比hashset和hashmap都要来得方便,它已经集成自动升序和去重功能。hashset能去重,但排序需要转换成数组,Collections 排序则只能是List类型的数据。也就是说其他的至少排序去重要两步,而treeset一步就搞定了 。 import原创 2013-05-19 21:06:59 · 2690 阅读 · 0 评论 -
java 笔试之继承基础(看看你能做对几道题)初学者不要小看啊
先笔试,全是基础题,共30道简笔题,1.abstract class Name { private String name; public abstract boolean isStupidName(String name) {} } 大侠们,这有何错误? 答案: 错。abstract method必须以分号结尾,且不带花括号。 2. public class原创 2013-05-20 21:40:29 · 3662 阅读 · 1 评论 -
Class.forName()与new运算符 的区别
Class.forName(xxx.xx.xx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段Class aClass = Class.forName(xxx.xx.xx);Object anInstance = aClass.newInstan原创 2013-05-20 21:42:16 · 2366 阅读 · 0 评论 -
哈夫曼编码、哈夫曼树构建、哈夫曼树Java实现
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+ Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可转载 2013-05-20 21:49:06 · 6563 阅读 · 5 评论 -
继承概念与方法的重写小结
1. extends :英文的意思是扩展而不是继承,很好的体现了子类与父类的关系,子类是对父类的扩展,从这个意义上看,使用继承来描述子类与父类的关系是错误的,用扩展更恰当。在继承的基础上才又方法的重写(子类,父类)2.方法的重写: 原则:两同,两小,一大 两同:方法名,形参转载 2013-05-21 18:10:57 · 1259 阅读 · 0 评论 -
JAVA构造器内部的多态方法的行为
代码能说明一切:package test;public class Test { public static void main(String[] args) { new c(); } }class a { a() { System.out.println("父类构造方法"); callName(); } public void c转载 2013-05-21 20:43:20 · 1830 阅读 · 4 评论 -
java 强制类项转换
缘由:编写java程序时,引用变量只能调用它编译时的类项方法。而不能调用它运行时的类型的方法,即使它实际所引用的对象确实包含该方法。如果让这个引用变量调用它运行时类项的方法,则必须把它强制类项转化成运行时类项,需要用类项转化运算符(type)。 强制类项转化:1.基本类项的转化只能在数值类项之间进行,数值:整数型,字符型,浮点型。但数值不能和布尔型之间进行类项转化。转载 2013-05-21 21:00:24 · 1560 阅读 · 0 评论 -
Java多态性详解——父类引用子类对象
面向对象编程有三个特征,即封装、继承和多态。 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。 继承是为了重用父类代码,同时为实现多态性作准备。那么什么是多态呢? 方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关原创 2013-05-21 21:07:02 · 29005 阅读 · 8 评论 -
对象的属性则不具有多态性
多态出现的缘由:java的引用变量有两种类型:一个是编译时的类型,一个是运行时类型。 编译时类项:声明该变量时使用的类型决定。 运行时类项:实际赋给该变量的对象决定 如果编译时和运行时类项不一样就转载 2013-05-21 18:10:10 · 3061 阅读 · 0 评论 -
java 多态陷阱
照原来,先考考大家,在不运行的情况下说出下面程序的输出结果(请先注意这是关于多态的啊)package acm; //例一 class Test extends Main { private void write() { System.out.println("Test"); } } public class Main转载 2013-05-21 18:08:06 · 1096 阅读 · 0 评论 -
主题:构造方法内部的多态方法的行为
昨天在一群里看到如下一段代码,让我郁闷了一下午: class Super{ int i = 10; public Supper(){ print(); i = 20 ; } void print(){ System.out.println(i); } } class Sub extends Supper{转载 2013-05-21 19:06:41 · 1587 阅读 · 0 评论 -
java构造器小结
当创建一个个对象时,系统会该对象的属性默认初始化,基本类型属性的值为0(数值类型),false(布尔类型),把所有的引用类型设置为null. 构造器可以改变这种默认的初始化。 构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象????? 答:是创建java对象的转载 2013-05-21 20:59:17 · 6765 阅读 · 0 评论 -
为什么java中子类重写父类的方法时声明抛出异常不能比父类范围大
在java 中,当我们子类要重写父类中的方法,如果父类的方法有异常声明,那么子类重写这个方法时候,所要声明的异常不应该比父类的大。只能是小等,或者可以没有。原因如下。假如我们自定意义一个异常:public class MyException extends Exception {public MyException(String message) {}public MyEx原创 2013-05-21 16:45:42 · 12029 阅读 · 3 评论 -
java内部类有什么好处?为什么需要内部类?
提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就是在类中又定义了一个类(下文会看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了解,你会发现Java的原创 2013-05-23 10:27:39 · 13126 阅读 · 0 评论 -
Java中数据库连接池基本工作原理的详细讲解
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接 建立一个“缓冲池”。预先在缓冲池中放入一定数量的连转载 2013-05-23 10:30:17 · 3159 阅读 · 0 评论 -
Java对于Cookie的操作详解
1.设置CookieCookie cookie = new Cookie("key", "value");cookie.setMaxAge(60);设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。cookie.setPath("/test/test2");设置Cookie路径,不设置的话为当前路径(对于Ser转载 2013-05-23 10:46:21 · 2264 阅读 · 0 评论 -
(jsp/html)网页上嵌入播放器
这个其实很简单,只要在HTML上添加以上代码就OK了,前提是你的电脑上已经安装了播放器,如RealPlay。"C:/mp3/10.19/画心.mp3" width="480" height="100" loop="false" autostart="false"> 还有更多的的播放器和设置可供选择: 页面插入REAL播放器代码:原创 2013-05-23 10:33:12 · 13409 阅读 · 0 评论 -
java中的io系统详解
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWr转载 2013-05-23 10:50:28 · 1296 阅读 · 0 评论 -
Java内部类总结 (吐血之作)
内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建原创 2013-05-23 11:29:10 · 59309 阅读 · 28 评论 -
java final 关键字
根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是“这是无法改变的。”不想改变的理由由两种:一种是效率,另一种是设计。由于两个原因相差很远,所以关键子final可能被吴用。 接下来介绍一下使用到fianl的三中情况:数据,方法,类。 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的。有时数据的恒定不转载 2013-05-23 11:38:47 · 1942 阅读 · 0 评论 -
Java异常的分类
1. 异常机制 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。 传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但转载 2013-05-23 10:48:42 · 1295 阅读 · 0 评论 -
Java Serializable(序列化)的理解
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;转载 2013-05-23 10:52:28 · 2111 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变原创 2013-05-23 11:40:16 · 1159 阅读 · 0 评论 -
java中final的意义
1、如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间。2、final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于object reference时,final仅让reference保持不变。也就是说当reference一旦被初始化用于代表某个对象时,便再也不能改变指向另一个对象,但对象本身的内容确实可以改变的转载 2013-05-23 11:47:53 · 2414 阅读 · 0 评论 -
cookie 和session 的区别详解
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多转载 2013-05-24 22:03:38 · 1040 阅读 · 0 评论 -
Checked 和 UnChecked 异常 的使用场合
异常的概念 任何的异常都是Throwable类(为何不是接口??),并且在它之下包含两个字类Error / Exception,而Error仅在当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。典型的简易程序不捕获或抛出Errors对象,你可能永远不会遇到需要实例化Error的应用,那就让我们关心一下Exception。原创 2013-05-25 22:08:44 · 4065 阅读 · 0 评论 -
JAVA中SERIALVERSIONUID的解释
serialVersionUID作用: 序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。有两种生成方式: 一个是默认的1L,比如:private static final long serialVersionUID = 1L; 一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如: privat原创 2013-05-14 16:44:08 · 1104 阅读 · 0 评论 -
在 Java 的泛型类型中使用通配符
Java 从版本5起开始引入泛型(generics)机制。我们知道,Java 的泛型类型如同java.lang.String,java.io.File 一样,属于普通的 Java 类型。比方说,下面两个变量的类型就是互不相同的:List listObj = new ArrayList();List listStr = new ArrayList();虽然 String 是 Object原创 2013-05-28 20:50:21 · 11025 阅读 · 4 评论 -
java NIO 之 buffer and channel
作为nio的基础,本文主要介绍buffer和channel这两个重要的概念和应用。 1.buffercapacity(): buffer的最大容量limit(): 已用的buffer量position(): 当前定位下一个读/写的位置mark(): 最后一次用reset()重置的位置现在用一组图片演示例子:初始状态:position为0,原创 2013-05-14 17:35:35 · 1373 阅读 · 0 评论 -
serialVersionUID加深理解(例子)
如果我们不希望通过编译来强制划分软件版本,即实现序列化接口的实体能够兼容先前版本,未作更改的类,就需要显式地定义一个名为serialVersionUID,类型为long的变量,不修改这个变量值的序列化实体都可以相互进行串行化和反串行化。如果你没有考虑到兼容性问题时,就把它关掉,不过有这个功能是好的,只要任何类别实现了Serializable这个接口的话,如果没有加入 serialVersi原创 2013-05-14 17:24:45 · 1226 阅读 · 0 评论 -
java NIO 之 buffer and channel(2)
调试一个写混合数据,且数据长度不等的程序:其实文件的读入写出都是建立在bytebuffer上的,其它的什么longbuffer,charBuffer,doublebuffer等都是视图buffer,有点和数据库与视图的关系相似,但是不同的是视图buffer的改变要会引起bytebuffer的改变。buf.position(8);CharBuffer charBuf = buf.原创 2013-05-14 17:51:48 · 1313 阅读 · 0 评论 -
类 AudioInputStream 说明文档 中文版
javax.sound.sampled 类 AudioInputStreamjava.lang.Object java.io.InputStream javax.sound.sampled.AudioInputStream所有已实现的接口:Closeable************************************************************原创 2013-05-14 21:59:33 · 11468 阅读 · 1 评论 -
DOS命令行中用MAVEN构建 Java 和 Java Web 项目
一、Maven的安装 :1、将maven3.0解压到任一目录下,如D:\Program Files2、配置环境变量:变量名:MAVEN_HOME 变量值:D:\Program Files\apache-maven-3.0.4然后在Pathz中添加%MAVEN_HOME%\bin(同时Java环境变量配置成功)3、运行cmd,输入mvn -version。若显示版原创 2013-08-02 19:23:37 · 7763 阅读 · 0 评论 -
Hibernate之Criteria基本查询
要对资料库管理系统进行操 作,最基本的就是使用SQL(Standard Query Language)语句,大部份的资料库都支援标准的SQL语句,然而也有一些特定于资料库的SQL语句,应用程式配合SQL语句进行资料库查询时,若使 用到特定于资料库的SQL语句,程式本身会有相依于特定资料库的问题。使用Hibernate时,即使您不了解SQL的使用与撰写,也可以使用它所提供的API来进 行SQ转载 2013-08-07 20:16:26 · 1425 阅读 · 0 评论 -
Hibernate中,利用Criteria查询容器实现sql的写法
Criteria本身只是一个查询容器,具体的查询条件需要通过Criteria.add方法添加到Criteria实例中。 Criteria接口有很多重要的方法,如: 1、获取唯一结果的uniqueResult() 2、可实现分页的setFirstResult()和setMaxResult()方法 3、addOrder()排序方法 4、add()关联 第一步,创建一个Crite转载 2013-08-07 20:50:03 · 1956 阅读 · 0 评论 -
org.hibernate.criterion.Projections投影(Projections)
org.hibernate.criterion.Projections是 Projection 的实例工厂。我们通过调用setProjection()应用投影到一个查询。List results = session.createCriteria(Cat.class).setProjection(Projections.rowCount()).add( Restrictions.eq(“colo原创 2013-08-07 21:09:14 · 2313 阅读 · 0 评论