自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (3)
  • 收藏
  • 关注

原创 分页脚本

<br />function setpage(current_page,pageCount,type) { var totalpage,pagesize,cpage,count,curcount,outstr; cpage=current_page; pagesize=7; totalpage=Math.ceil(pageCount/pagesize); outstr=""; if(totalpage<=5){ //总页数小于十页 for

2011-03-30 20:25:00 867

转载 Spring AOP的底层实现技术

AOP概述软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象的语言,我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃,AOP的引入将有效弥补OOP的不足,OOP和AOP分别从纵向和横向对软件进行抽象,有效地消除重复性的代码,使代码以更优雅的更有效的方式进行逻辑表达。AOP有三种植入切面的方法:其一是编译期织入,这要求使用特殊的Java编译器,AspectJ是其中的代表者;其二是类装载期织入,而这要求使用特殊的类装载器,Aspe

2011-02-27 12:53:00 1565

原创 java面试题集锦(四)

<br />JAVA 代码找错:<br />1:<br />abstract class Name { private String name; public abstract boolean isStupidName(String name) {}} <br />答案: 错。abstract method必须以分号结尾,且不带花括号。<br />2:<br />public class Something { void doSomething () { priv

2011-02-26 22:09:00 1003

原创 java面试题集锦(三)

101、java中会存在内存泄漏吗,请简单描述。会。如:int i,i2;  return (i-i2);   //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。 102、java中实现多态的机制是什么?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 103、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动

2011-02-26 21:50:00 1497 1

原创 java面试题集锦(二)

<br />51、垃圾回收的优点和原理。并考虑2种回收机制。Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃

2011-02-26 21:46:00 992

原创 java面试题集锦(一)

<br />面向对象的特征 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的

2011-02-26 21:44:00 1115

转载 Java开发程序员必知的Java编程的10种错误

<br /><br />作为程序员在程序开发的过程中难免的要出现一些不是自己水平问题二出现的一些常见的错误。本文就为大家介绍一些常见在Java开发过程中遇见的一些常见的错误。<br />一、常见错误1:多次拷贝字符串<br />测试所不能发现的一个错误是生成不可变(immutable)对象的多份拷贝。不可变对象是不可改变的,因此不需要拷贝它。最常用的不可变对象是String。<br />如果你必须改变一个String对象的内容,你应该使用StringBuffer。下面的代码会正常工作:String s = 

2011-02-25 13:20:00 994

原创 java.lang.Class 类学习

一,说明: 1,Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。2,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。3,虚拟机为每种类型管

2011-02-24 21:39:00 714

原创 ClassLoader 工作原理与模式

<br /> <br />深入JVM:关于ClassLoader的一些知识<br />一.什么是ClassLoader<br />Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类.此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存.<br />二.ClassLoader的体系结构<br />(1)BootStrap是最顶层的类加载器,它是由C++编写而成,并且已经内嵌到JVM中了,主要用来读取Jav

2011-02-22 10:38:00 4358

原创 线程同步小结

线程同步小结 1、线程同步的目的是为了保护多个线程反问一个资源时对资源的破坏。2、线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该对象的其他同步方法。3、对于静态同步方法,锁是针对这个类的,锁对象是该类的Class对象。静态和非静态方法的锁互不干预。一个线程获得锁,当在一个同步方法中访问另外对象上的同步方法时,会获取这两个对象锁。4、对于同步,要时刻清醒在哪个对象上同步,这是关键。5、编写线程安

2011-02-20 15:44:00 758

转载 简述JDK里的23个经典设计模式

<br /> JDK中有关23个经典设计模式的示例:Adapter:java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation.adapters.XmlAdapter#marshal()

2011-02-20 12:47:00 852

原创 Hashtable HashMap Vector ArrayList List 区别

<br />Hashtable和HashMap的区别:<br />1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;<br />2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:<br />Map Collections.sync

2011-02-19 16:50:00 1082

转载 hashCode() 和equals() 区别和作用

<br />HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 <br />那么Java运行时环境是如何判断HashSet中相同对象、HashMap中相同键的呢?当存储了“相同的东西”之后Java运行时环境又将如何来维护呢? <br /><br />在研究这个问题之前,首先说明一下JDK对equals(Object obj)和hashcode()这两个方法的定义和规范: <br />在Java中任何一个对象都具备equal

2011-02-19 15:41:00 16481 4

原创 HashMap 与HashTable 区别

<br />HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 <br />1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。<br /><br />2.HashTable不允许null值(key和value都不可以),HashMap允

2011-02-19 15:24:00 897

转载 Java 垃圾回收算法

<br />  透视Java垃圾回收<br />命令行参数透视垃圾收集器的运行<br />使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式如下:java -verbosegc classfile   <br />可以看个例子:<br />java -verbosegc classfile  <br />在这个例子中,一个新的对象被创建,由于它没有使用,所以该对象迅速地

2011-02-18 12:28:00 1007

原创 javascript 读写本地文件

<br /> 1.  写入FileSystemObject可以将文件翻译成文件流。第一步:例:Var fso=new ActiveXObject(Scripting.FileSystemObject);创建一个可以将文件翻译成文件流的对象。第二步:用于创建一个textStream 对象括号里边有三个属性1.  文件的绝对路径2.  文件的常数 只读=1,只写=2 ,追加=8 等权限。(ForReading 、ForWriting 或 ForAppending 。);3.  一个布尔值 允许新建则为true 

2011-02-15 16:29:00 13359

转载 Java 垃圾回收原理

<br /><br /> 垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是时候可以收集。两种常用的方法是引用计数和对象引用遍历。<br /> <br />引用计数收集器<br /> <br />引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象(不是引用)都有一个引用计数。当一个对象被创建时,且将该对象分配给一个变量,该变量计数设置为1。当任何其它变量被赋值为这个对象的引用时,计数加1(a = b,则b引用的对象+1),但当一

2011-02-15 13:04:00 1677

转载 TOMCAT 6 配置虚拟路径 增加web应用配置

<br />%TOMCAT_HOME%/webapps/下直接创建,这种方法有一个缺点,就是每次要把文件都复制到这个目录下。Myeclipse下配置tomcat就是通过这样的方法。%TOMCAT_HOME%/conf/server.xml中增加xml 代码<Host name="localhost"  appBase="webapps"              unpackWARs="true" autoDeploy="true"              xmlValidation="false" 

2011-01-16 12:16:00 2559 1

转载 String与StringBuffer的区别

String与StringBuffer的区别简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。String:在String类中没有用来改变已有字

2011-01-15 11:10:00 177924 5

原创 Java与C++语言在JNI下的交互

java环境下调用VC++编写的动态链接库文件一,开发平台: MyEclipse 6.0,VC++6.0二,JNI基础知识: JNI(java native interface),JAVA本地接口调用,目的是为了JAVA可以调用本地程序。三,交互过程: 1,建立java类。例如,建立一个RSA加密解密的类: package zkxx.ctais2.cli

2010-01-20 20:17:00 3669 1

转载 游戏服务器的架构设计

游戏服务器的架构设计作者: xiaohyy 游戏服务器的设计是一项颇有挑战性的工作,游戏服务器的发展也由以前的单服结构转变为多服机构,甚至出现了bigworld引擎的分布式解决方案,最近了解到Unreal的服务器解决方案atlas也是基于集群的方式。负载均衡是一个很复杂的课题,这里暂不谈bigworld和atlas的这类服务器的设计,更多的是基于功能和场景划分服务器结构。首先说

2010-01-07 09:21:00 591

转载 showModalDialog用法

  使用方法:      vReturnValue    =    window.showModalDialog(sURL    [,    vArguments]    [,sFeatures])      参数说明:      sURL--      必选参数,类型:字符串。用来指定对话框要显示的文档的URL。      vArguments

2009-11-24 10:27:00 528

原创 Java 调用其他开发语言开发的动态链接库文件(一)

一,JAVA 调用delphi开发的动态库文件JNI(Java Native Interface,Java本地接口)技术大家都不陌生,它可以帮助解决Java访问底层硬件的局限和执行效率的提高。关于JNI的开发,大多数资料讨论的都是如何用C/C++语言开发JNI,甚至于JDK也提供了一个javah工具来自动生成

2009-09-08 17:01:00 2181

转载 Delphi format的用法

Delphi format的用法 一、Format函数的用法Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overlo

2009-08-28 09:23:00 733

原创 地址,引用,传地址,传引用的分析

一,基本理论原理和理解 1,传值,         是把实参的值赋值给行参         那么对行参的修改,不会影响实参的值            传地址         是传值的一种特殊方式,只是他传递的是地址,不是普通的如int         那么传地址以后,实参和行参都指向同一个对象         传引用         真正的以地址的方

2009-08-25 13:45:00 3982

转载 Java中的对象释放问题

许多方面,Java 类似于 C++。Java 的语法非常类似于 C++,Java 有类、方法和数据成员;Java 的类有构造函数; Java 有异常处理。 但是,如果你使用过 C++ 会发现 Java 也丢掉一些可能是你熟悉的特性。这些特性之一就是析构函数。取代使用析构函数,Java 支持finalize() 方法。 在本文中,我们将描述 finalize() 与 C++ 析构函数的区

2009-08-18 10:35:00 23059 2

转载 面向对象设计原则四

 4.2什么是合成?什么是聚合?  合成(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。  聚合表示整体和部分的关系,表示“拥有”。如奔驰S360汽车,对奔驰S360引擎、奔驰S360轮胎的关系是聚合关系,离开了奔驰S360汽车,引擎、轮胎就失去了存在的意义。在设计中, 聚合不应该频繁出现,这样会增大设计的耦合度。[Page]  

2009-08-13 16:57:00 791

转载 面向对象设计原则三

  面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化,具体化给出不同的实现。继承关系就是一种从抽象化到具体化的导出。[Page]  抽象层包含的应该是应用系统的商务逻辑和宏观的、对整个系统来说重要的战略性决定,是必然性的体现。具体层次含有的是一些次要的与实现有关的算法和逻辑,以及战术性的决定,带有相当大的偶然性选择。具体层次的代码是经常变动的,不能避免出现错误。  从复用的角度来

2009-08-13 16:56:00 686

转载 面向对象设计原则二

单一职责原则(SRP):一个类应当只有一个改变的原因,类只需要知道一件事情,它们应当有一个单独的职责,要点就是当一个类需要改变时,应当只有一个原因。 开放-封闭原则(OCP):软件实体(类、模块、函数等)应当为扩展而开放,又为修改而封闭。这个原则有一个相当详细的定义,但是一个简单的意思是:你应当能够改变一个模块的周边环境而无须改变模块本身。 Liskov替换原则(LSP):子类

2009-08-13 16:55:00 543

转载 面向对象设计原则

1) 单一职责原则 (The Single Responsiblity Principle,简称SRP)2) 开放-封闭原则 (The Open-Close Principle,简称OCP)3) Liskov 替换原则(The Liskov Substitution Principle,简称LSP)4) 依赖倒置原则(The Dependency Inversion P

2009-08-13 16:37:00 474

转载 抽象类和接口的区别

abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。 其实

2009-08-13 16:33:00 492

转载 怎样成为一名优秀的软件开发者

1.明确学习目的 <br /><br />学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能 锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无

2009-08-12 16:33:00 457

转载 VC++动态链接库(DLL)编程深入浅出(四)

这是《VC++动态链接库(DLL)编程深入浅出》的第四部分,阅读本文前,请先阅读前三部分:(一)、(二)、(三)。 MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CSt

2009-07-23 09:31:00 702

转载 VC++动态链接库(DLL)编程深入浅出(三)

 第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正!  5. MFC规则D

2009-07-23 09:22:00 958

转载 VC++动态链接库(DLL)编程深入浅出(二)

上节给大家介绍了静态链接库与库的调试与查看(动态链接库(DLL)编程深入浅出(一)),本节主要介绍非MFC DLL。  4.非MFC DLL 4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTe

2009-07-23 09:14:00 1412 1

转载 VC++动态链接库(DLL)编程深入浅出(一)

 1.概论  先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用

2009-07-23 09:04:00 3862

转载 CString ,BSTR ,LPCTSTR之间关系和区别

CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typ

2009-06-25 10:07:00 484

原创 串口通讯编程系列之RS232接口说明

串口通信标志中的RS-232接口说明  针脚                                          功能                                                 符号1                                           载波监听                           

2009-06-12 11:31:00 1264

原创 VC++环境下获取当前输入法名称

CString GetCurrentIme(){ //LPDWORD pId; DWORD thId; //DWORD currentThId; HKL hkl; LPSTR buffer; buffer=new char[255]; ::memset(buffer,0,255); thId=::GetWi

2009-06-02 11:06:00 5300 2

原创 WINDOWS 常用API函数说明

AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗口的最小化子窗口 AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新窗口位置的过程 BringWindowToTop 将指定

2009-03-25 16:02:00 683

EaseSoft Barcode DLL

easesoft公司出品的关于二维条形码的动态链接库文件 测试源代码

2010-01-22

文本编辑器JEdit 源代码

JEDIT 源代码 开源工具 文本编辑器 C++ ,JAVA 等语言的语法关键字光亮 语法折叠 功能

2010-01-21

软件工程:实践者的研究方法

软件工程:实践者的研究方法 一款非常好的软件工程方面的书籍

2010-01-13

空空如也

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

TA关注的人

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