hotspot 虛擬機(jī)(咱們平時(shí)開(kāi)發(fā)用的sun公司的虛擬機(jī),其他兩大商用虛擬機(jī)是BEA的JRockit和IBM的J9)里面兩個(gè)字節(jié)來(lái)限制大小,所以最多65536行,超過(guò)javac會(huì)無(wú)法編譯。而且一個(gè)Java方法不能超過(guò)64k。一般一個(gè)Java類(lèi)不要有太多行數(shù),如果一個(gè)Java代碼超過(guò)幾千甚至過(guò)萬(wàn),個(gè)人覺(jué)得應(yīng)該考慮一些代碼優(yōu)化方式,比如繼承;或者重新構(gòu)思這個(gè)類(lèi)。代碼行數(shù)太多可讀性查,不利于維護(hù)。

成都創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開(kāi)發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為成百上千服務(wù),成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶(hù)提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣服務(wù)!
最近做網(wǎng)站的開(kāi)發(fā),需要做網(wǎng)站的訪(fǎng)問(wèn)量統(tǒng)計(jì),以前也做過(guò)這方面的東西,不過(guò)以前做的時(shí)候是在asp下做的,而且只能實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)站歷史總訪(fǎng)問(wèn)量的統(tǒng)計(jì),且訪(fǎng)問(wèn)的數(shù)據(jù)是放在文件一個(gè)文件中的,現(xiàn)在在jsp下實(shí)現(xiàn),個(gè)人感覺(jué)如果再用文件的形式來(lái)存貯訪(fǎng)問(wèn)量的話(huà),就有點(diǎn)辱沒(méi)java語(yǔ)言的強(qiáng)大功能了,所以自己設(shè)計(jì)了一個(gè)網(wǎng)站訪(fǎng)問(wèn)量統(tǒng)計(jì)的程序,現(xiàn)帖出如下,希望對(duì)jsp開(kāi)發(fā)的同學(xué)有幫助
首先說(shuō)一下設(shè)計(jì)的思想,由于訪(fǎng)問(wèn)量需要在每個(gè)頁(yè)面進(jìn)行顯示,如果每次都進(jìn)行文件的讀寫(xiě),或是查詢(xún)數(shù)據(jù)庫(kù)的話(huà),顯示是極其浪費(fèi)資源的,所以以下的程序,采用了緩存的方式,對(duì)訪(fǎng)問(wèn)量進(jìn)行緩存,并在更新緩存的同時(shí)同步更新庫(kù)中的數(shù)據(jù),(說(shuō)點(diǎn)題外話(huà),這一步讀者可以自己視情況而改為每隔一定的時(shí)間向數(shù)據(jù)庫(kù)寫(xiě)一次數(shù)據(jù),這樣會(huì)占用更少的資源,而達(dá)到同樣的效果,這里筆者只所以沒(méi)有采用這種方式,是因?yàn)楫?dāng)前的java虛擬機(jī)還沒(méi)有一種釋放緩存并通知用戶(hù)程序的機(jī)制,也就是說(shuō),如果系統(tǒng)資源不足,或是緩存的資源長(zhǎng)時(shí)間未利用時(shí),java虛擬機(jī)很可能會(huì)釋放緩存,而在釋放緩存之前虛擬機(jī)并不會(huì)通知程序做善后的處理,從而造成數(shù)據(jù)的丟失,而且虛擬機(jī)釋放資源的時(shí)間也是不確定的,因?yàn)槿绻到y(tǒng)資源充足,有可能即使不用,也會(huì)隔很長(zhǎng)一段時(shí)間系統(tǒng)才會(huì)釋放緩存資源,所以讀者如果采用這
DIV class="h"
%-- 記錄網(wǎng)站訪(fǎng)問(wèn)次數(shù) --%
%
Integer counter = (Integer)application.getAttribute("counter"); //先從application里面獲取計(jì)數(shù)器的key的值
if(counter==null){
//如果該值為null,說(shuō)明第一次訪(fǎng)問(wèn)
application.setAttribute("counter",1);
counter=(Integer)application.getAttribute("counter");
}else {
//如果該值不為空,取出來(lái)進(jìn)行累加
int i = counter.intValue();
i++;
application.setAttribute("counter",i);//累加后再放進(jìn)去
}
%
% User user =(User)session.getAttribute("users"); %
%="歡迎"+user.getName() % |您是第%=counter.intValue()%位訪(fǎng)客
/DIV
謝謝~
public class Counter {
private int count;
// 每訪(fǎng)問(wèn)一次,計(jì)數(shù)器自加一
public int getCount() {
return ++count;
}
public void setCount(int count) {
this.count = count;
}
}
%-- 定義一個(gè) session 范圍內(nèi)的計(jì)數(shù)器 記錄個(gè)人訪(fǎng)問(wèn)信息 --%
jsp:useBean id="personCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="session" /
%-- 定義一個(gè) application 范圍內(nèi)的計(jì)數(shù)器 記錄所有人的訪(fǎng)問(wèn)信息 --%
jsp:useBean id="totalCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="application" /
div align="center"
form action="method.jsp" method="get"
fieldset style='width: 300'
legend計(jì)數(shù)器/legend
table align="center" width="400"
tr
td width=150 align="right" style="font-weight:bold; "您的訪(fǎng)問(wèn)次數(shù):/td
td
%-- 獲取個(gè)人的 訪(fǎng)問(wèn)次數(shù) --%
jsp:getProperty name="personCount" property="count" / 次
/td
/tr
tr
td width=150 align="right" style="font-weight:bold; "總共的訪(fǎng)問(wèn)次數(shù):/td
td
%-- 獲取所有人的 訪(fǎng)問(wèn)次數(shù) --%
jsp:getProperty name="totalCount" property="count" / 次
/td
/tr
/table
/fieldset
/form
/div
希望你能幫到你
優(yōu)秀的JAVA程序員平常一天至少寫(xiě)150行代碼,普通的JAVA程序員,平均一天的有效代碼量大概是50~70行, 注意是有效代碼。
延展回答:
JAVA程序員廣義上是指一群以JAVA為謀生手段的軟件開(kāi)發(fā)人員。狹義的說(shuō),是指擁有SUN公司JAVA認(rèn)證的程序員。Sun Java認(rèn)證分為兩個(gè)級(jí)別:Sun 認(rèn)證Java程序員和Sun 認(rèn)證Java開(kāi)發(fā)員。通常要求程序員精通java基礎(chǔ),java高級(jí)編程,及常用java設(shè)計(jì)模式,并深入理解mvc編程模式,了解uml相關(guān)知識(shí)。
雖然JAVA人才的薪水很高,但是對(duì)該類(lèi)人才需求旺盛的IT企業(yè)卻很難招聘到合格的JAVA人員。其中,最根本的原因就是許多計(jì)算機(jī)專(zhuān)業(yè)的畢業(yè)生在讀期間沒(méi)有掌握實(shí)用的技能與經(jīng)驗(yàn),距離企業(yè)的實(shí)際用人需求有較大的差距。因此,計(jì)算機(jī)專(zhuān)業(yè)的大學(xué)生欲成為Java程序員,最便捷的一條路就是參加以實(shí)戰(zhàn)項(xiàng)目為主要教學(xué)方法的JAVA職業(yè)技能培訓(xùn),從而有效地縮短同企業(yè)具體用人需求之間的差距。
Java平臺(tái)以其移動(dòng)性、安全性和開(kāi)放性受到追捧。據(jù)IDC預(yù)計(jì),自2001年起的其后5年內(nèi),采用Java的IT產(chǎn)品的價(jià)值將翻番,在2006年將達(dá)到4.53億美元,年增長(zhǎng)率為14.9%。截止到2003年5月,Java注冊(cè)開(kāi)發(fā)商超過(guò)300萬(wàn)人,對(duì)JRE(Java運(yùn)行環(huán)境)的下載達(dá)7200萬(wàn)次。詹姆斯·戈士林博士預(yù)計(jì)在3~5年內(nèi)Java技術(shù)開(kāi)發(fā)商將發(fā)展到1000萬(wàn)。無(wú)線(xiàn)Java也在迅速攀升。
步驟一、建一個(gè)表,表名任意,這里取名為:visitorcounter,表的結(jié)構(gòu)如下所示:
+-------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+------------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| vdate | date | NO | | 2000-01-01 | |
| vnum | int(11) | NO | | 0 | |
+-------+------------------+------+-----+------------+----------------+
步驟二、建立一個(gè)java類(lèi),名字也為:visitorcounter,類(lèi)的內(nèi)容如下:
package com.hdzx.pub;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
public class VisitorCounter {
private final static String TABLE_NAME = "visitorcounter";
private static String today = null;
private static long today_num = 0;
private static long total_num = 0;
//加載訪(fǎng)問(wèn)量
public static void loadNum(){
if(total_num1)
loadTotalNum();
if(today_num1)
loadToadyNum();
}
//加載今日訪(fǎng)問(wèn)量
private static void loadToadyNum() {
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where vdate='"+today+"'";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
today_num = rs.getLong("vnum");
}
else
{
sql = "insert into "+TABLE_NAME+"(vdate,vnum) values('"+today+"',0)";
db.executeUpdate(sql);
today_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
today_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:獲得訪(fǎng)問(wèn)人數(shù)");
}
}
//加載總訪(fǎng)問(wèn)量
private static void loadTotalNum() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where id=1";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
total_num = rs.getLong("vnum");
}
else
{
total_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
total_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:獲得訪(fǎng)問(wèn)人數(shù)");
}
}
//增加總的訪(fǎng)問(wèn)量
private static int incTotalCounter(){
int k = 0;
DBConnect db = null;
loadNum();
total_num = total_num+1;
String sql = "update "+TABLE_NAME+" set vnum="+total_num+" where id=1";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加訪(fǎng)問(wèn)人數(shù)");
}
return k;
}
//增加今日的訪(fǎng)問(wèn)量
public static int incTodayCounter(){
int k = 0;
DBConnect db = null;
String sql = null;
loadNum();
today_num += 1;
sql = "update "+TABLE_NAME+" set vnum="+today_num+" where vdate='"+today+"'";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
if(k 0)
incTotalCounter();
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加訪(fǎng)問(wèn)人數(shù)");
}
return k;
}
//獲得今天的日期
private static String getTodayDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
///獲得今日訪(fǎng)問(wèn)量
public static long getTodayNum(){
loadNum();
return today_num;
}
//獲得總的訪(fǎng)問(wèn)量
public static long getTotalNum(){
loadNum();
return total_num;
}
}
步驟三、經(jīng)過(guò)以上的步驟后,在頁(yè)面中加入以下的代碼,就可以實(shí)現(xiàn)網(wǎng)站訪(fǎng)問(wèn)量的統(tǒng)計(jì)工作:
if(session.isNew())
{
VisitorCounter.incTodayCounter();
}
%
今日訪(fǎng)問(wèn)量:%=VisitorCounter.getTodayNum() %br/
總的訪(fǎng)問(wèn)量: %=VisitorCounter.getTotalNum() %
文章題目:java訪(fǎng)問(wèn)量多少代碼,javaweb統(tǒng)計(jì)網(wǎng)站訪(fǎng)問(wèn)人數(shù)
轉(zhuǎn)載源于:http://chinadenli.net/article22/heopjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、App開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營(yíng)銷(xiāo)推廣、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)