自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nicolas9974

javaweb学习中,QQ476551973,欢迎结交web爱好者

  • 博客(52)
  • 收藏
  • 关注

原创 Java IO流 合并流和切割流

合并流SequenceInputStream多个文件输入流合并,初始化传入的参数必须是Enumeration类型的变量package test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInpu

2015-06-28 00:30:37 403

原创 Java设计模式 装饰类

装饰类经常出现在Java IO流中,像BufferReader类就是InputStreamReader类的装饰类,还有很多例子下面是一个简单的例子来帮助更好的理解 装饰类package test;class Person { public void eat() { System.out.println("吃饭"); }}class SuperPerson {

2015-06-28 00:16:19 399

原创 Java IO流 Properties练习-记录应用程序运行次数

/*用于记录应用程序运行次数。如果使用次数已到,那么给出注册提示。很容易想到的是:计数器。可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。可是随着该应用程序的退出,该计数器也在内存中消失了。下一次在启动该程序,又重新开始从0计数。这样不是我们想要的。程序即使结束,该计数器的值也存在。下次程序启动在会先加载该计数器的值并加1后在重新存储起来。所以要建立

2015-06-27 23:43:12 723

原创 Java文件 Properties的一些操作

package test;/*Properties是hashtable的子类。也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。练习:限制程序运行次数。当运行次数到达5次时,给出,请您注册的提示。并不再让该程序执行。*/

2015-06-27 23:30:49 334

原创 Java文件 File练习-建立一个java文件列表文件

/*练习将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。建立一个java文件列表文件。思路:1,对指定的目录进行递归。2,获取递归过程所以的java文件的路径。3,将这些路径存储到集合中。4,将集合中的数据写入到一个文件中。*/import java.io.*;import java.util.*;class JavaFileList{ publi

2015-06-27 23:09:25 908

原创 Java文件 File练习-递归删除带内容的目录

/*删除一个带内容的目录。删除原理:在window中,删除目录从里面往外删除的。既然是从里往外删除。就需要用到递归。*/import java.io.*;class RemoveDir{ public static void main(String[] args) { File dir = new File("d:\\testdir"); remove

2015-06-27 23:02:41 574

原创 Java文件 File练习-递归显示某一目录下的所有文件

/*列出指定目录下文件或者文件夹,包含子目录中的内容。也就是列出指定目录下所有内容。因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。在列出过程中出现的还是目录的话,还可以再次调用本功能。也就是函数自身调用自身。这种表现形式,或者编程手法,称为递归。递归要注意:1,限定条件。2,要注意递归的次数。尽量避免内存溢出。*/import java.io

2015-06-27 23:00:12 917

原创 Java文件 File类的一些方法(2)

import java.io.*;class FileDemo2{ public static void main(String[] args) { File dir = new File("c:\\"); File[] files = dir.listFiles(); //列出File目录下的所有文件 for(File f : files) { Syste

2015-06-27 22:55:33 308

原创 Java文件 File类的一些方法(1)

File类常见方法:1,创建。boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。boolean mkdir():创建文件夹。boolean mkdirs():创建多级文件夹。2,删除。boolean delete():删除失败返

2015-06-27 22:33:45 321

原创 Java IO流 系统信息保存到文件

import java.util.*;import java.io.*;class SystemInfo{ public static void main(String[] args) throws IOException { Properties prop = System.getProperties(); //System.out.println(prop); pro

2015-06-27 22:26:13 624

原创 Java IO流 异常日志制作

下面是一个例子来展示异常日志的简单制作,但实际应用中都使用 网上已经写好的包log4jimport java.io.*;import java.util.*;import java.text.*;class ExceptionInfo{ public static void main(String[] args)throws IOException { try {

2015-06-27 22:23:30 420

原创 Java IO流 改变标准输入输出设备

改变标准输入输出设备通过System类中的setIn和setOut方法package test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStre

2015-06-27 22:12:23 606

原创 Java IO流 IO流的选择

几个场景1,源:键盘录入。目的:控制台。2,需求:想把键盘录入的数据存储到一个文件中。源:键盘。目的:文件。3,需求:想要将一个文件的数据打印在控制台上。源:文件。目的:控制台。流操作的基本规律:最痛苦的就是流对象有很多,不知道该用哪一个。通过三个明确来完成。1,明确源和目的。源:输入流。Input

2015-06-27 21:59:46 440

原创 Java IO流 字节流与字符流

字节流与字符流先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字

2015-06-27 20:36:20 459

原创 Java基础 日期Calendar类

注意:Calendar.MONTH  0为一月,从0开始package test;import java.util.*;class CalendarDemo { public static void main(String[] args) { //指定某一天,可以查星期等 Calendar c1 = Calendar.getInstance(); c1.set(2

2015-06-27 17:02:21 358

原创 Java基础 日期Date类和SimpleDateFormat类

Date类 和SimpleDateFormat类日期格式查询Java文档,如下图package test;import java.text.SimpleDateFormat;import java.util.Date;class Test { public static void main(String[] args) throws Exception {

2015-06-27 16:57:35 353

原创 Java基础 System类

/*System:类中的方法和属性都是静态的。out:标准输出,默认是控制台。in:标准输入,默认是键盘。描述系统一些信息。获取系统属性信息:Properties getProperties();*/import java.util.*;class SystemDemo { public static void main(String[] args) { Pro

2015-06-27 16:10:56 330

原创 Java基础 数组与集合的相互转化

数组变集合Array  变成 ListA,使用Arrays.atList()方法,注意这个集合不能进行增删操作,因为数组的长度是固定的,具体点击这篇文章集合变数组调用Collection接口中的toArray方法。/*集合变数组。Collection接口中的toArray方法。*/import java.util.*;class CollectionToArra

2015-06-27 15:46:03 412

原创 Java基础 for循环增强语句的局限性

package test;import java.util.ArrayList;class Test { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("asdasd"); al.add("vvvvv"); al.add("123123"); f

2015-06-27 15:39:52 444

原创 Java数据结构 Collections的一些方法介绍

实现集合的多线程同步import java.util.*;public class Test { public static void main(String[] args) { // 下面程序创建了四个同步的集合对象 Collection c = Collections.synchronizedCollection(new ArrayList()); List list =

2015-06-27 14:24:39 345

原创 Java数据结构 map集合的两种取出方式

map集合的两种取出方式1,Set keySet:将map中所有的键存入到Set集合。因为set具备迭代器。所有可以迭代方式取出所有的键,在根据get方法。获取每一个键对应的值。Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。import java.util.*;class Test{ public static void main

2015-06-27 10:34:27 801

原创 Java基础 泛型限定的应用

有Person类,Student类和Worker类都继承Person,有Person比较方法类Comp,这个比较方法类Comp还能给Person子类用,? 通配符。也可以理解为占位符。泛型的限定;? extends E: 可以接收E类型或者E的子类型。上限。? super E: 可以接收E类型或者E的父类型。下限下面是TreeSet的构造函数, 注意比较器Compara

2015-06-27 00:52:44 339

原创 Java基础 通配符?+泛型限定

基本应用package test;import java.util.*;/* ? 通配符。也可以理解为占位符。 泛型的限定; ? extends E: 可以接收E类型或者E的子类型。上限。 ? super E: 可以接收E类型或者E的父类型。下限 */class Test { public static void main(String[] args) { Ar

2015-06-27 00:44:27 407

原创 Java数据结构 Comparable与Comparator

注:当Comparable与Comparator都存在时,以后者为参考来进行比较Comparable 可比较接口,让某种数据类实现这个接口,就可以自定义比较方法package test;import java.util.*;class Student implements Comparable{ private String name; private int age;

2015-06-26 23:56:48 469

原创 Java数据结构 List Map Set Collection Collections

集合Collection接口--Collection 是任何对象组,元素各自独立,通常拥有相同的套用规则。Set List由它派生。基本操作 增加元素add(Object obj); addAll(Collection c);删除元素 remove(Object obj); removeAll(Collection c);求交集 retainAll(Collection

2015-06-26 23:50:22 404

原创 Java数据结构 老版本的数据结构Vector、Stack

老版本的数据结构Vector,HashTable是线程安全的集合类,不过,这两种类是很早的用法,现在一般要尽量少采用Vector类   就是向量。一种异构的混合体,可以动态增加容量。Stack类   是Vector的子类。就是数据结构里讲滥了的堆栈(这个词可简称栈,不要混淆于heap-堆)。后进先出的存取方式。HashTable类,不予介绍ArrayList和V

2015-06-26 23:48:57 319

原创 Java数据结构 ArrayList、LinkList、Vector

Vector线程同步,Since jdk1.1由于效率低,已经被ArrayList代替,如果用于多线程编程,那么就手动给ArrayList加锁。ArrayList线程不同步, Since jdk1.2动态数组,查找O(1),插入删除O(n)LinkList线程不同步, Since jdk1.2链表实现,查找O(n),插入删除O(1)(插入删除说明: 指定对象

2015-06-26 22:59:13 348

原创 Java基础 StringBuilder和StringBuffer的区别

StringBuilder   线程不同步StringBuffer 线程同步一般开发用StringBuffer,因为一般开发都是单线程,  提高程序运行效率,  多线程用StringBuffer

2015-06-26 19:32:19 253

原创 Java基础 String split方法

split方法简单示范package test;class Test{ public static void main(String[] args) { printStrings("aaaXbbbXcccX".split("X")); /* 以,为分割 aaa bbb ccc */ printStrings("aaaXbbbXXXcccX

2015-06-25 20:46:27 344

原创 Java基础 String类的一个小问题

class StringDemo { public static void main(String[] args) { String s1 = "abc";//s1是一个类类型变量, "abc"是一个对象。 //字符串最大特点:一旦被初始化就不可以被改变。 String s2 = new String("abc"); String s3 = "abc";

2015-06-24 00:11:23 370

原创 Java多线程 匿名内部类实现多线程

class ThreadTest { public static void main(String[] args) { new Thread() { public void run() { for(int x=0; x<100; x++) { System.out.println(Thread.currentThread().getNam

2015-06-23 23:13:59 1514

原创 Java多线程 小知识 守护线程(后台线程)setDaemon、join方法、优先级、yield方法

守护线程就是后台线程, 当前台线程停止运行以后,后台线程就自动停止,Java虚拟机退出。setDaemon(true); //*******必须写在线程启动之前/*stop方法已经过时。如何停止线程?只有一种,run方法结束。开启多线程运行,运行代码通常是循环结构。只要控制住循环,就可以让run方法结束,也就是线程结束。特殊情况:当线程处于了冻结状态。就不会读取

2015-06-23 21:37:33 434

原创 Java多线程 线程的停止

Thread提供的Stop已经过时,如何自己手动实现停止线程/*stop方法已经过时。如何停止线程?只有一种,run方法结束。开启多线程运行,运行代码通常是循环结构。只要控制住循环,就可以让run方法结束,也就是线程结束。特殊情况:当线程处于了冻结状态。就不会读取到标记。那么线程就不会结束。当没有指定的方式让冻结的线程恢复到运行状态是,这时需要对冻结进行清除。强制

2015-06-23 21:31:01 373

原创 Java多线程 多个生产者和多个消费者实现同步 jdk1.5

jdk1.5用Lock和Condition  代替  jdk1.4  synchronized、wait、notifypackage test;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reent

2015-06-23 21:11:05 438

原创 Java多线程 多个生产者和多个消费者实现同步 jdk1.4

程序说明:2个生产者,2个消费者, 生产一个商品,消费一个商品(商品有标号)特殊:这里生产者、消费者都有多个, 1. 如果生产者、消费者都是1个,那么flag标记可以用if判断。这里有多个,必须用while判断.2. 在while判断的同时,notify函数可能唤醒本类线程(如一个消费者唤醒另一个消费者),这会导致所有消费者忙等待,程序无法继续往下执行。使用notify

2015-06-23 20:46:20 1152

原创 Java多线程 读写线程同步

程序说明:一个读线程,一个写线程,  有一个缓存池资源写线程写一次到缓存池,读线程读一次输出到控制台。程序效果:控制台 交替输出Jack.....man静静.....女....package test;class Person {}/*效果:控制台 交替输出Jack.....man静静.....女....Resouce资源类,flag表示是否

2015-06-23 19:03:16 574

原创 Mac环境 Sublime text2、3解决中文乱码的问题

1.  按Ctrl+`调出console2.粘贴以下代码到底部命令行并回车: sublimetext2: import urllib2,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)if not os.path.exists(ipp

2015-06-17 23:32:39 409

原创 Java多线程 synchronized锁的应用

1.当变量(Object对象)被加上synchronized锁,同一时间只允许一个线程在synchronized内的代码块2.被synchronized修饰的方法,相当于给方法上锁,同一时间只允许一个线程调用该方法        对于非静态方法,synchronized上锁的实际上是  this变量        对于静态方法,synchronized上锁的实际上是   Class变量

2015-06-17 22:25:13 380

原创 Java多线程 创建线程的两种方法

package test;class DemoOne extends Thread { public void run() { for(int i = 0;i < 60; i++) System.out.println("DemoOne " + i);// System.out.println("Demo Run"); }}class DemoTwo extends

2015-06-16 17:30:46 421

原创 Java异常 finally语句

finally中的代码块在异常处理(catch块)以后执行finally块   通常是关闭资源,比如关闭数据库,关闭打开文件package test;public class Test { public static void main(String[] args) { try { int x = 3/0; }catch(Exception e) { e.p

2015-06-16 16:46:08 377

空空如也

空空如也

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

TA关注的人

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