摘要: 1、运行结果2、源代码如下:[java]view plaincopypackagedemo.others;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.util.TimerTask;importjavax.swing.*;/***时钟类*/publicclassClockextendsJFrame{//画时钟的面板pr 阅读全文
posted @ 2012-01-19 16:24 王爵的技术博客 阅读(4386) 评论(0) 推荐(1)
摘要: 1、服务器端代码[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.net;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net 阅读全文
posted @ 2012-01-19 16:23 王爵的技术博客 阅读(2276) 评论(0) 推荐(0)
摘要: 1、JDBC连接各个数据库时,存在很多相同的代码部分,把这些部分单独写在一个类里面,根据传入的driver、url、user、password这些参数连接到特定的数据库,工具类代码如下:[java]view plaincopy<spanstyle="font-size:16px;">packagemine.util.database;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.sql.Statement;/***该工具类 阅读全文
posted @ 2012-01-19 16:21 王爵的技术博客 阅读(1029) 评论(0) 推荐(0)
摘要: 1、InetAddress类实现简单IP扫描获得主机名[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.net;importjava.net.InetAddress;importjava.net.UnknownHostException;/**获取指定IP的主机名*/publicclassIPScanner{//传入IP地址,返回主机名称,若主机不可达则返回ip地址的字符串形式publicstaticStringscanner(byte[]ip){InetAddressaddr=null;t 阅读全文
posted @ 2012-01-19 16:17 王爵的技术博客 阅读(1195) 评论(0) 推荐(0)
摘要: 1、SMTP简介2、发送过程3、源代码示例[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.net;importjava.awt.BorderLayout;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.io.PrintWriter;importjava.net.InetAddr 阅读全文
posted @ 2012-01-19 16:16 王爵的技术博客 阅读(1148) 评论(0) 推荐(0)
摘要: 1、用多个线程来同时为多个客户提供服务,这是提高服务器的并发性能的最常用的手段,那么怎样来为多个用户提供服务呢? 主要有三种方法:2、为了更清楚理解服务器到底是怎么工作的,下面用第一种方式来处理多个用户请求。如果想用第二、第三方式可以参考Touch的博客:java多线程总结五:线程池的原理及实现下面的示例中客户端输入信息,服务器端回复相同的信息,可以同时开启多个客户端,同时输入信息,源代码如下:服务器端代码:[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.net;importjava.io 阅读全文
posted @ 2012-01-19 16:15 王爵的技术博客 阅读(1202) 评论(1) 推荐(0)
摘要: 1、socket和serverSocket通信简单介绍如下,注意客户端与服务器端是怎么交换数据的2、模拟qq聊天功能,实现客户端与服务器(一对一)的聊天功能服务器端代码:[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.net;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Sock 阅读全文
posted @ 2012-01-19 16:12 王爵的技术博客 阅读(14741) 评论(2) 推荐(2)
摘要: 1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程池包括以下四个基本组成部分: 1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务; 2、工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务; 3、任务接口(Task):每个任务必须 阅读全文
posted @ 2012-01-19 16:10 王爵的技术博客 阅读(7470) 评论(1) 推荐(0)
摘要: 这是个线程同步的经典例子,源代码如下:[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.thread;/***经典生产者与消费者问题:生产者不断的往仓库中存放产品,消费者从仓库中消费产品。*其中生产者和消费者都可以有若干个。仓库容量有限,库满时不能存放,库空时不能取产品*/publicclassProducersAndConsumers{publicstaticvoidmain(String[]args){Storagestorage=newStorage();Threadconsumer= 阅读全文
posted @ 2012-01-19 16:10 王爵的技术博客 阅读(782) 评论(0) 推荐(1)
摘要: 1、synchronized保证同步先看一个生成偶数的类[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.thread;/***这是一个int生成器的抽象类**/publicabstractclassIntGenerator{privatevolatilebooleancanceled=false;publicabstractintnext();publicvoidcancel(){canceled=true;}publicbooleanisCanceled(){returncanceled 阅读全文
posted @ 2012-01-19 16:08 王爵的技术博客 阅读(658) 评论(0) 推荐(0)
摘要: 这是一个来自《java编程思想上的示例》[java]view plaincopypackagedemo.thread;/***sleep()是静态方法,是属于类的,作用是让当前线程阻塞*join()是使线程同步,如在某个线程里调用t.join()表示t线程执行完再执行当前线程*interrupt()给线程设定一个标志表示该线程已被中断,但在异常捕获时将清理这个标志*所以在catch子句中,该标志为false*/publicclassSleepJoinDemo{publicstaticvoidmain(String[]args){Sleepersleep1=newSleeper("sl 阅读全文
posted @ 2012-01-19 16:07 王爵的技术博客 阅读(645) 评论(0) 推荐(0)
摘要: 乱码问题:当页面中有乱码问题时,servlet中解决方案:[html]view plaincopyresponse.setContentType("text/html;charset=gbk");[html]view plaincopyrequest.setCharacterEncoding("GBK");在JSP中解决方案:[html]view plaincopy<%@pagecontentType="text/html;charset=gb2312"%>解决post方式提交内容的乱码:[html]view plainc 阅读全文
posted @ 2012-01-19 16:06 王爵的技术博客 阅读(352) 评论(0) 推荐(0)
摘要: 所谓的后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此当所有的非后台线程结束时,程序也就终止了,同时会杀死所有后台线程。反过来说,只要有任何非后台线程(用户线程)还在运行,程序就不会终止。后台线程在不执行finally子句的情况下就会终止其run方法。后台线程创建的子线程也是后台线程。下面是一个后台线程的示例:[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.thread;importjava.util.concurrent.Time 阅读全文
posted @ 2012-01-19 16:06 王爵的技术博客 阅读(9202) 评论(2) 推荐(0)
摘要: 1、通过实现Runnable接口线程创建(1).定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。(2).创建Runnable接口实现类的对象。(3).创建一个Thread类的对象,需要封装前面Runnable接口实现类的对象。(接口可以实现多继承)(4).调用Thread对象的start()方法,启动线程示例代码:[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.thread;publicclassTreadDemo1imple 阅读全文
posted @ 2012-01-19 16:04 王爵的技术博客 阅读(439) 评论(0) 推荐(0)
摘要: [java]view plaincopypackagemine.util.others;importjava.util.Random;publicclassGetRandom{//返回ch1和ch2之间(包括ch1,ch2)的任意一个字符,如果ch1>ch2,返回'\0'publicstaticchargetRandomChar(charch1,charch2){if(ch1>ch2)return0;//下面两种形式等价//return(char)(ch1+newRandom().nextDouble()*(ch2-ch1+1));return(char)(ch1+ 阅读全文
posted @ 2012-01-19 16:04 王爵的技术博客 阅读(1974) 评论(0) 推荐(0)
摘要: 1、Date类实例:格式化输出当前日期[java]view plaincopy<spanstyle="font-size:16px;">packagedemo.others;importjava.text.Format;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateDemo{publicstaticvoidmain(String[]args){Dated=newDate();//输出格式:dowmonddhh:mm:sszzzyyyy//表示:星期月日期时分秒时区年Sys 阅读全文
posted @ 2012-01-19 16:03 王爵的技术博客 阅读(1912) 评论(0) 推荐(0)
摘要: 1、Applet类及各个方法说明 Applet类提供一个基本框架,使得applet可以通过Web浏览器来运行,applet没有main方法,它依靠浏览器调用Applet类中的方法。Applet不安全。下面是截取的一段Applet类的源代码:[java]view plaincopy<spanstyle="font-size:16px;">/***Calledbythebrowserorappletviewertoinformthisappletthatithas*beenloadedintothesystem.Itisalwayscalledbeforethefi 阅读全文
posted @ 2012-01-19 16:03 王爵的技术博客 阅读(10217) 评论(0) 推荐(0)
摘要: 1、String类、StringBuilder类、StringBuffer类 String对象是不可变的,重载了运算符+,于是String s="a"+2+"b"+2.2;这条语句就创建了4个String对象对象,把最后创建的对象引用赋给s。 但是String类定义了许多常用的对字符串进行操作的方法:取字符串长度length、判断是否为空串isEmpty、返回字符数组或字节数组toCharArray()、取得指定索引的字符charAt()、字符串比较equals()compareTo()、字符转换成大写或小写toLowerCase()、以什么字符开头或者 阅读全文
posted @ 2012-01-19 16:01 王爵的技术博客 阅读(1909) 评论(0) 推荐(0)
摘要: 1、java标准异常概述Throwable表示任何可以作为异常被抛出的类,有两个子类Error和Exception。从这两个类的源代码中可以看出,这两个类并没有添加新的方法,Throwable提供了所以方法的实现。Error表示编译时和系统错误。Exception是可以被抛出的异常类。RuntimeException继承自Exception(如NullPointerException),表示运行时异常,JVM会自动抛出.2、自定义异常类自定义异常类方法:通过继承Throwable或Exception。异常类的所有实现都是基类Throwable实现的,所以构造自定义异常类完全可以参考Except 阅读全文
posted @ 2012-01-19 16:01 王爵的技术博客 阅读(1235) 评论(0) 推荐(0)
摘要: 几个文件读写的工具类:文本文件读写、二进制文件读写、对象读写。其中对象读写工具类有错误,在试图进行多个对象读取时,读第二个对象就抛出异常,这是为什么?此外怎样把一个存放对象的文件中所有的对象读出来?这个问题已经解决,非常感谢Aguo的文章:自定义ObjectOutputStream,解决追加写入后,读取错误的问题。在这篇文章中我找到了答案,同时对作者的源代码添加了一些注解。解决方案请看文章最后。1、文本文件读写工具类[java]view plaincopy<spanstyle="font-size:16px;">packagemine.util;importja 阅读全文
posted @ 2012-01-19 16:00 王爵的技术博客 阅读(2795) 评论(0) 推荐(0)
摘要: 1、先看一个File类的简单的例子[java]view plaincopy<spanstyle="font-size:16px;">packagetest;importjava.io.File;importjava.io.FilenameFilter;importjava.util.Arrays;importjava.util.Scanner;importjava.util.regex.Pattern;/***File代表文件和目录,静态域有:与系统有关的路径分隔符、与系统有关的默认名称分隔符。*主要操作有:创建文件或目录、删除文件、给文件设定属性、返回指定目录 阅读全文
posted @ 2012-01-19 15:59 王爵的技术博客 阅读(584) 评论(0) 推荐(0)
摘要: [java]view plaincopypackagehttp;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;/**Read和Write分别对应InputStream和OutputStream*前者用于字符流,后者用于字节流*FileReader和FileWrite分别对应与FileInputStream和FileOutputStream*BufferedReader和Buf 阅读全文
posted @ 2012-01-19 15:58 王爵的技术博客 阅读(687) 评论(0) 推荐(0)
摘要: java IO系统采用装饰器模式,用一些装饰类来装饰输入输出来,提供更强大的IO操作FilterInputStream(FilterOutputStream)继承自InputStream(Outputstream)常用装饰类(都继承自FilterInputStream) 功能DataInputStream(DataOutputStream) 读写基本类型即UTFBufferedInputStream(BufferedOutputStream) 使用缓冲区PrintStream继承自Outputstream,用于格式化输出到文本或控制台等示例:[java]view plaincopy<sp 阅读全文
posted @ 2012-01-19 15:58 王爵的技术博客 阅读(1048) 评论(0) 推荐(0)
摘要: InputStream的作用是用来表示那些从不同数据源产生输入的类。OutputStream决定了输出所要去往的目标 数据源 对应的类(都继承自InputStream)(1)字节数组ByteArrayInputStream [ByteArrayOutputStream](2)String对象 StringBufferInputStream(已弃用)(3)文件FileInputStream [FileOutputStream](4)“管道” PipedInputStream [PipedOutputStream](5)由其它种类的流组成的序列SequenceInputStream(6)其他数据源 阅读全文
posted @ 2012-01-19 15:52 王爵的技术博客 阅读(625) 评论(0) 推荐(0)
摘要: [java]view plaincopy<spanstyle="font-size:16px;">packagetest;publicclassSystemDemo{publicstaticvoidmain(String[]args){String[]s=newString[]{"liu"};String[]s2=newString[]{"hai"};String[][]a={s,s2,s,s,s,s2,s2,s};String[][]b=newString[10][10];/**System类包含一些有用的类字段和方法, 阅读全文
posted @ 2012-01-19 15:48 王爵的技术博客 阅读(504) 评论(0) 推荐(0)

我的技术博客:https://biezhi.me

Github:https://github.com/biezhi 

微博:http://weibo.com/u/5238733773

Twitter:https://twitter.com/biezhii