
Java
文章平均质量分 57
kkvveeerer
记录是最好的回忆!
展开
-
端口被占用问题
开发过程中经常会遇到端口号被占用情况,如果想找出被占用端口号的进程,有两种方法一、通过任务管理器查看到该端口被哪个进程(对应PID)占用;然后可以打开任务管理器;查看某一PID对应的进程名;如果PID没有显示,菜单》查看》选择列》选中PID即可;得知进程后,我们可以将进程杀掉;修改其使用的端口;二、通过命令形式如下netstat -ano假如我们需要确定谁占用了原创 2012-07-15 22:30:14 · 1113 阅读 · 0 评论 -
Java内存泄露分析
1 引言 Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC 或JVM的问题。其实,这种想法是不正确的,因为Java 也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java 代码要全天24转载 2012-11-01 19:35:04 · 2304 阅读 · 0 评论 -
JSP和Servlet要点总结
1、注释JSP的注释: JSP隐式声明: (在Jsp页面上是无法看到的,而且在源文件中也是看不到的) HTML的注释: 2、变量声明 int i = 2; %>3、Jsp的include指令是指包含页面在编译时将完全包含了被包含页面的代码4、JSP的9个内置对象:page:代表该页面本身session:代表一次会话,当客户端浏览器与站点建立连接时,会话原创 2012-10-25 19:40:28 · 860 阅读 · 0 评论 -
Java——重载和重写
重载(Overload):方法名称相同,但形参列表不同,则被称为方法重载规则:两同一不同(同一类中方法名相同,参数列表不同),注意点:方法返回值类型、修饰符与重载没有关系构造器也是可以重载的,如果构造器的修饰符可以是protected,这样保证了只有同类或子类可以new该实例对象,如protected Test(){...};重写(也叫覆盖Override):重写父类的方法规则原创 2012-10-23 15:19:57 · 750 阅读 · 0 评论 -
Java总结<三>多线程
基本概念:并发性和并行性:并发性指的是同一时刻只能有一条指令执行,但是多个进程指令被快速轮换执行并行性是指同一时刻,有多条指令在多个处理器上同时执行,使得在宏观上具有多个进程同时执行的结果临界区:修改共享资源的代码区1、线程实现有三种方式:(1)类ThreadName(引用为a)继承Thread,然后调用a.start();(2)类ThreadName(引用为b)实现接原创 2012-10-07 17:45:32 · 756 阅读 · 0 评论 -
Java总结<一>
1、环境变量:(在windows中是不分大小写的,可以是Path或PATH,但是在Linux系统中是区分大小写的,只能是PATH)JAVA_HOME:指向jdk目录,启动类加载器会加载$JAVA_HOME/jre/lib/rt.jar,扩展类加载器会加载$JAVA_HOME/jre/lib/ext/*.jarCLASSPATH:应用程序类加载器会加载$CLASSPATH,在使用1.4以前版原创 2012-10-06 20:55:46 · 1452 阅读 · 0 评论 -
Java——IO流
1、java.io包下主要包括输入、输出两种IO流,每种输入、输出流又可分为字节流和字符流两大类。2、Java的IO流使用了一种装饰器设计模式3、Java的IO流分类:输入流和输出流:Java的输入流主要由InputStream和Reader作为基类、输出流则主要由OutputStream和Writer作为基类字节流和字符流、节点流和处理流4、字节流操作的最小数据单元是8位原创 2012-11-12 21:39:37 · 634 阅读 · 0 评论 -
深度解析Java内存的原型
本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、Java虚拟机内存原型寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等永久存储空间。二、常量池(constant pool)原创 2012-11-17 23:16:07 · 919 阅读 · 0 评论 -
java中类加载路径和项目根路径获取的几种方式
package my;import java.io.File;import java.io.IOException;import java.net.URL;public class MyUrlDemo { public static void main(String[] args) { MyUrlDemo muDemo = new MyUrlDemo(); try {原创 2012-11-17 23:51:58 · 9026 阅读 · 1 评论 -
URL相关API的使用
使用URL的API获取URL中的各部分内容,如host,端口等 public static void main(String[] args) { URL hp = new URL("http://www.test.com:80"); System.out.println("Protocol: " + hp.getProtocol()); System.out.println("Po原创 2013-07-06 17:28:14 · 1699 阅读 · 0 评论 -
对象的排序
1、实现java.util.Comparator接口,重写int compare(Object o1, Object o2)方法即可public class CompareUtil implements Comparator { /** * 重新排序方法,这里是根据complexity参数,从大到小排序 */ @Override public int compare(Object原创 2013-07-18 15:31:31 · 1426 阅读 · 0 评论 -
Java总结<二>
1、多态:编译型和运行类型不同时。重载和重写是多态的两种表现2、内部类内部类其实跟外部类的唯一区别就是拥有一个对外部类的引用内部类的一些特征:(1)内部类可以被定义在方法中。它可以访问外部类的final变量(2)内部类可以被定义为abstract或接口,然后由另一个内部类去实现(3)非静态内部类不能声明任何static成员内部类还包括匿名内部类下面演示非静态内部类的原创 2012-10-06 22:12:40 · 701 阅读 · 0 评论 -
Java双缓冲技术
Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色。在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理。本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单动画实例展开,对屏幕闪烁的原因进行了分析,找出了闪烁成因的关键:update(Graphics g)函数对于前端屏幕的清屏。由此引出消除闪烁的方法——双缓冲。双缓冲是计算机动画处理中的传统技术,在转载 2012-10-28 10:38:52 · 36616 阅读 · 17 评论 -
Struts1和Struts2的区别
Struts1和Struts2的区别和对比:Action类• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口。 • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去 实现 常转载 2012-09-27 09:19:46 · 673 阅读 · 0 评论 -
Java类加载的解析阶段
1、解析阶段是虚拟机将常量池内的符号引用(引用的目标不一定已经加载到内存)替换为直接引用(引用的目标一定已经在内存中)的过程2、虚拟机类加载的解析阶段的动作主要针对类或接口、字段、类方法、接口方法四类符号引用进行解析为直接引用在字段的解析中如果一个类Sub同时继承父类Parents和接口Interface2,存在字段A在Sub中没有,而在父类和接口中都存在的话,则编译器会拒绝编译,如下情况原创 2012-09-10 09:40:25 · 2449 阅读 · 0 评论 -
Java的volatile
Java内存模型的围绕着在并发过程中如何处理原子性、可见性和有序性这三个特征来建立的。1、volatile是Java虚拟机提供的最轻量级的同步机制,一个变量被定义成volatile后,它将具备两种特征:(1)保证此变量对所有的线程的可见性(当一条线程修改了这个变量的值,新值对其他线程来说是可以立即得知的,也是通过主内存完成线程间的传递的,普通变量不能做到这点)(2)禁止指令重排序优化,原创 2012-09-27 12:33:07 · 719 阅读 · 0 评论 -
Java解析XML的四种方式
java解析xml文件四种方式1.介绍1)DOM(JAXP Crimson解析器)DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的原创 2012-10-03 22:05:38 · 3774 阅读 · 0 评论 -
Java总结<四>集合框架
Java的集合大致可分为:Set、List和Map三种体系,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合。从JDK1.5以后,Java集合又增加了Queue体系集合,代表一种队列集合实现Java的集合类主要由两个接口派生而出:Collection和Map下图是Collection接口的实现类和子接口的继承关系图中颜色部分原创 2012-10-07 22:04:05 · 1064 阅读 · 0 评论 -
StringBuilder的使用
1、声明声明StringBuilder对象需要使用new关键字,并可以对其进行初始化。如下语句声明了一个StringBuilder对象myStringBuilder,并初始化为“Hello”:StringBuilder myStringBuilder=new StringBuilder("Hello");或StringBuilder myStringBuilder=new Stri原创 2012-10-11 10:09:49 · 1082 阅读 · 1 评论 -
以最快速度去除字符串里面的子串
假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3”,不能用java内置字符串方法(indeOf,substring,replaceAll等)思路:用正则表达式public static void main(String[] args) { StringBuffer br = new StringBuffer(); String原创 2012-10-12 10:42:40 · 1238 阅读 · 0 评论 -
常用的字符串和字符数组的转换和注意点
字符串转成字符数组String a = "abc";char[] b=a.toCharArray();字符数组转成字符串char[] a={ 'a ', 'b ', 'c '}; String b=new String(a);注意点:1、数组的长度是用length,而不用length()2、字符串的长度则是length()3、St原创 2012-10-11 10:13:14 · 587 阅读 · 0 评论 -
Java的基本类型
8 中类型表示范围如下:byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63原创 2012-10-18 14:40:11 · 612 阅读 · 0 评论 -
JNI使用方法
Java通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在Windows平台下是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使Java可以实现和本地机器的紧密联系,调用系统级的各接口方法使用的简单流程:一、Java中所需要做的工作1、在Java程序中,首先需要在类中声明所调用的库名称,如static {System.loadLi原创 2012-10-27 16:41:01 · 8587 阅读 · 1 评论 -
spring源码编译和导入eclipse
1、下载源码并解压https://github.com/spring-projects/spring-framework/tree/v3.2.5.RELEASE 2、源码编译cmd进入spring源码根目录,执行编译源码:gradlew build可能出现问题:(1)如果出现某些方法找不到,需要检查下jdk版本,1.6版本的有些方法会找不到。需要升级jdk到1.原创 2015-04-04 16:02:36 · 3910 阅读 · 1 评论