Java中静态变量的适用场景
Java类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,有些时候可以认为是全局变量。因此在某些时候为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处:Java代码
public class WeekA{
static class Data {
private int week;
private String name;
Data(int i, String s) {
week= i;
name = s;
}
}
Data weeks[] = {
new Data(1, "Monday"), new Data(2, "Tuesay"), new Data(3, "Wednesday"), new Data(4, "Thursday"), new Data(5, "Friday"), new Data(6, "Saturday"), new Data(7, "Sunday")
};
public static void main(String args[]) {
final int N = 10000;
WeekA weekinstance;
for (int i = 1; i <= N; i++){
weekinstance = new WeekA ();
}
}
} public class WeekA{static class Data {
private int week;
private String name;
Data(int i, String s) {
week= i;
name = s;
}
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import org.htmlparser.RemarkNode; import org.htmlparser.StringNode; import org.htmlparser.Node; import org.htmlparser.tags.*; import org.htmlparser.Parser; import org.htmlparser.filters.StringFilter; import org.htmlparser.util.NodeIterator; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; import java.util.Queue; import java.util.LinkedList;
public class Spider implements Runnable {
boolean search_key_words = false;
int count = 0;
int limitsite = 10;
int countsite = 1;
String keyword = "中国";//搜索关键字
Parser parser = new Parser();
// List linklist = new ArrayList();
String startsite = "";//搜索的其实站点
SearchResultBean srb;//保存搜索结果
List resultlist = new ArrayList();//搜索到关键字链接列表
List searchedsite = new ArrayList();//已经被搜索站点列表
Queue linklist = new LinkedList();//需解析的链接列表
HashMap<String, ArrayList<String>> disallowListCache = new HashMap<String, ArrayList<String>>();
public Spider(String keyword, String startsite) { this.keyword = keyword; this.startsite = startsite; linklist.add(startsite);
srb = new SearchResultBean();
}
public void run() {
// TODO Auto-generated method stub
search(linklist);
}
public void search(Queue queue) {
String url = "";
while(!queue.isEmpty()){ url = queue.peek().toString();//查找列队
try {
if (!isSearched(searchedsite, url)) {
if (isRobotAllowed(new URL(url)))//检查该链接是否被允许搜索
processHtml(url);
else
System.out.println("this page is disallowed to search");
}
} catch (Exception ex) {
}
queue.remove();
}
}
/**
*解析HTML
* @param url
* @throws ParserException
* @throws Exception
*/
public void processHtml(String url) throws ParserException, Exception { searchedsite.add(url);
count = 0;
System.out.println("searching ... :" + url); parser.setURL(url); parser.setEncoding("GBK"); URLConnection uc = parser.getConnection(); uc.connect(); //uc.getLastModified(); NodeIterator nit = parser.elements();
while (nit.hasMoreNodes()) { Node node = nit.nextNode();
parserNode(node);
} 来源:考试大-Java认证考试
}
Data weeks[] = {
new Data(1, "Monday"), new Data(2, "Tuesay"), new Data(3, "Wednesday"), new Data(4, "Thursday"), new Data(5, "Friday"), new Data(6, "Saturday"), new Data(7, "Sunday")
};
public static void main(String args[]) {
final int N = 10000;
WeekA weekinstance;
for (int i = 1; i <= N; i++){
weekinstance = new WeekA ();
}
}
}
来