
JAVASE
文章平均质量分 55
小菜的粉丝
正在学JAVA,希望和大家共同进步!
展开
-
Java怎么打开文件夹
要读取文件,就要用到流的概念了(java.io.*);首先,可分为字节读取和字符读取,根据读不同的文件来选择用哪个方法会更简单,(不过字节读取是万能的,就是方法上有点麻烦); 第一种字符流的方法:import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;原创 2009-02-19 10:27:00 · 7747 阅读 · 5 评论 -
Java多线程初学者指南(9):为什么要进行数据同步
Java中的变量分为两类:局部变量和类变量。局部变量是指在方法内定义的变量,如在run方法中定义的变量。对于这些变量来说,并不存在线程之间共享的问题。因此,它们不需要进行数据同步。类变量是在类中定义的变量,作用域是整个类。这类变量可以被多个线程共享。因此,我们需要对这类变量进行数据同步。数据同步就是指在同一时间,只能由一个线程来访问被同步的类变量,当前线程访问完这些变量后,其他线程才能继续访问转载 2009-09-08 14:53:00 · 526 阅读 · 0 评论 -
Java多线程初学者指南(11):使用Synchronized块同步方法
synchronized关键字有两种用法。第一种就是在《使用Synchronized关键字同步类方法》一文中所介绍的直接用在方法的定义中。另外一种就是synchronized块。我们不仅可以通过synchronized块来同步一个对象变量。也可以使用synchronized块来同步类中的静态方法和非静态方法。 synchronized块的语法如下:public voi转载 2009-09-08 16:13:00 · 532 阅读 · 0 评论 -
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变转载 2009-09-23 21:31:00 · 514 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,转载 2009-10-18 23:28:00 · 393 阅读 · 0 评论 -
完美的equals方法的建议
public class TestEquals { private String field1; private String field2; /** * 完美的equals方法的建议 * @param otherObject * @return */ @Override public boolean equals(Object原创 2009-10-24 14:50:00 · 533 阅读 · 0 评论 -
枚举
import java.util.Scanner;/** * * @author 姚强 */public class EnumTest { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter a Size:(S原创 2009-10-24 16:33:00 · 597 阅读 · 0 评论 -
自定义类的数组排序
思路:实现Comparable的接口里的compareTo方法。 /* * To change this template, choose Tools | Templates * and open the template in the editor. */package 结构和内部类;import java.util.Arrays;/** * *原创 2009-11-02 11:05:00 · 702 阅读 · 0 评论 -
引入静态类
从JDK5.0开始,可以引入静态类 import static java.lang.Math.* System.out.println(sqrt(100));原创 2009-11-02 11:45:00 · 482 阅读 · 0 评论 -
通过反射实现类的解析
import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.util.Scanner;public class ReflectionT原创 2009-11-02 17:06:00 · 522 阅读 · 0 评论 -
JAVA中file路径问题
前言 Java的路径问题,非常难搞。最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决Java路径问题。 我编写了一个方法,比ClassLoader.getResource(String 相对路径)方法的能力更强。它可以接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源。这样,我们就可以使用相对于classpath的路径,定位所有位置的资源转载 2010-01-22 23:45:00 · 1146 阅读 · 0 评论 -
属性编辑器
import javax.swing.JPanel;public class ChartBean extends JPanel{ private float titlePosition = JPanel.CENTER_ALIGNMENT; public float getTitlePosition() { return titlePosition; } pub原创 2009-12-12 18:55:00 · 19238 阅读 · 0 评论 -
Hashtable和HashMap的区别
HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。 2.HashTa转载 2010-01-07 10:18:00 · 584 阅读 · 0 评论 -
使用 Java 生成 MD5 编码
MD5即Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法,在1991年由MIT Laboratory for Computer Science(IT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L. Rivest教授开发出来,经由MD2、MD3和MD4发展而来。MD5算法的使用不需要转载 2010-05-04 12:35:00 · 609 阅读 · 0 评论 -
万能流ByteArrayOutputStream
任意流转换的桥梁,当不能创建流时,ByteArrayOutputStream 就是必杀器! java.io.ByteArrayOutputStream output = new java.io.ByteArrayOutputStream(); ImageIO.write(bi, "gif", output); byte[] buff = output.toByteArray(); java原创 2010-05-07 16:53:00 · 669 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为T转载 2010-05-14 12:27:00 · 443 阅读 · 0 评论 -
Java多线程初学者指南(5):join方法的使用
在上面的例子中多次使用到了Thread类的join方法。我想大家可能已经猜出来join方法的功能是什么了。对,join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法。如果不使用join方法,就不能保证当执行到start方法后面的某条语句时,这个线程一定转载 2009-09-08 09:59:00 · 398 阅读 · 0 评论 -
Java多线程初学者指南(3):使用Runnable接口创建线程
实现Runnable接口的类必须使用Thread类的实例才能创建线程。通过Runnable接口创建线程分为两步:1. 将实现Runnable接口的类实例化。2. 建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法。 最后通过Thread类的start方法建立线程。下面的代码演示了如何使用Runnable接口来创建线程:Co转载 2009-09-08 00:47:00 · 531 阅读 · 0 评论 -
Java多线程初学者指南(1):线程简介
一、线程概述线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。进程和线程是现代操作系 统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统转载 2009-09-08 00:18:00 · 550 阅读 · 0 评论 -
正则表达式的那点儿事(1)
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { //简单认识正则表达式的概念 /* p("abc".matches("...")); p("a8729a".r原创 2009-02-19 09:44:00 · 591 阅读 · 0 评论 -
java集合-----Collection
集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类(实线表示),对接口的具体实现。 在很大程度上,一旦您理解了接口,您就理解了框架。虽然您总要创建接口特定的实现,但访问实际集合的方法应该限制在接口方法的使用上;因此,允许您更改基本的数据结构而不必改变其它代码。转载 2009-02-24 00:59:00 · 513 阅读 · 0 评论 -
Java怎么生成随机日期
import java.text.SimpleDateFormat;import java.util.Date;public class DateRandomTest { // 返回2007-01-01到2007-03-01的一个随机日期 public static void main(String[] args) { Date randomDate = random转载 2009-03-09 00:39:00 · 19651 阅读 · 0 评论 -
关于Java IO流学习总结
摘自: www.chinaitlab.com 被阅读次数: 18由 yangyi 于 2009-03-03 22:00:02 提供 一、IO流的三种分类方式 1.按流的方向分为:输入流和输出流 2.按流的数据单位不同分为:字节流和字符流 3.按流的功能不同分为:节点流和处理流 二、IO流的四大抽象类:转载 2009-03-10 00:08:00 · 882 阅读 · 0 评论 -
Java随机数总结
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。Java随机数总结 随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串、数字。或者随即生成一个不定长度的数字、或者进行一个模拟的随机选择等等。Java提供了最基本的工具,可以帮助开发者来实现这一切。 一、Java随机数的产生方式在Java中,随机数的概念从广义上将,转载 2009-03-09 00:04:00 · 1020 阅读 · 0 评论 -
Java函数参数是值传递的
package wit.test;public class Test2{public static void main(String[] args) { //传对象 AA a =new AA(); a.n = 10; System.out.println("调用函数(参数是对象)前:"+a.n); f(a); System.out.p转载 2009-09-07 00:01:00 · 541 阅读 · 0 评论 -
数组创建总结
1 一维数组的定义 //定义包含三个元素的一维数组 int[] a = new int[3]; a = {1,2,3};//方法1,先new对象,然后赋值 int[] b = {1,2,3}; //方法2,直接赋值 注意:如果用new定义数组时,必须指定其维度,这样定义是错误的: int[] d = new int[]; 如果无法确定其元素个数,可以这样定义原创 2009-09-06 22:44:00 · 803 阅读 · 0 评论 -
java的内部类
所谓内部类(Inner Class),顾名思义,就是指定义在另外一个类中的类。因为安全机制的原因,内部类通常声明为private类别,因此,只有在内部类所在的外部中才能够创建内部类的对象,对其它类而言它是隐藏的。内部类的分类: (1)、 定义在方法体外的成员内部类 (2)、定义在方法体内部的内部类。该类又分为转载 2009-09-07 13:35:00 · 652 阅读 · 0 评论 -
Java多线程初学者指南(2):用Thread类创建线程
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread类的构造方法被重载了八次,构造方法如下:Code highlighting produced by Actipro CodeHighl转载 2009-09-08 00:27:00 · 524 阅读 · 0 评论 -
Java多线程初学者指南(4):线程的生命周期
与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/转载 2009-09-08 00:55:00 · 446 阅读 · 0 评论 -
Java多线程初学者指南(7):向线程传递数据的三种方法
在传统的同步开发 模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。但在多线程的异步开发模式下,数据的传递和 返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据。本文就以上原因介绍了几种用于向线程传递数据的方法,在下一篇文章中将介绍从线程中返回数转载 2009-09-08 12:37:00 · 426 阅读 · 0 评论 -
Java多线程初学者指南(8):从线程返回数据的两种方法
从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪。一、通过类变量和方法返回数据使用这种方法返回数据需要在调用start方法后才能通过类变量或方法得到数据。让我们先来看看例程2-13会得到什么结果。Code highlighting produced by Actipro Cod转载 2009-09-08 14:52:00 · 492 阅读 · 0 评论 -
Java多线程初学者指南(10):使用Synchronized关键字同步类方法
要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下:public synchronized void run(){ } 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以使run方法同步,也就是说,对于同一个Java类的对象实例,run方法同时只转载 2009-09-08 16:03:00 · 813 阅读 · 0 评论 -
Java多线程初学者指南(12):使用Synchronized块同步变量
我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块。下面的代码演示了如何同步特定的类方法: 001 package mythread; 002 003 public class SyncT转载 2009-09-08 20:27:00 · 771 阅读 · 0 评论 -
Java多线程初学者指南(6):慎重使用volatile关键字
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、 boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就 不是原子级别的:Code highlighting produced by Actipro CodeH转载 2009-09-08 11:57:00 · 414 阅读 · 0 评论 -
Java:谈谈protected访问权限
来谈谈protected访问权限问题。看下面示例1:Test.javaclass MyObject {} public class Test { public static void main(String[] args) { MyObject obj = new MyObject(); obj.clone(转载 2011-11-04 15:39:16 · 677 阅读 · 0 评论