J2SE
箫剑90
java软件行业者
展开
-
java的JDBC编程及事务(oracle)
import java.sql.*;//jdbc访问oraclepublic class JavaOra { public static void main(String[] args) { try{ Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con原创 2012-08-02 14:56:39 · 927 阅读 · 0 评论 -
Serializable的本质
java.io.Serializable的本质就是将内存的对象,以文本的形式保存到磁盘上,使用的时候再读出来,以减少应用程序的压力.有点类似与虚拟内存.在openJPA里,entity的时候,一般需要使用. 序列化的时候有以下几点需要注意. 1)先序列化,先读取(FIFO); 2)反序列化的时候,返回的都是Object,要自动转换类型; 3)用关键字transient标记的原创 2014-09-23 17:24:36 · 1472 阅读 · 0 评论 -
String 和StringBuffer的区别,性能吧
AVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。另外,String实现了equals方法,new St原创 2014-09-23 17:42:10 · 610 阅读 · 0 评论 -
final修饰符
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句: final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken原创 2014-09-23 17:43:56 · 432 阅读 · 0 评论 -
Java内存泄露的一个小例子
Java内存泄露 一般来说内存泄漏有两种情况。一种情况如在C/C++语言中的,在堆中的分配的内存,在没有将其释放掉的时候,就将所有能访问这块内存的方式都删掉(如指针重新赋值);另一种情况则是在内存对象明明已经不需要的时候,还仍然保留着这块内存和它的访问方式(引用)。第一种情况,在Java中已经由于垃圾回收机制的引入,得到了很好的解决。所以,Java中的内存泄漏,主要指的是第二原创 2014-09-23 17:39:00 · 5618 阅读 · 0 评论 -
hashcode
hashcode方法一般用户不会去调用,比如在hashmap中,由于key是不可以重复的,他在判断key是不是重复的时候就判断了hashcode这个方法,而且也用到了equals方法。这里不可以重复是说equals和hashcode只要有一个不等就可以了!所以简单来讲,hashcode相当于是一个对象的编码,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比较起来不直观。原创 2014-09-23 17:41:38 · 474 阅读 · 0 评论 -
JAVA 实现Runnable接口
/* 需求: 实现一个售票程序 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖Runnable接口中的run方法 将线程要运行的代码存放在该run方法中 3,通过Thread 类建立线程对象 4,将Runnable接口的原创 2014-09-23 17:38:36 · 11442 阅读 · 0 评论 -
StringBuffer的append拼接和String的+连接效率对比
字符串拼接尽量使用 StringBuffer 的append方法来拼接。而直接使用”+”来连接String类型。会增加内存和CPU的开销。String字符串拼接的原理如下 String str1 = “a”; String str2 = “b”; str1 = str1 + str2; 内存上,他先会开辟出一个新的内存空间,存放str3 = str1+str2,然后再把str3的引用交给str原创 2014-09-22 17:04:03 · 22287 阅读 · 0 评论 -
ThreadLocal终极突破
ThreadLocal是什么? 它并不是一个Thread,而是thread local variable(线程局部变量)。 ThreadLocal类接口很简单,只有4个方法: void set(Object value) 设置当前线程的线程局部变量的值。 public Object get() 该方法返回当前线程所对应的线程局部变量副本。 public void r原创 2014-09-22 17:04:55 · 490 阅读 · 0 评论 -
彻底理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影转载 2014-09-22 14:27:23 · 577 阅读 · 0 评论 -
java创建两个线程的方法和它们的区别
Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 为转载 2012-07-31 15:01:27 · 3726 阅读 · 0 评论 -
Java @override报错的解决方法
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。转载 2014-09-19 14:02:17 · 2489 阅读 · 0 评论 -
泛型类和泛型方法
规则和限制 1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。 3、泛型的类型参数可以有多个。 4、泛型的参数类型可以使用extends语句,例如。习惯上称为“有界类型”。 5、泛型的参数类型还可以是通配符类型。例如Class classType = Class.forName(转载 2012-09-05 11:20:10 · 2960 阅读 · 0 评论 -
try-catch和throw,throws的区别和联系
区别一:throw 是语句抛出一个异常;throws 是方法抛出一个异常;throw语法:throw 在方法声明中,添加throws子句表示该方法将抛出异常。如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出.throws语法:[]([])[throws]其中:异常类可以转载 2012-08-21 11:18:45 · 8974 阅读 · 2 评论 -
java中用反射调用其他类的main方法时应注意的问题
一、正常情况下我们调用其他类的方法,如果是静态的,就直接:类名.方法 ;如果不是静态的:对象.方法;因为main为静态方法,所以调用它只需:类名.main(String...args)即可。 二、用反射方式来调用,我们往调用类的main方法中的参数传入被调用类的类全名,然后根据该类名来执行main方法 public void test() throws Exception {原创 2012-08-09 15:57:33 · 717 阅读 · 0 评论 -
java中的栈和堆
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动转载 2012-08-09 15:48:37 · 403 阅读 · 0 评论 -
java中IO对文件操作
本文转载自很多作者JAVA 中的IO流 1.首先得搞清楚流的概念: 一个流,它有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。因此我们可以把流分两类:输入流和输出流。用户可以从输入流中读取信息,但不能写它。相反,对输出流,只能往输入流写,而不能读它。两个概念: 结点流(node stream)转载 2012-08-02 14:45:47 · 8061 阅读 · 1 评论 -
Java防止SQL注入
Java防止SQL注入SQL 注入简介: SQL注入是最常见的攻击方式之一,它不是利用操作系统或其它系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了SQL的空子,下面我们先来看下什么是SQL注入: 比如在一个登陆界面,要求用户输入用户名和密码: 用户名: ' or 1=1原创 2014-09-23 17:32:56 · 4092 阅读 · 0 评论