本文目錄一覽:
- 1、一道Java編程題,拜託了各位大神
- 2、java學習筆記林信良操作題答案
- 3、java編程題目:編寫一個程序,輸入一個三位正整數,輸出個、十、百位數字的立方和。新手,請詳細一點
- 4、JAVA編程題目,共四題,做其中一題就夠了,
- 5、java編程題 本人新手,求詳解。
- 6、java編程題 希望大家能夠幫助我一下,謝謝?
一道Java編程題,拜託了各位大神
1.定義一個Student類,包括學號,姓名,成績三個字段,生成get,set和toString方法,實現Comparable接口,重寫toCompare方法,方法里就是本題的邏輯,先按成績比較,再按學好比較,使用TreeSet不實現這個接口會報錯。
package Collection;
public class Student implements ComparableStudent {
private long sno;
private String name;
private int score;
public long getSno() {
return sno;
}
public void setSno(long sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
if (this.score o.score) {
return 1;
} else if (this.score o.score) {
return -1;
} else {
if(this.snoo.sno) {
return 1;
}else {
return -1;
}
}
}
@Override
public String toString() {
return “Student [sno=” + sno + “, name=” + name + “, score=” + score + “]”;
}
}
2.然後寫測試類,生成十個學生,然後插入treeset,直接遍歷輸出就是排序好的結果。
package Collection;
import java.util.Random;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args) {
TreeSetStudent ts=new TreeSetStudent();
for(int i=0;i10;i++) {
Student stu=new Student();
stu.setName(“student”+i);
stu.setSno(170201+i);
stu.setScore(90+new Random().nextInt(10));
ts.add(stu);
}
for(Student stu:ts) {
System.out.println(stu);
}
}
}
最後貼一個運行結果
java學習筆記林信良操作題答案
jstat(JVM Statistics Monitoring Tool)是用於監控虛擬機各種運行狀態信息的命令行工具。他可以顯示本地或遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據,在沒有GUI圖形的服務器上,它是運行期定位虛擬機性能問題的首選工具。
jstat位於java的bin目錄下,主要利用JVM內建的指令對Java應用程序的資源和性能進行實時的命令行的監控,包括了對Heap size和垃圾回收狀況的監控。可見,Jstat是輕量級的、專門針對JVM的工具,非常適用。
jstat 命令格式
jstat -option [-t] [-hlines] vmid [interval [count]]
參數解釋:
Option — 選項,我們一般使用 -gcutil 查看gc情況
vmid — VM的進程號,即當前運行的java進程號
interval– 間隔時間,單位為秒或者毫秒
count — 打印次數,如果缺省則打印無數次
參數interval和count代表查詢間隔和次數,如果省略這兩個參數,說明只查詢一次。假設需要每250毫秒查詢一次進程5828垃圾收集狀況,一共查詢5次,那命令行如下:
jstat -gc 5828 250 5
對於命令格式中的VMID與LVMID需要特別說明下:如果是本地虛擬機進程,VMID(Virtual Machine IDentifier,虛機標識符)和LVMID(Local Virtual Machine IDentifier,虛機標識符)是一致的,如果是遠程虛擬機進程,那VMID的格式應當是:[protocol:][//] lvmid [@hostname[:port]/servername]
option
選項option代表這用戶希望查詢的虛擬機信息,主要分為3類:類裝載、垃圾收集和運行期編譯狀況,具體選項及作用如下:
–class 監視類裝載、卸載數量、總空間及類裝載所耗費的時間
–gc 監視Java堆狀況,包括Eden區、2個Survivor區、老年代、永久代等的容量
–gccapacity 監視內容與-gc基本相同,但輸出主要關注Java堆各個區域使用到的最大和最小空間
–gcutil 監視內容與-gc基本相同,但輸出主要關注已使用空間佔總空間的百分比
–gccause 與-gcutil功能一樣,但是會額外輸出導致上一次GC產生的原因
–gcnew 監視新生代GC的狀況
–gcnewcapacity 監視內容與-gcnew基本相同,輸出主要關注使用到的最大和最小空間
–gcold 監視老年代GC的狀況
–gcoldcapacity 監視內容與——gcold基本相同,輸出主要關注使用到的最大和最小空間
–gcpermcapacity 輸出永久代使用到的最大和最小空間
–compiler 輸出JIT編譯器編譯過的方法、耗時等信息
–printcompilation 輸出已經被JIT編譯的方法
常見術語
1、jstat –classpid : 顯示加載class的數量,及所佔空間等信息。
Loaded 裝載的類的數量
Bytes 裝載類所佔用的字節數
Unloaded 卸載類的數量
Bytes 卸載類的字節數
Time 裝載和卸載類所花費的時間
2、jstat -compiler pid顯示VM實時編譯的數量等信息。
Compiled 編譯任務執行數量
Failed 編譯任務執行失敗數量
Invalid 編譯任務執行失效數量
Time 編譯任務消耗時間
FailedType 最後一個編譯失敗任務的類型
FailedMethod 最後一個編譯失敗任務所在的類及方法
3、jstat -gc pid: 可以顯示gc的信息,查看gc的次數,及時間。
S0C 年輕代中第一個survivor(倖存區)的容量 (字節)
S1C 年輕代中第二個survivor(倖存區)的容量 (字節)
S0U 年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U 年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
EC 年輕代中Eden(伊甸園)的容量 (字節)
EU 年輕代中Eden(伊甸園)目前已使用空間 (字節)
OC Old代的容量 (字節)
OU Old代目前已使用空間 (字節)
PC Perm(持久代)的容量 (字節)
PU Perm(持久代)目前已使用空間 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
YGCT 從應用程序啟動到採樣時年輕代中gc所用時間(s)
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
FGCT 從應用程序啟動到採樣時old代(全gc)gc所用時間(s)
GCT 從應用程序啟動到採樣時gc用的總時間(s)
4、jstat -gccapacity pid:可以顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小
NGCMN 年輕代(young)中初始化(最小)的大小(字節)
NGCMX 年輕代(young)的最大容量 (字節)
NGC 年輕代(young)中當前的容量 (字節)
S0C 年輕代中第一個survivor(倖存區)的容量 (字節)
S1C 年輕代中第二個survivor(倖存區)的容量 (字節)
EC 年輕代中Eden(伊甸園)的容量 (字節)
OGCMN old代中初始化(最小)的大小 (字節)
OGCMX old代的最大容量(字節)
OGC old代當前新生成的容量 (字節)
OC Old代的容量 (字節)
PGCMN perm代中初始化(最小)的大小 (字節)
PGCMX perm代的最大容量 (字節)
PGC perm代當前新生成的容量 (字節)
PC Perm(持久代)的容量 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
5、jstat -gcutil pid:統計gc信息
S0 年輕代中第一個survivor(倖存區)已使用的占當前容量百分比
S1 年輕代中第二個survivor(倖存區)已使用的占當前容量百分比
E 年輕代中Eden(伊甸園)已使用的占當前容量百分比
O old代已使用的占當前容量百分比
P perm代已使用的占當前容量百分比
YGC 從應用程序啟動到採樣時年輕代中gc次數
YGCT 從應用程序啟動到採樣時年輕代中gc所用時間(s)
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
FGCT 從應用程序啟動到採樣時old代(全gc)gc所用時間(s)
GCT 從應用程序啟動到採樣時gc用的總時間(s)
6、jstat -gcnew pid:年輕代對象的信息。
S0C 年輕代中第一個survivor(倖存區)的容量 (字節)
S1C 年輕代中第二個survivor(倖存區)的容量 (字節)
S0U 年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U 年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
TT 持有次數限制
MTT 最大持有次數限制
EC 年輕代中Eden(伊甸園)的容量 (字節)
EU 年輕代中Eden(伊甸園)目前已使用空間 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
YGCT 從應用程序啟動到採樣時年輕代中gc所用時間(s)
7、jstat -gcnewcapacitypid: 年輕代對象的信息及其佔用量。
NGCMN 年輕代(young)中初始化(最小)的大小(字節)
NGCMX 年輕代(young)的最大容量 (字節)
NGC 年輕代(young)中當前的容量 (字節)
S0CMX 年輕代中第一個survivor(倖存區)的最大容量 (字節)
S0C 年輕代中第一個survivor(倖存區)的容量 (字節)
S1CMX 年輕代中第二個survivor(倖存區)的最大容量 (字節)
S1C 年輕代中第二個survivor(倖存區)的容量 (字節)
ECMX 年輕代中Eden(伊甸園)的最大容量 (字節)
EC 年輕代中Eden(伊甸園)的容量 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
8、jstat -gcold pid:old代對象的信息。
PC Perm(持久代)的容量 (字節)
PU Perm(持久代)目前已使用空間 (字節)
OC Old代的容量 (字節)
OU Old代目前已使用空間 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
FGCT 從應用程序啟動到採樣時old代(全gc)gc所用時間(s)
GCT 從應用程序啟動到採樣時gc用的總時間(s)
9、stat -gcoldcapacity pid: old代對象的信息及其佔用量。
OGCMN old代中初始化(最小)的大小 (字節)
OGCMX old代的最大容量(字節)
OGC old代當前新生成的容量 (字節)
OC Old代的容量 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
FGCT 從應用程序啟動到採樣時old代(全gc)gc所用時間(s)
GCT 從應用程序啟動到採樣時gc用的總時間(s)
10、jstat -gcpermcapacitypid: perm對象的信息及其佔用量。
PGCMN perm代中初始化(最小)的大小 (字節)
PGCMX perm代的最大容量 (字節)
PGC perm代當前新生成的容量 (字節)
PC Perm(持久代)的容量 (字節)
YGC 從應用程序啟動到採樣時年輕代中gc次數
FGC 從應用程序啟動到採樣時old代(全gc)gc次數
FGCT 從應用程序啟動到採樣時old代(全gc)gc所用時間(s)
GCT 從應用程序啟動到採樣時gc用的總時間(s)
11、jstat -printcompilation pid:當前VM執行的信息。
Compiled 編譯任務的數目
Size 方法生成的字節碼的大小
Type 編譯類型
Method 類名和方法名用來標識編譯的方法。類名使用/做為一個命名空間分隔符。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設置的
java編程題目:編寫一個程序,輸入一個三位正整數,輸出個、十、百位數字的立方和。新手,請詳細一點
import java.util.*;
public class YUGI{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println(“輸入一個三位數: “);
int abc = sc.nextInt();
sc.close();
int a = abc/100;
int b = abc / 10 % 10;
int c = abc % 10;
int x = Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
System.out.println(“立方和:” +x);
}
}
JAVA編程題目,共四題,做其中一題就夠了,
好了,你測試一下咯!
public interface ShapeArea {//定義ShapeArea接口
public double getArea();//double getArea( ):求一個形狀的面積
public double getPerimeter();// Double getPerimeter( ):求一個形狀的周長。
}
public class MyTriangle implements ShapeArea {
double x,y,z,s;//x,y,z :double型,表示三角形的三條邊
public MyTriangle(double x, double y, double z) {//方法:MyTriangle(double x, double y, double z):構造函數,給三條邊和s賦值;
this.x = x;
this.y = y;
this.z = z;
this.s = (x+y+z)/2;
}
@Override
public double getArea() {
return Math.sqrt(this.s*(this.s-this.x)*(this.s-this.y)*(this.s-this.z));
}
@Override
public double getPerimeter() {
return (x+y+z);
}
@Override
public String toString() {
System.out.print(“此三角形的面積和周長為:”);
return this.getArea()+”、”+this.getPerimeter();
}
}
public class Test {//測試類
public static void main(String[] args) {
MyTriangle myTriangle = new MyTriangle(3, 4, 5);
System.out.println(myTriangle);
}
}
java編程題 本人新手,求詳解。
先看下最終的結果吧,是不是你想要的?
項目結構如下圖所示:
其中,Student是父類,PostGraduate是子類,繼承自父類Student,Main是主類,用於創建對象以及把這些對象的功能調用起來。
—————————Student代碼如下:——————————
/**
* 學生類
* @author 逍遙
*
*/
public class Student {
//學號
private int sId;
//姓名
private String sName;
//數學成績
private double mathScore;
//計算機成績
private double computerScore;
/**
* 獲取學號
* @return
*/
public int getsId() {
return sId;
}
/**
* 設置學號
* @param sId
*/
public void setsId(int sId) {
this.sId = sId;
}
/**
* 獲取姓名
* @return
*/
public String getsName() {
return sName;
}
/**
* 設置姓名
* @param sName
*/
public void setsName(String sName) {
this.sName = sName;
}
/**
* 獲取數學成績
* @return
*/
public double getMathScore() {
return mathScore;
}
/**
* 設置數學成績
* @param mathScore
*/
public void setMathScore(double mathScore) {
this.mathScore = mathScore;
}
/**
* 獲取計算機成績
* @return
*/
public double getComputerScore() {
return computerScore;
}
/**
* 設置計算機成績
* @param computerScore
*/
public void setComputerScore(double computerScore) {
this.computerScore = computerScore;
}
/**
* 輸出成員變量(4個成員變量)的信息。
*/
public void print(){
System.out.println(“學號:”+sId);
System.out.println(“姓名:”+sName);
System.out.println(“計算機成績:”+mathScore);
System.out.println(“數學成績:”+computerScore);
}
}
—————————Student代碼結束——————————
—————————PostGraduate代碼如下:——————————
/**
* 研究生類
* @author 逍遙
*
*/
public class PostGraduate extends Student{
//導師姓名
private String tName;
//研究方向
private String ResearchDirection;
/**
* 獲取導師姓名
* @return
*/
public String gettName() {
return tName;
}
/**
* 設置導師姓名
* @param tName
*/
public void settName(String tName) {
this.tName = tName;
}
/**
* 獲取研究方向
* @return
*/
public String getResearchDirection() {
return ResearchDirection;
}
/**
* 設置研究方向
* @param researchDirection
*/
public void setResearchDirection(String researchDirection) {
ResearchDirection = researchDirection;
}
/**
* 研究生類重寫父類的void print()方法,功能是輸出成員變量(6個成員變量)的信息
*/
@Override
public void print() {
// TODO Auto-generated method stub
super.print();
System.out.println(“導師姓名:”+tName);
System.out.println(“研究方向:”+ResearchDirection);
}
}
—————————PostGraduate代碼結束——————————
—————————Main代碼如下:——————————
import java.util.Scanner;
/**
* 主類
* @author 逍遙
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//用於獲取從鍵盤上輸入的信息
Scanner input=new Scanner(System.in);
//創建一個Student類的對象
Student student=new Student();
//從鍵盤上輸入其屬性信息
System.out.print(“請輸入學生的學號:”);
student.setsId(input.nextInt());
System.out.print(“請輸入學生的姓名:”);
student.setsName(input.next());
System.out.print(“請輸入學生的數學成績:”);
student.setMathScore(input.nextDouble());
System.out.print(“請輸入學生的計算機成績:”);
student.setComputerScore(input.nextDouble());
//並且通過其print方法輸出這些信息;
student.print();
//創建一個PostGraduate類的對象
PostGraduate postGraduate=new PostGraduate();
//從鍵盤上輸入其屬性信息
System.out.print(“請輸入研究生的學號:”);
postGraduate.setsId(input.nextInt());
System.out.print(“請輸入研究生的姓名:”);
postGraduate.setsName(input.next());
System.out.print(“請輸入研究生的數學成績:”);
postGraduate.setMathScore(input.nextDouble());
System.out.print(“請輸入研究生的計算機成績:”);
postGraduate.setComputerScore(input.nextDouble());
System.out.print(“請輸入研究生的導師姓名:”);
postGraduate.settName(input.next());
System.out.print(“請輸入研究生的研究方向:”);
postGraduate.setResearchDirection(input.next());
//並且通過其print方法輸出這些信息。
postGraduate.print();
}
}
—————————Main代碼結束——————————
=================知識點的簡單總結=================
本題考察的知識點是面向對象的三大特性之一:繼承。
Student為父類,包含了學號、姓名、數學成績和計算機成績4個屬性,以及一個print()方法。
PostGraduate 繼承父類的時候,繼承了父類中的所有方法,因為方法我都是用的public,而屬性繼承不了,因為我在父類中用了封裝,所有屬性都用private修飾了,想訪問屬性的話,必須通過get、set方法,這裡,我重寫了父類中的print方法,通過super.print();調用了父類中的print()方法。
最後就是Main類,提供了main方法作為入口函數,用於按要求聲明這些對象以及去調用對象中的方法。
java編程題 希望大家能夠幫助我一下,謝謝?
package book;
/**
* @Author: Cool_Wu
* @Date: 2020-12-07 20:18
*/
public class Book {
private String name;
private String num;
private String author;
private double price;
private String publishing_House;
private String publication_Date;
public Book() {}
public Book(String name, String num, String author, double price, String publishing_House, String publication_Date) {
this.name = name;
this.num = num;
this.author = author;
this.price = price;
this.publishing_House = publishing_House;
this.publication_Date = publication_Date;
}
@Override
public String toString() {
return “圖書信息:\n———————-” +
“\n書名:” + name +
“\n書號:” + num +
“\n作者:” + author +
“\n單價:” + price +
“\n出版社:” + publishing_House +
“\n出版日期:” + publication_Date +
“\n———————-\n”;
}
}
package book;
public class Test {
public static void main(String[] args) {
Book book1 = new Book(“百年孤獨”,”10000″,”加西亞·馬爾克斯”,40.00,”南海出版公司”,”2017年08月”);
System.out.println(book1);
Book book2 = new Book(“時間簡史”,”10086″,”史蒂芬·霍金”,22.50,”湖南科技出版社”,”2014年06月”);
System.out.println(book2);
}
}
運行結果
原創文章,作者:VENAE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331004.html