首页 > 编程知识 正文

java学习笔记之编程题,java基础入门课后编程题

时间:2023-12-28 21:11:00 阅读:329037 作者:PWIJ

本文目录一览:

一道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);

 }

}

运行结果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。