分类目录归档:JAVA

关于java的那些事儿

红帽redhat免费空间服务openshift申请

openshift是redhat的开源空间,支持java,php,python,等等。你可以在上面搞一个java应用或者php应用。系统会给你一个ssh账户,等于你有了一台VPS 而且这一切都是免费的 http://www.openshift.com/ 先注册,不拉不拉一大堆资料填写。 成功以后 直接创建一个wordpress 3.0 成功以后openshift给月小升发送了一大堆账户密码(直接显示在界面上的) MySQL 5.1 database added. Please make note of these credentials: Root User: xxxxxx Root Password: fZ-_Ydg Database Name: wordpress Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/ You can manage your new MySQL database by also embedding … 继续阅读

发表在 JAVA, Linux, PHP, 国外主机 | 标签为 , , , , , | 8 条评论

java使用RandomAccessFile快速读取超大文件

服务器的日志文件往往达到400多M,简单的文件读取实在太慢,太占用机器资源。 特别是如果你需要5分钟就扫描一次日志文件,来统计一些即时数据。比如刚才10分钟的来访客户(大型网站用户统计系统例如51.la 会经常用到吧。)即时扫描大数据文件中的一部分显得非常之重要。 本文讲述了如果使用java的RandomAccessFile方法从一个很大的文件来读取部分字节 测试文件总大小46085个字节 读取文件最后85个字节 文件大小:46085 85 测试效果 ?展功能 —> 优酷视频   其他的如奇艺,土豆之类操作顺序相同。 当然我们也可以读取从46000只读取20个字节,看个人需要,这里仅仅作为示例 package com.javaer.examples.file;   import java.io.IOException; import java.io.RandomAccessFile;   public class ReadBigFile { public static void readBigFile() throws IOException{ String fileName = "/Users/mc2/Desktop/youku.txt"; RandomAccessFile randomFile = … 继续阅读

发表在 JAVA | 标签为 , , | 2 条评论

自定义java toString方法

java里我们经常System.out.println(xx) xx可以是一个List 一个HashMap 一个HashSet 一个什么奇怪的自定义的类。 只要能正确显示字符串的背后起作用的都是一个叫toString 的方法。 看个例子 package com.javaer.examples;   import java.util.ArrayList;     class Girl{ String name = ""; int age = 0; }   public class JToString {   /** * @param args */ public static void … 继续阅读

发表在 JAVA | 标签为 , | 7 条评论

java多线程扫描某服务器端口【黑客?】

端口扫描是不少黑客进行网络攻击第一步要做的事情。 扫描你的mysql服务3306端口是不是很恐怖啊。扫描你的22 Linux服务器远程登陆端口。恐怖吧。月小升觉得这个办法也可以用来监测自己的服务器是否有对外不该公开的端口被自己公开了。 package com.javaer.examples.socket;   import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException;   public class ScanPort extends Thread{ private static int i=1; public void run(){ while(i< 65536){ int temp=i; try{ Socket client = new Socket("baidu.com",temp); //如果client不为空,说明该端口对外开放。 //否则该端口没有在监听的服务,或者是该端口对外屏蔽。 if(client!=null){ System.out.println("Port :"+temp+" … 继续阅读

发表在 JAVA | 标签为 , | 6 条评论

java优先队列 PriorityQueue

PriorityQueue是个基于优先级堆的极大优先级队列。 此队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable), 也可以根据 Comparator 来指定,这取决于使用哪种构造方法。优先级队列不允许 null 元素。 依靠自然排序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassCastException) 比如队列 1 3 5 10 2 自动会被排列 1 2 3 5 10 package com.javaer.examples.datastruct;   import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue;   import org.apache.poi.ss.formula.functions.Count;   public class PriorityQueueExample {   … 继续阅读

发表在 JAVA | 标签为 , , , , | 一条评论

java的栈学习

栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。 栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈,删除则称为退栈。 栈也称为后进先出表。 package com.javaer.examples.datastruct;   import java.util.Stack;   public class StackExample {   /** * @param args */ public static void main(String[] args) { Stack s = new Stack(); Object o; s.push("1"); s.push("2"); o = s.push("3"); System.out.println(o);   … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java Queue函数大全及使用说明

在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。 Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用element()或者peek()方法。 值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。   1.入队列 offer(obj);   2.出队列 poll();   3.增加一元素 add(obj);   4.增加一集合 add(c);   5.读头元素 peek() or element()   6.取队列长度 size();   7.清队列 clear() import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue;   public class Main {   public static void main(String[] args) { … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

采用LinkedList的java队列

Java队列 队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。 队列空的条件:front=rear 队列满的条件: rear = MAXSIZE package com.javaer.examples.datastruct;   import java.util.LinkedList; import java.util.Queue;   public class QueueExample {   /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

枚举带属性的实体

枚举,还可以枚举带一点属性的实体。 枚举可以用来枚举几个人 Tom,Jack,Hai,Walter. 可以枚举几个车 Audi,Volvo,BWM,Ford 还可以枚举带属性的 ZHAO(“1″),QIAN(“2″),SUN(“3″),LI(“4″) 来个带属性的例子 package com.javaer.examples;   enum Color { GREEN("green"), RED("red"), BLACK("black"), WHITE("white"); private final String color;   Color(String color) { this.color = color; }   @Override public String toString() { return color; }   … 继续阅读

发表在 JAVA | 标签为 , , | 4 条评论

java RMI的意义,及小例子

RMI的意义 定义: RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。也可以说成分布式计算、可以远程调用方法。 到底有什么作用,看下面的小例子 例子:比如你有一台支持Java的手机 还有一台台式机 手机上有一个非常复杂的运算 如果用手机 来计算的话可能需要很长时间、不过如果用台式机的话几秒就结束了,这个时候就是RMI大显神通的时候,使用RMI从手机发送请求 然后交给台式机计算 然后台式机返回计算和的结果 第一步:创建一个远程接口 package com.javaer.examples.socket.rmi;   import java.rmi.Remote; import java.rmi.RemoteException; //创建远程接口及声明远程方法 public interface HiInterface extends Remote { /** * 远程接口方法必须抛出 java.rmi.RemoteException */ public … 继续阅读

发表在 JAVA | 标签为 , | 留下评论