Java
文章平均质量分 60
Silent-Jy
生活是坚持出来的。
展开
-
匿名内部类
匿名内部类(用于简化方便阅读) 前提:必须继承一个类或者实现一个借口(即可以采用多态的方式实现访问内部类)注意,内部定义的方法不要过多。abstract class AbsDemo{ abstract void Show();}class Outer{ public void Method() { new A原创 2012-12-31 12:44:28 · 505 阅读 · 0 评论 -
JAVA_UDP发送端和接受端
/* 通过UDP传输方式,将一段文字数据发送出去1.建立udpsocket服务2.提供数据,并将数据封装到数据包中。3.通过socket服务的发送功能。将数据包发出去4.关闭资源类: DatagramPacket 封装数据包 DatagramSocket 创建UDP服务*/import java.net.*;class UdpSend{ public stat原创 2013-01-26 15:53:06 · 11584 阅读 · 0 评论 -
JAVA_网络编程_IP类
/*IP地址对象:InetAddress本地回环地址:127.0.0.1 或 localhost可用ping来检测网卡好坏UDP: 将数据源和目的封装成数据包中,不需要建立连接 每个数据包的大小限制在64K内 因无连接,是不可靠的协议,但速度快TCP: 建立连接,形成传输数据的通道 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率稍低原创 2013-01-26 15:52:09 · 951 阅读 · 0 评论 -
Collections类中排序方法
import java.util.*;/*集合排序 List集合中可以使用Collections.sort()方法 在需要求逆序时可以使用Collections.reverseOrder()方法,该方法返回一个逆序比较器*/class StrLenComp implements Comparator{ public int compare(String o1,String o2)原创 2013-01-09 23:07:26 · 9222 阅读 · 0 评论 -
TreeMap实现统计字符出现次数
/*使用TreeMap集合实现字符出现次数*/import java.util.*;class TreeMaptest{ public static void main(String[] args) { String s = "awaz"; System.out.println(Count(s)); } public static String Count(String原创 2013-01-09 23:05:54 · 804 阅读 · 0 评论 -
Map容器一映射多
import java.util.*;/*Map容器中一映射多。获取元素的方法*/class Student{ private String name; private String id; Student(String name,String id) { this.name = name; this.id = id; } public String toString()原创 2013-01-09 23:04:16 · 682 阅读 · 0 评论 -
使用TreeMap集合实现统计字符出现次数
/*使用TreeMap集合实现字符出现次数*/import java.util.*;class TreeMaptest{ public static void main(String[] args) { String s = "awaz"; System.out.println(Count(s)); } public static String Count(String原创 2013-01-07 20:37:35 · 1259 阅读 · 0 评论 -
死锁
/*死锁 即下面的程序,在执行过程中,有可能使得线程0进去if中的locka,而线程1进入到else中的lockb 但线程0想进入到lockb中时由于线程1已经进入到下面else中的lockb,被锁了,无法进入。线程1同样道理*/class DLock//用于标志两个不同的锁{ static Object locka = new Object(); static Object loc原创 2012-12-31 21:09:20 · 408 阅读 · 0 评论 -
多线程同步
/*synchronized(对象)//其中对象相当于一个标志(锁),用于判断{。。。。 }//同步代码块同步的前提必须是两个或两个以上的线程,且共用同一个锁同步解决了多线程的安全问题弊端:多线程需要判断锁,消耗了资源同步函数:将synchronized放在函数名前面即可(即具有同步性质)。使用的锁是this 静态的同步方法的锁是该方法所在类的字节码文件对象。 需要注意哪些需要同原创 2012-12-31 20:44:02 · 518 阅读 · 0 评论 -
单例设计模式
在程序设计的时候,有时会遇到一些要求只能创建一个实例的时候(如开发窗口时只允许打开一个窗口,即只能创建一个窗口句柄)。在设计的时候要注意将该实例的构造函数私有化(即用private修饰),从而达到不让使用者再创建该类实例 /*单例设计模式,使用静态成员函数返回该类实例的地址推荐使用饿汉式*///饿汉式,直接申请一个singleInstan原创 2012-12-31 12:42:57 · 413 阅读 · 0 评论 -
获取最大相同子串
class StringTest3 { public static void main(String[] args) { String s1 = "Hello" ; String s2 = "ell"; System.out.println(getMaxSubString(s2,s1)); } /*获取最大相同子串*/ public static String getMa原创 2013-01-02 08:29:11 · 1304 阅读 · 0 评论 -
线程间的通信
/*线程间的通信 使用Lock接口, condition对象中实现同步中的wait、notify、notifyAll方法,condition对象可以从Lock中的newCondition来获取 */import java.util.concurrent.locks.*;class ProConDemo{ public static void main(String[] args原创 2013-01-01 17:17:12 · 431 阅读 · 0 评论 -
包
/*包(package),cmd命令为javac -d . PackDemo.java 点代表的是当前目录,亦可以写其它目录 包与包之间的访问,需要写包名.类名或者用import引入包improt pack.*; 代表引用pack包中的所有类jar包:例如 jar -cf ja.jar pack packb使用时set classpath=....\ja.jar java p原创 2012-12-31 21:38:27 · 380 阅读 · 0 评论 -
拆分出一个数组中的连续数字
//拆分一个数组中连续的数字,可以参考字符串匹配算法class Dispart{ int cnt=0; //用于判断连续时用 int index= 0; int[]st; Dispart(int len){ st = new int[2*len]; } //分配所需要拆开的数组空间的2倍,防止空间不足 void Disp(原创 2013-01-01 17:21:02 · 2503 阅读 · 0 评论 -
多线程的创建两种方式和区别
/*创建线程的一种方式是:继承Thread类,并复写类中run方法最后调用线程的start方法, 该方法启动线程并调用run方法(即和模板方法类似)getName();获取线程的名称static Thread currentThread()为获取当前线程对象第二种方式是实现Runnable接口中的run方法调用Thread(Runnable traget)构造函数实现class原创 2012-12-31 14:58:32 · 4064 阅读 · 0 评论 -
环境变量设置
设置临时环境变量 set Path = "D:\JAVA" //等号右边输入需要设置位置Path是设置javac路径,而classpath是配置类文件的路径,classpath用法和Path差不多。set classpath= 清空当前设置set classpath=,; 在当前路径下查找set classpath=D:\JAVA; 先在D:JAVA下查找原创 2012-12-31 12:41:56 · 445 阅读 · 0 评论 -
模板方法
模板方法适用于在一个程序中,一段代码确定,而另外一段代码不确定。下面举例说明如需要写一个获取一个程序代码运行时间时,可以先获取程序开始和结束的时间,再将两者相减即可System.currentTimeMillis(); 为获取当前时间与1970年0时0点的差值,精确到毫秒public abstract class GetTime //一个获取程序运行时间的工具原创 2012-12-31 12:43:38 · 374 阅读 · 0 评论 -
静态导入和可变参数
/*静态导入 import static java.util.Arrays.*; 导入的是Arrays这个类中的所有静态成员当导入时,类名重名时,需要指定具体的包名当方法重名时,需要指定具体的对象或者类*//*可变参数方法,即在传递给一个方法中的参数时长度是可以变化的 在有其他参数时,可变参数应该放在最后 如ParaShow(String s,int...arr) */cl原创 2013-01-12 15:34:19 · 566 阅读 · 0 评论