java 里沒有c中的malloc,只有new關(guān)鍵字會(huì)分配內(nèi)存。
站在用戶的角度思考問題,與客戶深入溝通,找到法庫(kù)網(wǎng)站設(shè)計(jì)與法庫(kù)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋法庫(kù)地區(qū)。
primitive types(int, float, double, char, boolean, byte)
分步:
int[] array // 此時(shí)jvm未分配內(nèi)存
array = new int[2]; //此時(shí)分配內(nèi)存,2個(gè)int
一步:
int[] array = {1,2}
object types (Object)
分步:
Object[] objs; // 此時(shí)jvm未分配內(nèi)存
objs = new Object[2]; // 此時(shí)jvm分配了數(shù)組本身用的內(nèi)存,但數(shù)組內(nèi)元素內(nèi)存未分配。
objs[0] = new Object(); // 此時(shí)分配內(nèi)存
objs[1] = new Object(); // 此時(shí)分配內(nèi)存
一步:
Object[] objs = {new Object(), new Object()};
程序如下供你參考.說明:
1.0 你題目中只提供了兩門成績(jī),英語(yǔ)和計(jì)算機(jī),但是下面說三門.
如果是的話,自己添加上去吧.很好修改的.
2.0 如果有什么不清楚的話,補(bǔ)充問題吧.或者可以給你留言.
3.0 希望你自己多看書把語(yǔ)言的基礎(chǔ)知識(shí)學(xué)好.
下面共四個(gè)java類文件.
/***Student.java **/
public class Student {
protected int studentID;
protected String name;
protected int englishScore;
protected int computerScore;
protected int totalScore;
public Student(int studentID, String name) {
super();
this.studentID = studentID;
this.name = name;
}
public Student(int studentID, String name, int englishScore,
int computerScore) {
super();
this.studentID = studentID;
this.name = name;
this.englishScore = englishScore;
this.computerScore = computerScore;
}
public int getStudentID() {
return studentID;
}
public void setStudentID(Integer studentID) {
this.studentID = studentID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getEnglishScore() {
return englishScore;
}
public void setEnglishScore(int englishScore) {
this.englishScore = englishScore;
}
public int getComputerScore() {
return computerScore;
}
public void setComputerScore(int computerScore) {
this.computerScore = computerScore;
}
public int getTotalScore() {
return totalScore;
}
/**totalScore 沒有set 方法 */
@Override
public String toString() {
return "Student [studentID=" + studentID + ", name=" + name
+ ", englishScore=" + englishScore + ", computerScore="
+ computerScore + ", totalScore=" + totalScore + "]";
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (studentID != other.studentID)
return false;
return true;
}
/** @return 返回1 表示 大于,返回 0 表示等于, 返回-1表示小于 */
public int compare(Student other){
if(totalScore other.totalScore)
return -1; //
if(totalScore == other.totalScore)
return 0;
return 1;
}
private void sum(){
totalScore = englishScore+computerScore;
}
/**計(jì)算評(píng)測(cè)成績(jī) */
public double testScore(){
return (englishScore+computerScore)/2;
}
}
/***** StudentXW.java******/
public class StudentXW extends Student {
private String response;///責(zé)任
public StudentXW(int studentID, String name, String response) {
super(studentID, name);
this.response = response;
}
public StudentXW(int studentID, String name, int englishScore,
int computerScore, String response) {
super(studentID, name, englishScore, computerScore);
this.response = response;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
@Override
public double testScore(){
return (englishScore+computerScore)/2+3;
}
}
/*****StudentBZ.java****/
public class StudentBZ extends Student {
private String response;///責(zé)任
public StudentBZ(int studentID, String name, String response) {
super(studentID, name);
this.response = response;
}
public StudentBZ(int studentID, String name, int englishScore,
int computerScore, String response) {
super(studentID, name, englishScore, computerScore);
this.response = response;
}
public String getResponse() {
return response;
}
public void setResponse(String response) {
this.response = response;
}
@Override
public double testScore(){
return (englishScore+computerScore)/2+5;
}
}
/*****測(cè)試類 TestStudent.java****/
/** Student ,StudentXW, 及StudentBZ測(cè)試類 */
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student(1,"one");
s1.setEnglishScore(80);
s1.setComputerScore(80);
StudentXW sx1 = new StudentXW(2,"xone","學(xué)習(xí)委員");
sx1.setEnglishScore(90);
sx1.setComputerScore(90);
StudentBZ sb1 = new StudentBZ(3,"bone","班長(zhǎng)");
sb1.setEnglishScore(70);
sb1.setComputerScore(70);
System.out.println("學(xué)生 One 的評(píng)測(cè)成績(jī)?yōu)?"+s1.testScore());
System.out.println("學(xué)生 xone,學(xué)習(xí)委員的評(píng)測(cè)成績(jī)?yōu)?"+sx1.testScore());
System.out.println("學(xué)生 bone,班長(zhǎng)的評(píng)測(cè)成績(jī)?yōu)?"+sb1.testScore());
Student [] studentArray = new Student[5];
studentArray[0] = new Student(101,"studentOne",60,60);
studentArray[1] = new Student(102,"studentTwo",65,65);
studentArray[2] = new Student(103,"studentThree",70,70);
studentArray[3] = new StudentXW(104,"studentXW",75,75,"學(xué)習(xí)委員");
studentArray[4] = new StudentBZ(104,"studentXW",80,80,"學(xué)習(xí)委員");
for(Student student:studentArray){
System.out.println("名字為:"+student.getName()+"的成績(jī)?yōu)?"+ student.testScore());
}
}
}
做到這些規(guī)則的目的很簡(jiǎn)單,就是寫出“優(yōu)美”的Java代碼來。
1、Java注釋盡可能全面
對(duì)于方法的注釋應(yīng)該包含詳細(xì)的入?yún)⒑徒Y(jié)果說明,有異常拋出的情況也要詳細(xì)敘述:類的注釋應(yīng)該包含類的功能說明、作者和修改者。
2、多次使用的相同變量最好歸納成常量 多處使用的相同值的變量應(yīng)該盡量歸納為一個(gè)常量,方便日后的維護(hù)。
3、盡量少的在循環(huán)中執(zhí)行方法調(diào)用 盡量在循環(huán)中少做一些可避免的方法調(diào)用,這樣可以節(jié)省方法棧的創(chuàng)建。例如:
for(int i=0;ilist.size();i++){
System.out.println(i);}可以修改為:
for(int i=0,size=list.size();isize;i++){
System.out.println(i);}4、常量的定義可以放到接口中 在Java培訓(xùn)中,接口里只允許存在常量,因此把常量放到接口中聲明就可以省去public static final這幾個(gè)關(guān)鍵詞。
5、ArrayList和LinkedList的選擇 這個(gè)問題比較常見。通常程序員最好能夠?qū)ist的使用場(chǎng)景做出評(píng)估,然后根據(jù)特性作出選擇。ArrayList底層是使用數(shù)組實(shí)現(xiàn)的,因此隨機(jī)讀取數(shù)據(jù) 會(huì)比LinkedList快很多,而LinkedList是使用鏈表實(shí)現(xiàn)的,新增和刪除數(shù)據(jù)的速度比ArrayList快不少。
6、String,StringBuffer和StringBuilder 這個(gè)問題也比較常見。在進(jìn)行字符串拼接處理的時(shí)候,String通常會(huì)產(chǎn)生多個(gè)對(duì)象,而且將多個(gè)值緩存到常量池中。例如:
String a=“a”;
String b=“b”;a=a+b;這種情況下jvm會(huì)產(chǎn)生“a”,“b”,“ab”三個(gè)對(duì)象。而且字符串拼接的性能也很低。因此通常需要做字符串處理的時(shí)候盡量采用StringBuffer和StringBuilder來。
7、包裝類和基本類型的選擇 在代碼中,如果可以使用基本數(shù)據(jù)類型來做局部變量類型的話盡量使用基本數(shù)據(jù)類型,因?yàn)榛绢愋偷淖兞渴谴娣旁跅V械?,包裝類的變量是在堆中,棧的操作速度比堆快很多。
8、盡早的將不再使用的變量引用賦給null 這樣做可以幫助jvm更快的進(jìn)行內(nèi)存回收。當(dāng)然很多人其實(shí)對(duì)這種做法并不感冒。
分享標(biāo)題:編寫java代碼聲明,Java代碼編寫
網(wǎng)址分享:http://jinyejixie.com/article28/hsopcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站改版、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)