分类目录归档:JAVA

关于java的那些事儿

需要熟练使用的Eclipse快捷键

快捷键的使用,会大大提高我们做事情的效率。 如果按下两个键就能搞定的事情,我们老是用鼠标来完成,不就慢了么。 不追求速度的程序猿可以绕过。(当然这仅仅是一个小细节。) Eclipse常用快捷键大全。 Ctrl+K 光标放在一个变量上(注意,是变量,如果你的光标放在了字符串上,按下Ctrl+K光标会定位到下一个相同的变量 Shift+Ctrl+K 跟Ctrl+K功能一样,方向相反 Ctrl+O 打开类似大纲视图的小窗口 Alt+ 左右方向键,跳到前一次/后一次的编辑位置 (经常会用到) 双击左括号(小括号,中括号,大括号),将选择括号内的所有内容 F3打开声明该引用的文件 F4打开类型层次结构 Ctrl+H打开搜索窗口 Shift+Ctrl+S保存全部 Shift+Ctrl+R打开资源 Ctrl+Q回到最后一次编辑的地方 Ctrl+Shift+G在workspace中搜索引用 Alt+上、下方向键,将选中的行向上或向下移动 Shift+Enter在当前行的下面添加一个空行,光标可以当前行的任意位置 Ctrl+L跳转到某行 Ctrl+M最大化当前的Edit或View,再按则反之 Ctrl+/注释当前行,再按则反之 Ctrl+T显示当前类的继承情况(可以查看类的目录树) Ctrl+E显示当前Edit的下拉列表 Ctrl+/(小键盘) 折叠当前类中的所有代码 Ctrl+*(小键盘) 展开当前类中的所有代码 Alt+/代码助手,提示代码 Ctrl+J正向增量查找 Ctrl+Shift+J反向增量查找 Ctrl+Shift+F4关闭所有打开的edit Ctrl+Shift+R查找文件 Ctrl+Shift+T查找类 Alt+Shift+R重名命 Alt+Shift+M抽取方法 … 继续阅读

发表在 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 | 标签为 , , , , | 2 条评论

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 条评论