Java中静态变量的适用场景

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 ();

  }

  }

  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值