
coreJava
文章平均质量分 75
jianhua0902
这个作者很懒,什么都没留下…
展开
-
java动态代理(JDK和cglib)
JDK动态代理中包含一个类和一个接口: InvocationHandler接口: public interface InvocationHandler { public Object invoke(Object proxy,Method method,Object[] args) throws Throwable; } 参数说明: Object proxy:指被代理的对象。原创 2013-08-20 15:14:18 · 601 阅读 · 0 评论 -
浅谈Java中的几种随机数
众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式,在Java中生成随机数只要简单的调用:java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如a转载 2013-01-09 19:15:05 · 744 阅读 · 0 评论 -
java读取配置文件
package com;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;/*** 读取配置文件prop原创 2012-09-21 00:05:50 · 405 阅读 · 0 评论 -
ByteArrayOutputStream和ByteArrayInputStream详解
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。具体用法如下:原创 2012-11-06 20:58:02 · 472 阅读 · 0 评论 -
字节数组与十六进制间的转换
import java.util.Arrays;public class Bytes { private final static byte[] hex = "0123456789ABCDEF".getBytes(); private static int parse(char c) { if (c >= 'a') return (c - 'a' + 10) & 0x0f原创 2012-11-06 21:15:32 · 566 阅读 · 0 评论 -
IPV6地址获取和校验
1、获取IPV6地址public static String getLocalIPv6Address() throws IOException { InetAddress inetAddress = null; Enumeration networkInterfaces = NetworkInterface .getNetworkInterfac原创 2012-09-28 22:40:45 · 1879 阅读 · 0 评论 -
java解析主机名获取ip地址
import java.net.*;/** * 解析主机名获取ip地址 */public class GetIpByHostName { public static void main(String[] args){ InetAddress address = null; if(args.length == 0){原创 2012-11-06 21:09:36 · 2644 阅读 · 1 评论 -
FileInputStream/FileOutputStream的应用
功能:用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);本地文件读写编程的基本过程为:① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);② 调用FileInputStream或FileOutputStream类中的功能函数如read()、write(int b原创 2012-11-07 20:47:16 · 683 阅读 · 0 评论 -
管道PipedInputStream/PipedOutputStream类应用
当需要在两个线程中读写数据的时候,由于线程的并发执行,读写的同步问题可能会发生困难,这时候可以使用管道,管道事实上是一个队列。管道是由系统维护的一个缓冲区,当然程序员也可以自己直接指定该缓冲区的大小(只需要设置管道流类中的PIPE_SIZE属性的值)。当生产者生产出数据后,只需要将数据写入管道中,消费者只需要从管道中读取所需要的数据。利用管道的这种机制,可以将一个线程的输出结果原创 2012-11-07 20:52:30 · 723 阅读 · 1 评论 -
Runtime类调用Windows系统cmd命令
public class BackUpDB { Runtime run = Runtime.getRuntime(); public void backUpAlldb(){ try { run.exec("cmd /k start E:\\backback.bat"); } catch (IOException e) { System.out.println("原创 2012-09-21 00:37:01 · 622 阅读 · 0 评论 -
定时执行任务quartz用法
定时执行某个或者某些任务的需求是常有发生,要解决此问题总共有两种方法,一种是通过开源的quartz框架完成,此框架由Java语言编写;另一种就是Java自带的定时器Timer。在本篇文章中我们将介绍quartz框架的使用方法。操作步骤:1、编写一个实现接口org.quartz.job的类,此接口中只有一个方法execute:import org.quartz.Job;import原创 2012-11-07 21:12:11 · 1475 阅读 · 0 评论 -
Java运行时命令行的写法
写法:java -cp .;myClass.jar packname.mainclassname-cp 参数后面是类路径,是指定给解释器到哪里找到你的.class文件,classpath中的jar文件能使用通配符,如果是多个jar文件,要一个一个地罗列出来,从某种意义上说jar文件也就是路径。要指定各个JAR文件具体的存放路径,相同路径有多个可使用通配符 java -cp原创 2013-01-09 19:15:59 · 439 阅读 · 0 评论 -
Java文件流关闭和垃圾回收问题
最近遇到一个问题,当导入文件时,文件已经用完,并且流也关闭,但是当打开这个文件时,提示文件正在被使用.解决办法如下: System.gc(); System.gc(); System.gc();原创 2013-01-09 19:17:59 · 924 阅读 · 0 评论 -
字符串、十六进制、byte数组互转
import java.io.ByteArrayOutputStream;public class HexUtil { /** * @param args */ public static void main(String[] args) { String str = "12345678"; String hexStr = encode(str); Sy原创 2013-08-20 15:06:00 · 1186 阅读 · 0 评论 -
Socket 长连接与短连接,心跳
长连接与短连接所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。原创 2013-05-11 12:45:48 · 806 阅读 · 0 评论 -
java解惑-奇偶性
1、奇偶性public static boolean isOdd(int i){ return( i & 1 ) != 0;//而不是return i % 2== 1;考虑到负数,}2、找零时刻并不是所有的小数都可以用二进制浮点数来表示,二进制浮点对于货币计算通常是不合适的。在需要精确答案的 地方,要避免使用float、do原创 2013-05-11 12:38:35 · 791 阅读 · 0 评论 -
限制文本框输入框内容
1.新建一个class MyDocument,继承PlainDocument 2.重载insertString()方法,代码如下 public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException){ if (!(s == null))原创 2013-03-05 19:55:56 · 649 阅读 · 0 评论 -
通过配置文件动态创建对象
如果你要创建的对象依赖于某个文件,那么可以将信息写到配置文件中。现在配置文件config.properties中有一个名称值对,如何加载它?通过InputStream对象和Properties对象即可轻松办到。通常分为5步第一步:得到文件的流对象。第一种方法直接new对象,后面两种都是通过类加载器加载InputStream is = new FileInputStream("c原创 2013-03-05 19:54:09 · 946 阅读 · 0 评论 -
关于读取Src下配置文件问题解决办法
第一种:类加载方式try { Properties p = new Properties(); // 配置文件在class下,即Src下 p.load(TS.class.getClassLoader().getResourceAsStream("config.properties")); String p1 = p.getProperty原创 2013-02-19 19:38:10 · 2019 阅读 · 0 评论 -
java 字节流读取图片,字符流读取,二进制读取
二进制文件读取图片,其实就是用字节流读取图片。其实就是用Java中提供的对字节流操作的类去操控图片文件 import java.io.*;import javax.swing.*;public class Start{ public static void main(String args[]) throws Exception{ //源文件,必须存在,路径可原创 2013-01-18 21:10:35 · 15533 阅读 · 0 评论 -
生成汉字随机验证码
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;im转载 2013-01-09 19:22:36 · 996 阅读 · 0 评论 -
XStream实现javabean与xml之间相互转换
XStream是thoughtworks公司发布的一个简单的Java类库,用于将JavaBean序列化为XML,并且能够将XML文件反向转换为JavaBean.实例:user.javaimport java.io.Serializable; public class User implements Serializable{ privat原创 2013-01-09 19:29:56 · 8526 阅读 · 0 评论 -
java实现十六进制数与图片的互相转换
1 十六进制转图片jpgimport java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;原创 2013-01-09 19:21:05 · 5547 阅读 · 1 评论 -
优秀程序员不得不知道的20个位运算技巧
一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一转载 2012-12-13 19:02:08 · 405 阅读 · 0 评论 -
JAVA国际化
国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母。国际化又称本地化(Localization,L10N)。 国际化相关的Java类Java国际化主要通过如下3个类完成java.util.ResourceBundle:用于加载一个资源包java.util.Locale:对应一个原创 2012-12-06 20:32:58 · 696 阅读 · 0 评论 -
Java中重写Object类的equals方法和Hashcode方法的注意事项
在重写任何类的equals方法是必须遵循以下几点:1、对称性:如果x.equals(y)返回是“true”,那么y.equals(x)也应该返回是“true”。2、反射性:x.equals(x)必须返回是“true”。3、类推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那么z.equals(x)也应该返回是“true”。4、还有一转载 2012-11-29 20:48:55 · 1239 阅读 · 0 评论 -
java仿QQ截图 收藏
Test.java/** * 用Java模拟出QQ桌面截图功能 * @author ZengYanHui , the student comes from Guang Dong Ocean University */package edu.captureimage;import javax.swing.*;import java.awt.*;import java转载 2012-09-21 00:08:34 · 3944 阅读 · 0 评论 -
java udp协议
package udp;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.net.DatagramPacket;import java.net.Data转载 2012-09-21 00:12:55 · 573 阅读 · 0 评论 -
java代码性能优化总结
(1). 用Boolean.valueOf(boolean b)代替new Boolean() 包装类的内存占用是很恐怖的,它是基本类型内存占用的N倍(N>2),同时new一个对象也是性能的消耗。 我们再看看JDK对于Boolean.valueOf(boolean b)的实现: Boolean类提供了两个常量: Java代码 public static final Boo原创 2012-08-23 20:30:09 · 887 阅读 · 0 评论 -
myeclipse调试快捷键及代码注释
Debug调试:一、调试运行的快捷键: Shift+Alt+D 弹出菜单后按J :Java程序调试 Shift+Alt+D 弹出菜单后按R :在Web Server上调试 Shift+Alt+D 弹出菜单后按Q : Ant Build调试二、调试过程中的快捷键:F5 单步调试进入函数内部原创 2012-08-26 20:31:01 · 637 阅读 · 0 评论 -
java内部类
内部类的分类成员内部类、 局部内部类、 静态内部类、 匿名内部类(GUI中用到)成员内部类 内部类和外部类的实例变量可以共存。 在内部类中访问实例变量:this.属性在内部类访问外部类的实例变量:外部类名.this.属性。 成员内部类的特点: 1.内部类作为外部类的成员,可以访问外部类的私有成员或属性。 2.原创 2012-08-26 20:40:13 · 330 阅读 · 0 评论 -
java集合----------Set
集合只是实现了接口的实现类。集合没有个数要求,可以存储不同类型的数据,但是只能存储引用类型。集合的名称就是底层实现的数据结构+集合特点。JDK1.5之前放入基本类型数据会报错,但1.5之后可以在add()方法中直接放入基本类型数据,如:HashSet hs=new HashSet();hs.add(1);此处将自动转换成对应的包装类:new Integer(1)集合的方法:原创 2012-08-26 21:14:13 · 743 阅读 · 0 评论 -
java集合----------List
子接口:List(有序不唯一)List因为是有序集合,所以还多了一种遍历方式,以ArrayList为例:for(int i=0;iSystem.out.println(al.get(i)); 此处取出的依然} 是Object类型 ArrayList(实现了List接口)底层采用了数组的数据结构,特点原创 2012-08-26 21:17:40 · 1157 阅读 · 0 评论 -
java集合----------Map
Map(键值对)Map都具有的方法put()向集合中放数据,size()集合数据的个数。HashMap其底层采用的数据结构也是哈希表,特点是键和值都无序,但是键必须唯一。每个HashMap都是由若干对键值对组成的,一个键对应一个值,可以把HashMap看成一个西瓜:HashMap hm = new HashMap();hm.put("Robin","Very原创 2012-08-26 21:21:41 · 401 阅读 · 0 评论 -
java面试必考
问题一:我声明了什么!String s = "Hello world!";许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello worl原创 2012-08-26 20:32:45 · 886 阅读 · 0 评论 -
java基础深入理解
1、 对象的初始化 (1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。 基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有原创 2012-08-26 20:37:13 · 358 阅读 · 0 评论 -
BlockingQueue详解
BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。BlockingQueue定义的常用方法如下:转载 2012-11-06 21:53:22 · 651 阅读 · 1 评论 -
MyEclipse设置注释模板
MyEclipse菜单设置位置: Window --> Java --> Code Style --> Code Templates --> Comments --> types --> Edit 注释模板格式/** * 项目名称:${project_name} * 类名称:${type_name} * 类描述:暂无 * 创建人:${user}原创 2012-11-06 21:31:31 · 402 阅读 · 0 评论 -
Java之美[从菜鸟到高手演变]之智力题
1、农民分金条问题题目:你让农民为你工作7天,给他的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费,保证该农民在七天中任意一天结束时都可以领到相应的报酬。(例:第一天结束时他可领到1/7,第三天结束时他可领到3/7)我当时在面试某企业的时候被问到了这个问题,面试官没有和我说“金条是平分成7段的”。所以我当时把精力都集中转载 2012-11-29 20:46:16 · 805 阅读 · 0 评论 -
Java之美[从菜鸟到高手演变]之设计模式
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两转载 2012-11-29 20:39:22 · 620 阅读 · 0 评论