
Java
文章平均质量分 58
zlQ_
这个作者很懒,什么都没留下…
展开
-
Java--设计模式之观察者模式
Java--设计模式之观察者模式翻译 2013-08-14 19:29:51 · 2240 阅读 · 0 评论 -
Java--选择排序,冒泡排序
import java.util.*;/*对给定数组进行排序。{5,1,6,4,2,8,9}*/class ArrayTest2 { /* 选择排序。 内循环结束一次,最值出现头角标位置上。 */ public static void selectSort(int[] arr) { for (int x=0; x<arr.length-1 ; x++) {翻译 2013-04-07 12:28:11 · 1039 阅读 · 0 评论 -
Java--Socket通信(双向)
新建两个工程,一个客户端,一个服务端,先启动服务端再启动客户端两个工程的读写操作线程类基本上完全相同 服务端: import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import原创 2013-04-03 18:53:06 · 36744 阅读 · 5 评论 -
Java--UDP通信(双向)
新建两个工程,一个Send,一个Receive,先启动Receive,再启动Send,至此就可以双向通信 Send工程:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import j原创 2013-04-04 17:39:52 · 8928 阅读 · 0 评论 -
Java--Socket通信(单向)
1.客户端接受服务端的消息并打印: 客户端: import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.Socket;public class Client {原创 2013-04-03 17:27:34 · 3076 阅读 · 1 评论 -
Java--UDP通信(单向)
Send(发送方): import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;原创 2013-04-04 15:36:52 · 2886 阅读 · 0 评论 -
Java--Socket通信(双向,有界面)
服务端:import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import原创 2013-04-04 14:18:52 · 13042 阅读 · 4 评论 -
Java--设计模式形象比喻
1、ABSTRACT FACTORY追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如翻译 2013-04-02 21:34:28 · 1241 阅读 · 0 评论 -
Java--二进制正负表示
假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。现在想知道,-5在计算机中如何表示? 在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。 原码:一个整数,按照绝对值大翻译 2013-03-13 21:15:45 · 3406 阅读 · 0 评论 -
Java--堆栈
堆栈(英文:stack),也可直接称栈。台湾作堆叠,在计算机科学中,是一种特殊的串行形式的数据结构,它的特殊之处在于只能允许在链结串行或阵列的一端(称为堆栈顶端指标,英文为top)进行加入资料(push)和输出资料(pop)的运算。另外堆栈也可以用一维阵列或连结串行的形式来完成。堆栈的另外一个相对的操作方式称为伫列。由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last翻译 2013-03-13 15:14:58 · 941 阅读 · 0 评论 -
Java--java关闭线程的安全方法
Java 之前有个api函数可以直接关闭线程, stop(), 后来, 取消了. 其替代的方式主要有两种:1. 自己加入一个成员变量, 我们在程序的循环里面, 轮流的去检查这个变量, 变量变化时,就会退出这个线程. 代码示例如下 package com.test; public class StopThread extends Thread { private b翻译 2013-02-28 23:47:56 · 821 阅读 · 0 评论 -
Java--String、StringBuffer与StringBuilder之间区别
1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String 的原因 String:字符串常量 StringBuffer:字符串变量 StringBuilder:字符串变量 从上面的名字可以看到,String是“字符串常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一翻译 2013-02-28 23:44:07 · 670 阅读 · 0 评论 -
Java--单例模式(双重锁的形式)
public class SingleTon { private static SingleTon instance = null; private SingleTon(){ //do something } public static SingleTon getInstance(){ if(instance==null){ synchronized(SingleTon.cl翻译 2013-03-28 00:06:03 · 1937 阅读 · 2 评论 -
Java--com.sun.crypto.provider.SunJCE()报错
报错内容:Access restriction: The constructor SunJCE() is not accessible due to restriction on required library C:\Program Files\Java\jre7\lib\ext\sunjce_provider.jar解决方法:Window -> Preferences -> Java ->原创 2013-05-14 15:49:20 · 15921 阅读 · 2 评论 -
Java--加密解密
package com.joye3g.ed;public class Main { public static void main(String[] args) throws Exception {// initThreeDES();// initAES();// initRSA();// initMD5();// initSHA(); initHMAC(); }原创 2013-05-14 17:51:15 · 1971 阅读 · 0 评论 -
Java--解压缩zip包
Java--解压缩zip包原创 2013-08-14 13:26:52 · 1558 阅读 · 0 评论 -
Java--多线程断点下载
Java--多线程断点下载原创 2013-08-14 13:10:01 · 3211 阅读 · 2 评论 -
Java--进制转换
/**将二进制转换成16进制 * @param buf * @return */ public static String parseByte2HexStr(byte buf[]) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < buf.length; i++) { String hex = Int原创 2013-08-07 12:40:42 · 1142 阅读 · 0 评论 -
Java--计算文件md5值
import java.io.File;import java.io.FileInputStream;import java.math.BigInteger;import java.security.MessageDigest;import java.util.HashMap;import java.util.Map;public class MD5Util { /** * 获翻译 2013-08-05 14:42:27 · 2937 阅读 · 0 评论 -
Java--文件操作,删除文件及文件夹
Java--文件操作,删除文件及文件夹原创 2013-08-02 23:55:20 · 1506 阅读 · 0 评论 -
Java--Java模拟异步消息的发送与回调
本文的目的并不是介绍使用的什么技术,而是重点阐述其实现原理。一、 异步和同步讲通俗点,异步就是不需要等当前执行的动作完成,就可以继续执行后面的动作。通常一个程序执行的顺序是:从上到下,依次执行。后面的动作必须等前面动作执行完成以后方可执行。这就是和异步相对的一个概念——同步。案例:A、张三打电话给李四,让李四帮忙写份材料。B、李四接到电话的时候,手上有自己的工作翻译 2013-07-22 23:04:49 · 999 阅读 · 0 评论 -
Java--Java程序的加载过程
java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:1、首先加载要创建对象的类及其直接与间接父类。2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行。3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。4、翻译 2013-07-21 01:54:09 · 998 阅读 · 0 评论 -
Java--Http向服务端提交字条串数据
Java--向服务端提交字条串数据原创 2013-07-18 13:03:48 · 1661 阅读 · 0 评论 -
Java--内存分配及变量存储位置
Java内存分配中的栈 在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中 为这个变量分配内存空间,当该变量退出该作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。 Java内翻译 2013-07-17 13:01:18 · 2749 阅读 · 0 评论 -
Java--程序运行中的内存分配
寄存器这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部。然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配。我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹。堆栈驻留于常规RAM(随机访问存储器)区域,但可通过它的“堆栈指针”获得处理的直接支持。堆栈指针若向下移,会创建新的内存;若向上移,则会释放那些内存。这是一种特别转载 2013-07-17 12:53:58 · 857 阅读 · 0 评论 -
Java--Eclipse关联Java源码
Java--Eclipse关联Java源码原创 2013-07-17 12:43:40 · 1139 阅读 · 0 评论 -
Java--hashcode,equals,==的区别
1.如果是基本变量,没有hashcode和equals方法,基本变量的比较方式就只有==; 2.如果是变量,由于在java中所有变量定义都是一个指向实际存储的一个句柄(你可以理解为c++中的指针),在这里==是比较句柄的地址(你可以理解为指针的存储地址),而不是句柄指向的实际内存中的内容,如果要比较实际内存中的内容,那就要用equals方法,但是!!!如果是你自己定义的一个类,比较翻译 2013-02-28 23:38:32 · 653 阅读 · 0 评论 -
Java--进程和线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体,与进程的区别:(1) 地址空间: 进程内的一个执行单元;进程至少有一个线程,它们共享进程的地址空间;而进程有自己独立的地址空间;(2) 资源拥有: 进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3) 线程是处理器调度的基本单位,但进程不是.(4) 二者均可并发执行. 进程和线程都是由操作系统所体会的程序运翻译 2013-02-28 23:37:20 · 4044 阅读 · 0 评论 -
Java--产生随机数及随机字符的方法
一、利用random方法来生成随机数 实现方法很简单,就是对原有的random方法按照如下的格式进行变型:(int)(Math.Random()*10)其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。将这个10换成n即可,如改为(int)(Math.Random()*n)。此时应用程序就会产生一个大于等于0小与n之间的随机数。 二、通过Random类来原创 2013-01-05 19:09:34 · 1219 阅读 · 0 评论 -
Java--截取路径字符串
1.截取路径最后一个字符串 /** * 截取链接最后一个字符串 * @author ZLQ * */public class StringTest { public static void main(String[] args) { String url = "http://zhidao.baidu.com/question/147458024.html"; //取得最原创 2013-01-20 12:41:13 · 12787 阅读 · 0 评论 -
Java--关于 i++ 与 ++i
在《Java程序员面试宝典》里面有提到i++这个部分: j++,是一个依赖于java里面的“中间缓存变量机制”来实现的, 通俗的说: ++在前就是“先加后赋”(++j) ++在后就是“先赋后加” (j++) public class Test1 { public static void main(String[] args) {原创 2012-12-13 00:52:26 · 3903 阅读 · 0 评论 -
Java--线程生命周期,线程控制
新建--就绪--(阻塞)--运行--死亡线程状态。线程可以处于下列状态之一: NEW至今尚未启动的线程处于这种状态。 RUNNABLE正在 Java 虚拟机中执行的线程处于这种状态。 BLOCKED受阻塞并等待某个监视器锁的线程处于这种状态。 WAITING无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。 TIMED_WAITING等待另一个线程来执原创 2013-01-05 16:24:49 · 777 阅读 · 0 评论 -
Java--记事本
用Java制作的记事本功能如下:1.打开文件2.保存文件3.换行4.右键,包括:全选,复制,粘贴,剪切5.快捷键:打开,保存 具体实现如下:1.新建窗体2.加入菜单栏到窗体 JMenuBar3.为菜单栏添加菜单 JMenu4.为菜单添加菜单项 JMenuItem5.为部分菜单项添加快捷键6.添加原创 2012-12-12 20:02:51 · 1497 阅读 · 1 评论 -
Java--访问修饰符
作用域 当前类 同包 子孙类 其他包public √ √ √ √protected √原创 2012-12-25 17:59:00 · 677 阅读 · 0 评论 -
Java--线程--线程控制,线程安全,线程同步,线程等待,线程交互,死锁,互斥锁,读写锁
多进程 每个进程间拥有独立的内存空间 0~4G 单核 系统将cpu所有时间分割为相同的时间片 由内核负责调度 线程属于进程内部 进程内部的所有线程共享进程的内存 让一个进程拥有同时执行多段代码的能力 java中的线程由jvm线程调度器负责调度 可执行队列 等待队列 linux中的jvm没有实现线程优先级原创 2012-12-03 20:38:50 · 2068 阅读 · 0 评论 -
Java--类和接口--常规内部类,静态内部类,局部内部类,匿名内部类,抽象类,接口
内部类 在类内部的类 1.解决多继承 2.解决继承和实现接口时候方法名冲突情况 3.实现数据隐藏 只有内部类可以拥有4种访问修饰符 当内部类为private的时候,有外部类提供方法来访问内部类 常规内部类 1.不能有静态属性和方法 2.内部类可以使用外部类的所有属性和方法 3.外部类不能直接使用内部类的属性和方法,使用前必须先实例化原创 2012-11-30 12:58:07 · 1773 阅读 · 0 评论 -
Java--调试--单步调试,断言,单元测试
单步调试:主要查看变量内容的变化 1.设置断点位置,设置在可能出现问题的代码 2.以Debug as方式运行程序 3.F5 --> step into 进入方法内部进行调试 F6 --> step over 单行调试 F7 --> step over 结束当前方法调试,并且返回到方法调用者内部继续调试 断言:以Run as方式运行程序 add原创 2012-11-30 12:27:26 · 2230 阅读 · 0 评论 -
Java--collection--List,Set,Map
集合: 数据结构 abstract data 数据的操作方法abstract data type 数据的操作方法 + 数据 Collection Iterator:只能前序遍历,并且可以在遍历的同时删除元素 ListIterator 前序遍历 后序遍历:必须要先将迭代器移动到集合末尾,才可以从后往前遍历 插入元素:在迭代器当前位置左边原创 2012-11-30 12:19:49 · 1327 阅读 · 0 评论 -
Java--交换两个变量的值的三种方法:借助中间量交换,数值相加减交换,位移运算交换
Java交换两个变量的值的有以下三种方法: 1.借助中间量交换(比较常用,容易想到,便于阅读) int x = 10; int y = 20; int temp = x; x = y; y = temp; 此种方法可以将中间量看成空杯,即把temp看成是空杯, 把x看成是装有白酒的杯子,把y看成是装有红酒的杯子 int原创 2012-11-14 14:36:11 · 3216 阅读 · 0 评论 -
Java--Linux下配置Java环境
一. 下载jdk5.0 for linux 到sun的主页 http://java.sun.com/j2se/1.5.0/download.jsp 下载jdk安装文件jdk-1_5_0_05-linux-i586.bin二. 解压安装jdk 在shell终端下进入jdk-1_5_0_05-linux-i586.bin文件所在目录,执行命令 ./jdk-1_5_0_05-linux-翻译 2013-02-24 02:00:01 · 871 阅读 · 0 评论