JAVA
shuangshuang37278752
这个作者很懒,什么都没留下…
展开
-
多态
Polymorphism is the ability of an object to take on many forms. The most common use of polymorphism in OOP occurs when a parent class reference is used to refer to a child class object.Any java obje翻译 2013-06-16 10:28:34 · 687 阅读 · 0 评论 -
无锁HashMap的原理与实现
在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择:使用线程安全的java.util.Hashtable作为替代。 使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程安全的。 使用java.util原创 2013-06-08 20:51:09 · 747 阅读 · 0 评论 -
为什么Java不支持多重继承
James Gosling在1995年2月发表了一篇名为”Java概览”的Java白皮书,文章解释了Java不支持多重继承的原因。Java去除了一些C++中很少用、而且被经常误解而错用的功能,如操作符的重载(operator overloading)(尽管Java仍旧保留方法的重载),多重继承(multiple inheritance),以及广泛的自动强迫同型(extensive auto原创 2013-06-09 09:23:10 · 1623 阅读 · 0 评论 -
进程与线程的一个简单解释
作者: 阮一峰日期: 2013年4月24日进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开转载 2013-07-02 09:07:58 · 521 阅读 · 0 评论 -
深度解析Java内存原型
本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、Java虚拟机内存原型寄存器:我们在程序中无法控制。栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。堆:存放用new产生的数据。静态域:存放在对象中用static定义的静态成员。常量池:存放常量。非RAM存储:硬盘等永久存储空间。二、常量池(constant转载 2013-07-02 22:35:18 · 544 阅读 · 0 评论 -
在jsp中 获取项目路径和在java中获取项目路径
1. 获取web服务器项目的真实物理路径request.getSession().getServletContext().getRealPath("/");2. 相对路径的获得说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)String relativelyPath=System.getProperty("user.dir"原创 2013-04-07 19:46:30 · 2219 阅读 · 0 评论 -
开发者需知的10类工具
作为一个软件开发者,你不可避免地需要用到各种工具来设计、理解、编辑任何程序,本文作者按类型总结了10类开发者须知的工具。CSDN摘译如下:免责声明:“最好”的软件工具通常属于主观看法,也许你并不同意我的观点,但是也可以从中获取所需。1. 版本控制工具无论你是在100人的团队,还是一个人做设计、开发,版本控制工具都能让你从中获益。通过版本控制工具,你可以保留同一文件中在不同时期的版本原创 2013-07-26 10:09:11 · 556 阅读 · 0 评论 -
抽象类与接口
1.抽象类与接口1.1抽象类和抽象方法: Abstract关键字是抽象修饰符,只能用户修饰类和方法。该关键字用来表明所定义的类或方法是为实现的。 一个抽象类的定义,是通过使用关键字abstract,放置在关键字class之前来定义的,如下所示: abstract class 类名{·····; //类体} 抽象方法的定义,如下代码片段所示原创 2013-04-06 20:09:55 · 654 阅读 · 0 评论 -
LinkedList和ArrayList的区别
LinkedeList和ArrayList都实现了List接口,但是它们的工作原理却不一样。它们之间最主要的区别在于ArrayList是可改变大小的数组,而LinkedList是双向链接串列(doubly LinkedList)。ArrayList更受欢迎,很多场景下ArrayList比LinkedList更为适用。LinkedList和ArrayList的区别LinkedList和A原创 2013-11-03 19:10:23 · 1017 阅读 · 0 评论 -
Java中的final关键字
1. final修饰符1.1. final成员变量final修饰变量时,该变量一旦获得了初始值之后就不可改变,final既可以修饰成员变量(包括类变量和实例变量),也可以修饰局部变量、形参。final修改的类属性、实例属性能指定初始值的地方如下:② 类属性:可在静态初始化块中、声明该属性时指定初始值② 实例属性:可在非静态初始化块、声明该属性、构造器中指定初始值pa原创 2013-11-03 19:33:38 · 677 阅读 · 0 评论 -
操作properties属性文件
读取properties属性文件总共有两种方式,ResourceBundle和Properties。下面,说说这两种方式的区别:1、通过ResourceBundle读取.properties文件可避免路径问题。在jar里读取.properties文件时,总是出现找不到文件路径,后来用ResourceBundle读取.properties文件即可避免路径问题。2、无论系统的默认编码是转载 2013-05-09 14:37:55 · 579 阅读 · 0 评论 -
Java集合类List/Set/Map的区别和联系
一、Array ,ArraysJava所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。1、效率高,但容量固定且无法动态改变。 array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。2、Java中有一个Arrays类,专门用来操作array。 arrays中拥有一组static函数,转载 2013-05-21 19:19:23 · 755 阅读 · 0 评论 -
Java的MD5加密和解密类
理解MD5MD5的应用非常广泛。例如我们在unix中下载某种软件时,常常会看到一个扩展名为.md5的文件,内容大概是:MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461这就是tanajiya.tar.gz文件的数字签名。因此当我们得到这个文件后,使用工具计算该文件对应的md5值,然后和文件中记录的.md5中记录的值进行对原创 2013-04-12 20:39:02 · 24576 阅读 · 3 评论 -
内部类和匿名类
2.内部类和匿名类2.1内部类 内部类主要分为:定义在方法体外的成员内部类和定义在方法体内的内部类。定义在方法体内的内部类,又可以分为有实例名称的内部类和无实例名称的内部类使用内部类的主要原因有以下4个:l 内部类对象能够访问其所在外部类的全部属性,包括私有属性;l 内部类能够隐藏起来,不被同一包中的其他类所见;l 匿名内部类可以方便地定义运行时回调;l 使用内原创 2013-04-06 20:13:07 · 698 阅读 · 0 评论 -
字符串处理
4.字符串处理String类String类适用于描述字符串事物。那么它就提供了多个方法对字符串进行操作。常见的操作有哪些?"abcd" 4.1 获取 4.1.1 字符串中的包含的字符数,也就是字符串的长度。 int length():获取长度。 4.1.2 根据位置获取位置上某个字符。原创 2013-04-07 18:52:43 · 534 阅读 · 0 评论 -
StringBuffer 字符串缓冲区
5.StringBuffer 字符串缓冲区是一个容器。特点:1,长度是可变化的。2,可以字节操作多个数据类型。3,最终会通过toString方法变成字符串。C create U update R read D delete5.1存储 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。 Strin原创 2013-04-07 18:54:10 · 1271 阅读 · 0 评论 -
泛型
8. 泛型8.1简介:泛型:JDK1.5版本以后出现新特性,用于解决安全问题,是一个类型安全机制。好处:1.将运行时期出现问题ClassCastException,转移到了编译时期。, 方便于程序员解决问题。让运行时问题减少,安全。,2,避免了强制转换麻烦。泛型格式:通过来定义要操作的引用数据类型。在使用java提供的对象时,什么时候写泛型呢?通原创 2013-04-07 18:55:31 · 528 阅读 · 0 评论 -
多线程
9 多线程9.1 线程与进程进程:是一个正在执行中的程序。 每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。 线程在控制着进程的执行。一个进程中至少有一个线程。main()方法也是一个线程,实际上在命令行中运行java命令时,就启原创 2013-04-07 18:56:30 · 742 阅读 · 0 评论 -
JDBC之用元数据将结果集封装为List对象
JDBC的方法里面有着一套对数据库元数据操作的API.通过这些API我们可以获得数据库以及驱动等信息,也可以获得结果集的一些信息.而有些信息平时用的也比较少,这里就不一一介绍。在这里主要给大家演示一下DatabaseMetaData和ResultSetMetaData的用法. DBUtils.javapackage com.test.jdbc;import java.sq转载 2013-04-13 16:48:24 · 944 阅读 · 0 评论 -
JDBC操作数据库
package com.hospital.dao.tools; 3. import java.sql.CallableStatement; 4. import java.sql.Connection; 5. import java.sql.DriverManager; 6. import java.sql.PreparedStateme原创 2013-04-07 19:00:41 · 647 阅读 · 0 评论 -
Java IO流读写文件的几个注意点
平时写IO相关代码机会挺少的,但却都知道使用BufferedXXXX来读写效率高,没想到里面还有这么多陷阱,这两天突然被其中一个陷阱折腾一下:读一个文件,然后写到另外一个文件,前后两个文件居然不一样,解决这个问题之后,总结了几个注意点:注意点一:Reader/Writer读写二进制文件是有问题的 :public void copyFile1() { File srcFile = ne转载 2013-04-13 19:16:36 · 747 阅读 · 0 评论 -
Java到底是传引用还是传值?
问题: 如果Java是用引用来传递的话,为什么交换函数(swap)不起作用呢?回答: 你的问题引出了Java新手的常犯的错误。事实上,一些老手也很难搞清楚这些概念。Java确实使用对象的引用来做计算的,所有的对象变量都是引用。但是,Java在向方法传递参数时传的不是引用,是值。以 badSwap() 函数为例:public void badSwap(int var1, int原创 2013-04-13 19:04:01 · 601 阅读 · 0 评论 -
java IO操作 (读写、追加、删除、移动、复制等)
一、多种方式读文件内容。 1、按字节读取文件内容 2、按字符读取文件内容 3、按行读取文件内容 4、随机读取文件内容 Java代码 import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;im原创 2013-04-07 18:58:57 · 795 阅读 · 0 评论 -
JAVA异常处理机制
3.JAVA异常处理机制3.1如何捕获异常:Java语言给程序员提供了try…catch代码段,用来捕获可能出现的异常。try{ 可能会出现异常的代码段;}catch (异常类型名 处理该异常对象){ 异常处理代码段;}如果try中的代码段可能会出现多种异常,则可以在try语句段后使用多个catch语句段来捕获这些异常。但catch捕获异常是按顺序原创 2013-04-07 18:51:38 · 794 阅读 · 0 评论