Java经典练习题

Java经典练习题
Java经典练习题

Java基础试题

一、选择题

1.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. .java

B. .class

C. .html

D. .exe

2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。

A. 3

B. 3. 5

C. 4

D. 5

3、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)?

A、public static void main()

B、public static void main(String args[] )

C、public static int main(String [] arg )

D、public void main(String arg[] )4

4.Which of the following is not a valid comment:D

a. /** comment */

b. /* comment */

c. /* comment

d. // comment

5. Java中char类型的数据长度为 :C

(A)8位(B)16位(C)32位(D)64位

6.下面哪个表达式是错误的:B

(A)int i = 100;

(B)float f = 100.0;

(C)Object o = “Hello world”;

(D)char c = ‘\u1234’;

7.下面哪个语句是正确的:C

(A)byte s = 256;

(B)String s = ‘Hello world’;

(C)int x = 012;

(D)char c = “a”;

8.下列叙述中,正确的是:A

A)声明变量时必须指定一个类型

B)Java认为变量number与Number相同

C)Java中唯一的注释方式是"//"

D)源文件中public类可以有0或多个

9.下列属于合法的Java标识符是:D

A)"ABC" B)&5678 C)+rriwo D)saler

10.下面哪个标识符是不合法的:D

(A)s1 (B)$1 (C)_1 (D)1s

11.在switch(expression)语句中,expression的数据类型不能是:A

A)double B)char C)byte D)short

12.已知:int[] a = new int[100];在下列给出的数组元素中,非法的是:D

A)a[0] B)a[1] C)a[99] D)a[100]

13.下列的哪个赋值语句是不正确的?: A

A.float f = 11.1; B.double d = 5.3E12;

C.float d = 3.14f ; D.double f=11.1E10f;

14.下列的哪个赋值语句是正确的?D

A.char a=12; B.int a=12.0;

C.int a=12.0f; D.int a=(int)12.0;

15.下面关于数组的定义错误的是(B)

A) int a[]={1,2,3,4,5,6}; B) int a[6]={1,2,3,4,5,6}

C) int[][] a; D)int [] a=new int[6];

(以下为多项选择)

16.下面哪些代码可以正确编译( AC)

(A)double d = 1.0;

int i = 1;

if(d == i) {

System.out.println(“Hello world”);

}

(B)int i = 1;

int j = 2;

if(i = 1 && j = 2) {

System.out.println(“Hello world”);

}

(C)boolean b1 = true, b2 = false;

if(b1 == b2) {

System.out.println(“Hello world”);

(D)int i = 0;

if(i) {

System.out.println(“Hello world”);

}

17.下面的哪些声明是合法的?AC

(A)int a[]; (B)int a[5]; (C)int[] a; (D)int a[] = [5];

18.下面哪些类型是Java的基本数据类型ABD

(A)int (B)boolean (C)String(D)double

二、填空题

1..JVM是(Java虚拟机),JDK是(Java开发工具包),appletviewer是(小应用程序阅览器) 。

2. Java源程序经编译生成的字节码文件的扩展名为(class)

3. Java语言的主要贡献者是(James Gosling(詹姆斯·戈士林))。

4.在JDK中,Java语言的编译命令是_____Javac.exe_______,Java语言的执行命令是java .exe_______。

5.写出以下表达式的结果:

1) 5 % 6 / 3 =(1)

2) true && false =(false)

3) 5 >> 3 =(0)

4) 12 ^ -4 =(-16 )

6.设有数组定义:int a[]= { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 }; 则执行下列几个语句后的输出结果是33 66 99。

for ( int i = 0 ; i < a.length ; i ++ )

if(a[i]%3==0 )System.out.print(a[i]+" ");

三、简答题

1.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整数表达式。因此传递给switch 和case 语句的参数应该是int、short、char 或者byte。long,String 都不能用于swtich中的表达式(JDK 7以后可以作用于String)。

2.一个".java"源文件中是否可以包括多个类?有什么限制?

可以。必须只有一个类名与文件名相同

3.简述Java语言实现平台无关(跨平台)性的原理。

J Java程序经过编译,会生成字节码文件,而字节码可以在任何安装了Java虚拟机的平台上运行,Java虚拟机类似一个模拟执行环境,在不同的操作系统上拥有不同的Java虚拟机实现,但是这些Java虚拟机遵循统一的规范来解释class文件,并将class文件中的指令转换为本地操作系统对应的指令,这样就实现了相同的class文件可以通过Java虚拟机转换为对应操作系统上的对应指令,实现class文件,即Java程序的跨平台性。

4.说明Java语言中三种注释的语法格式,以及用途。

Java语言中注释的语法有三种:单行注释、多行注释和文档注释。

1)单行注释,单行注释指只能书写一行的注释。用于对于代码进行简单的说明,单行注释的语法格式为://注释内容

2)多行注释:多行注释指可以书写任意多行的注释。多行注释一般用于说明比较复杂的内容,例如程序逻辑或算法实现原理等。多行注释的语法格式为:

/* 注释内容*/

3)文档注释:文档注释指可以被提取出来形成程序文档的注释格式,这是Java语言有特色的注释格式。一般对于程序程序的结构进行说明,例如类、属性、方法和构造方法进行说明,文档注释的语法格式为:

/** 注释内容*/

5.请把以下英文翻译成中文:

When you compile a program written in the Java programming language, the compiler converts the human-readable source file into

platform-independent code that a Java Virtual Machine can understand. This platform-independent code is called Bytecode.

当你在编译Java编程语言编写的程序,编译器转换成平台无关的代码,Java虚拟机能够理解人类可读的源文件。这个平台无关的代码被称为字节码。

}

第二章

注意问题:

main函数是Java应用程序执行的入口。

(int)23.7结果为23

(int)-45.89f结果为-45

+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了

1,三元运算符

class TernaryOp

{

public static void main(String args[])

{

int salary,daysPresent = 30;

salary = daysPresent == 20 ? 2000 : 3000;

System.out.println("您本月薪资为 $"+salary);

}

}

2,编写一个程序,这个程序从键盘上输入2个数,然后求这2个数的和,程序结束。

提示:调用System.in.read();可以读取到一个从键盘上输入字符对应的整数。通过这个程序,你一定能体会到在什么

import java.io.*;

public class Ch1 {

public static void main(String[] args) throws IOException{ BufferedReader ke

=new BufferedReader(new InputStreamReader(System.in));

String x;

int p,q,m;

System.out.print("请输入第一个数");

x=ke.readLine();

p=Integer.parseInt(x);

System.out.print("请输入第二个数");

x=ke.readLine();

q=Integer.parseInt(x);

m=p+q;

System.out.println("两个数的和为:"+m);

}

}

3,数组

public class Lo {

public static void main(String[] args) {

int[] aa={32,55,69};

for(int i=0;i

System.out.print(aa[i]+”“);

}

System.out.println( );}

}

4,输入一个年份,判断它是不是闰年。

闰年: 能被4整除但不能被100整除,或者能被400整除。

public class ex3_1

{

public static void main(String[ ] args) throws IOException{ int year;

boolean IsLeapYear;

System.out.println("Enter the year:");

BufferedReader in =new BufferedReader(

new InputStreamReader(System.in));

year=(new Integer(in.readLine())).intValue(); IsLeapYear=((year%4==0 && year%100 != 0)||(year%400 == 0));

if (IsLeapYear)

{

System.out.print(year);

System.out.println( "is a leap year");

}

else

{

System.out.print(year);

System.out.println( "is not a leap year");

}

}

}

5,输入两个整数比较大小

import java.io.*;

public class ex3_2

{

public static void main(String[ ] args)throws IOException

{

int x,y;

BufferedReader in = new BufferedReader(

new InputStreamReader(System.in));

System.out.println("Enter x and y:");

x=(new Integer(in.readLine())).intValue();

y=(new Integer(in.readLine())).intValue();

if (x!=y)

if (x>y) System.out.println("x>y");

else System.out.println("x

else System.out.println("x=y");

}

}

6,已知一个学生的分数,给出其分数等级。90-100分为A级;80-89分为B 级;70-79分为C级;60-69分为D级;0-59分为E级

public class IfElseDemo {

public static void main(String[] args) {

int testscore = 76;

char grade;

if (testscore >= 90) { grade = 'A'; }

else if (testscore >= 80) { grade = 'B'; }

else if (testscore >= 70) { grade = 'C'; }

else if (testscore >= 60) { grade = 'D'; }

else { grade = 'F'; }

System.out.println("Grade = " + grade);

}

}

7,输入0~6之间的某一个整数,然后把它转换成星期输出。(0对应星期日)import java.io.*;

public class ex3_3

{

public static void main(String[ ] args)throws IOException

{

int day;

BufferedReader in =new BufferedReader(

new InputStreamReader(System.in));

day=(new Integer(in.readLine())).intValue();

switch (day)

{

case 0: System.out.println("Sunday"); break;

case 1: System.out.println("Monday"); break;

case 2: System.out.println("Tuesday"); break;

case 3: System.out.println("Wednesday"); break;

case 4: System.out.println("Thursday"); break;

case 5: System.out.println("Friday"); break;

case 6: System.out.println("Saturday"); break;

default:

System.out.println("Day out of range Sunday ..Saturday" );

break;

}

}

}

8,打印九九乘数表

public class MultiTable {

public static void main(String[] args){

for (int i=1; i<=9;i++) {

for (int j=1; j<=i;j++)

System.out.print(" "+i+"*"+j+"="+i*j);

System.out.println();

}

}

}

9,输入一个整数,输出它所有的因数

import java.io.*;

public class ex3_7

{

public static void main(String[ ] args) throws IOException{ int n,k;

BufferedReader in =new BufferedReader(

new InputStreamReader(System.in));

System.out.println("Enter a positive integer: ");

n=(new Integer(in.readLine())).intValue();

System.out.print("Number "+n+" Factors ");

for (k=1; k <= n; k++)

if (n % k == 0) System.out.print(k + " ");

System.out.println();

}

}

10,计算数列1,2,…,10 的和。

public class ex3_4

{

public static void main(String[ ] args)

{

int i=1, sum=0;

while(i<=10) {

sum+=i;

i++;

}

System.out.println("sum="+sum);

}

}

11,计算存款收益:假设银行中存款10000元,按11.25%的利率,一年后连本带利将变为11125元。你若将此款继续存入银行,试问多长时间就会连本带利翻一番

import java.text.*;

public class Examp3_4 {

public static void main(String[] args){

double original,money,interest;

int years = 0;

original = money= 10000;

interest = 11.25 / 100;

System.out.println("year money");

while (money < 2 * original) {

years = years + 1;

money = money + (interest * money);

System.out.println(" " + years + " " +

new

DecimalFormat("0.00").format(money));

}

System.out.println();

System.out.println(" 第 " + years + " 年存款额达到 " +

new DecimalFormat("0.00").format(money) + "元。");

}

}

12编写一个程序用选择法对数组a[]={20,10,50,40,30,70,60,80,90,100}进行由大到小的排序。

import java.io.*;

public class SelectSort

{

public static void main(String args[])

{

int a[]={20,10,50,40,30,70,60,80,90,100};

int temp;

for (int i=0; i

for (int j=i+1; j

{

if (a[i]

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

for (int k=0;k

{

System.out.println("a["+k+"]:"+a[k]);

}

}

}

第3,4章

一、

1.利用接口继承完成对生物、动物、人三个接口的定义。其中生物接口定义呼吸抽象方法;

2.动物接口除具备生物接口特征之外,还定义了吃饭和睡觉两个抽象方法;

3.人接口除具备动物接口特征外,还定义了思维和学习两个抽象方法。

4.定义一个学生类实现上述人接口。(25分)

1 interface Biology

{

void breath();

}

interface Animal extends Biology

{

void eat();

void sleep();

}

interface Human extends Animal

{

void think();

void study();

}

class Student implements Human

{

void breath()

{

System.out.println(“breathing”);

}

void eat()

{

System.out.println(“eating”);

}

void sleep()

{

System.out.println(“sleeping”);

}

void think()

{

System.out.println(“thinking”);

}

void study()

{

System.out.println(“study”);

}

}

二、

1、定义一个接口CanFly,描述会飞的方法public void fly();

2、分别定义类飞机和鸟,实现CanFly接口。

3、定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly()方法,让会飞的事物飞起来。

4、然后在main方法中创建飞机对象和鸟对象,并在main方法中调用makeFly()方法,让飞机和鸟起飞。

interface CanFly

{

public void fly();

}

class AirPlane implements CanFly

{

public void fly()

{

System.out.println(“airplane is flying”);

}

}

class Bird implements CanFly

{

public void fly()

{

System.out.println(“Bird is flying”);

}

}

class Test

{

static makeFly(CanFly obj)

{

obj.fly();

}

public static void main(String[] args)

{

AirPlane ap = new AirPlane();

Bird b = new Bird();

makeFly(ap);

makFly(b);

}

}

三、

实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一个接口Add用于涨工资,普通员工一次能涨10%,经理能涨20%。

具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),定义该类的构造方法;

(2)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int 型),定义该类的构造方法;

(3)Manager类中的属性有:级别level(String类型)定义该类的构造方法;

(4)编写一个测试类,产生一个员工和一个经理给该员工和经理涨工资,并输出其具有的信息。

实现代码:

class Person{ //Person类

private String name; //姓名

private String address; //地址

public Person(String n,String a){ //定义该类的构造方法this.setName(n);

this.setAddress(a);

}

public void setName(String n){

https://www.360docs.net/doc/367729389.html, = n;

}

public void setAddress(String a){

this.address = a;

}

public String getName(){

return https://www.360docs.net/doc/367729389.html,;

}

public String getAddress(){

return this.address;

}

}

class Empolyee extends Person{ //Employee是Person的子类private int employeeNo; //工号

private double pay; //工资

private int age; //工龄

public Empolyee(String name,String address,int empolyeeNO, double pay,int age){ //定义该类的构造方法super(name,address); //引用父类的构造方法

this.setEmployeeNo(empolyeeNO);

this.setPay(pay);

this.setAge(age);

}

public void setEmployeeNo(int e){

this.employeeNo = e;

}

public void setPay(double p){

this.pay = p;

}

public void setAge(int a){

this.age = a;

}

public int getEmployeeNo(){

return this.employeeNo;

}

public double getPay(){

return this.pay;

}

public int getAge(){

return this.age;

}

}

class Manager extends Empolyee{ //Manager是Employee的子类

private int level; //级别

public Manager(String name,String address,int empolyeeNO,double pay,

int age,int level){ //定义该类的构造方法

super(name,address,empolyeeNO,pay,age); //引用父类的构造方法

this.setLevel(level);

}

public void setLevel(int l){

this.level = l;

}

public int getLevel(){

return this.level;

}

public void printInfo(){ //输出员工信息

System.out.println("姓名:"+this.getName()+",工号:"+this.getEmployeeNo()

+",工龄:"+this.getAge()+",级别:"+this.getLevel()

+",地址:"+this.getAddress());

System.out.println("原工资:"+this.getPay());

System.out.println("涨工资后的工资:"+new Add().addPay(this.getLevel(),

this.getPay()));

}

}

class Add{ //设计一个Add类用于涨工资

public double addPay(int level,double pay){

if(level==0){ //0表示普通员工

pay = (1+0.1)*pay;

}

else if(level==1){ //1则表示经理

pay = (1+0.2)*pay;

}

else{ //操作无效

System.out.println("级别只能为0或1,0表示普通员工,1则表示经理,操作无效!");

}

return pay;

}

}

public class ExtendsDemo {

public static void main(String[] args) {

Manager m1 = new Manager("张三","南京路",0001,2000,10,0);

Manager m2 = new Manager("李四","长江路",0002,3000,15,1);

m1.printInfo();

System.out.println("************************************************");

m2.printInfo();

}

}

四、

1、用面向对象的思想定义一个接口Area,其中包含一个计算面积的方法CalsulateArea()

2、然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法CalsulateArea()(

3、分别写出两个类中的构造方法并计算圆和矩形的面积

4、在Circle类中增加方法改变圆的半径,在Circle类中增加fitsInside方法判断一个圆是否在一个矩形内,

5、最后写出测试以上类和方法的程序。

五、

编写一个完整的Java程序——复数类Complex,使两个复数,如 1+2i 和3+4i 相加产生一个新的复数 4+6i 。

复数类Complex必须满足如下要求:

(1)、复数类Complex 的属性有:

realPart : int型,代表复数的实数部分

imaginPart : int型,代表复数的虚数部分

定义该类的构造方法

(2)、复数类Complex 的方法有:

构造方法一,将复数的实部和虚部都置0

构造方法二,形参 r 为实部的初值,i为虚部的初值。

(3)complexAdd方法: 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。

(4)toString( ) 方法: 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a和b分别为实部和虚部的数据。

答案:public class Complex{

private int realPart;

private int imagePart;

public Complex(int r,int i){

this.realPart = r;

this.imagePart = i;

}

public Complex(){

this(0,0);

}

public Complex addComplex(Complex c){

this.realPart+=c.realPart;

this.imagePart+=c.imagePart;

return this;

}

public String toString(){

return this.realPart+"+"+this.imagePart+"i";

}

public static void main(String args[]){

Complex c1 = new Complex(2,6);

Complex c2 = new Complex(4,2);

System.out.println("c1 = "+c1);

System.out.println("c2 = "+c2);

System.out.println("c1 + c2 = "+c1.addComplex(c2));

}

}

第5章

第6章

1,用\继承Thread类的方法在新线程中完成计算某个整数的阶乘public class Ex8_1 {

public static void main( String [] args ) {

System.out.println("main thread starts");

FactorialThread thread=new FactorialThread(10);

thread.start();

System.out.println("main thread ends " );

}

}

class FactorialThread extends Thread {

private int num;

public FactorialThread( int num ) {

this.num=num;

}

public void run() {

int i=num;

int result=1;

System.out.println("new thread started" );

while(i>0) {

result=result*i;

i=i-1;

}

System.out.println("The factorial of "+num+" is "+result);

System.out.println("new thread ends");

}

}

运行结果

main thread starts

main thread ends

new thread started

The factorial of 10 is 3628800

new thread ends

2,使用Runnable接口实现上述程序功能

public class Ex8_1{

public static void main( String [] args ) {

System.out.println("main thread starts");

FactorialThread t=new FactorialThread(10);

new Thread(t).start();

System.out.println("new thread started,main thread ends " );

}

}

class FactorialThread implements Runnable {

private int num;

public FactorialThread( int num ) {

this.num=num;

}

public void run() {

int i=num;

int result=1;

while(i>0) {

result=result*i;

i=i-1;

}

System.out.println("The factorial of "+num+" is "+result);

System.out.println("new thread ends");

}

}

3,用两个线程模拟存票、售票过程

假定开始售票处并没有票,一个线程往里存票,另外一个线程则往出卖票

我们新建一个票类对象,让存票和售票线程都访问它。本例采用两个线程共享同一个数据对象来实现对同一份数据的操作

public class Ex8_7 {

public static void main(String[] args) {

Tickets t=new Tickets(10);

new Consumer(t).start();

new Producer(t).start();

}

}

class Tickets {

int number=0; //票号

int size; //总票数

boolean available=false; //表示目前是否有票可售

public Tickets(int size) //构造函数,传入总票数参数

{

this.size=size;

}

}

class Producer extends Thread

{

Tickets t=null;

public Producer(Tickets t)

{ this.t=t; }

public void run()

{

while( t.number < t.size)

{

System.out.println("Producer puts ticket "

+(++t.number));

t.available=true;

}

}

}

class Consumer extends Thread //售票线程

{

Tickets t=null;

int i=0;

public Consumer(Tickets t)

{ this.t=t; }

public void run()

{

while(i

{

if(t.available==true && i<=t.number)

System.out.println("Consumer buys ticket "+(++i));

if(i==t.number)

t.available=false;

}

}

}

4,线程不断显示递增整数,按下回车键则停止执行

import java.io.*;

public class Ex8_12{

public static void main(String[] args) throws IOException{

TestThread t=new TestThread();

t.start();

new BufferedReader(new InputStreamReader(System.in))

.readLine(); //等待键盘输入t.stopme(); //调用stopme方法结束t线程

}

}

class TestThread extends Thread{

private boolean flag=true;

public void stopme() { //在此方法中控制循环条件

flag=false;

}

public void run() {

int i=0;

while(flag) {

System.out.println(i++); //如果flag为真则一直显示递增整数}

}

}

java源代码经典入门案例—光环java编程培训机构

java源代码经典入门案例 class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } class Demo { public static void main(String[] args) { System.out.println("hello E盘"); } } /* 需求:练习一个hello world程序。 思路: 1,定义一个类,因为java程序都定义类中,java程序都是以类的形式存在的,类的形式其实就是一个字节码文件最终体现。 2,定义一个主函数。为了让该类可以独立运行。 3,因为演示hello world,在控制台上看到该字样,所以需要使用输出语句完成。 步骤: 1,用class关键字来完成类的定义,并起一个阅读性强的类名。 2,主函数:public static void main(String[] args)这时固定格式的。jvm认识。 3,使用输出语句:System.out.println("hello world"); 代码仅仅是思想的一种体现形式。 */ class Demo

{ //定义一个主函数,为了保证程序的独立运行。 public static void main(String[] args) { System.out.println("hello world");//这是输出语句,用于将括号中的数据打印到控制台上,ln可以在数据的结尾处换行。 } } class OperateDemo { public static void main(String[] args) { //算术运算符。+ - * / %(取余,模运算) +(连接符) // ++(自增:就在原有数据基础上+1,在赋给原有数据) -- //int x = 6370; //x = x / 1000 * 1000; //System.out.println(x); // System.out.println(5%2); // System.out.println(3+"2"); //System.out.println("5+5="+(5+5));//"5+5=5"+5 "5+5=55" //int a = 4,b = 5; //System.out.println("a="+a+",b="+b);//a=4,b=5; int a = 3,b; //a++;//a = a+1; // b = a++; b = (a++)+(++a)+(a++)+a; // 3 5 5 6 System.out.println("a="+a+",b="+b); int i = 3; i = i++;

Java经典试题

1. public class ReturnIt{ returnType methodA(byte x, double y){ //line 2 return (short)x/y*2; } } what is valid returnType for methodA in line 2? 答案:返回double类型,因为(short)x将byte类型强制转换为short类型,与double类型运算,将会提升为double类型. 2. 1) class Super{ 2) public float getNum(){return 3.0f;} 3) } 4) 5) public class Sub extends Super{ 6) 7) } which method, placed at line 6, will cause a compiler error? A. public float getNum(){return 4.0f;} B. public void getNum(){} C. public void getNum(double d){} D. public double getNum(float d){return 4.0d;} Answer:B A属于方法的重写(重写只存在于继承关系中),因为修饰符和参数列表都一样.B出现编译错误,如下: Sub.java:6: Sub 中的getNum() 无法覆盖Super 中的getNum();正在尝试使用不 兼容的返回类型 找到:void 需要:float public void getNum(){} ^ 1 错误 B既不是重写也不是重载,重写需要一样的返回值类型和参数列表,访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private); 重载:必须具有不同的参数列表; 可以有不同的返回类型,只要参数列表不同就可以了; 可以有不同的访问修饰符; 把其看做是重载,那么在java中是不能以返回值来区分重载方法的,所以b不对. 3. public class IfTest{ public static void main(String args[]){ int x=3;

javaSE选择题50道判断题30道

一、不定项选择题:(50题) 1.下列关于JDK、JRE和JVM的描述,正确的是?D A.JRE中包含了JDK,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JDK中包含了JRE,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 2.以下关于JVM的叙述,正确的是?AC A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件 D.JVM支持Java程序运行,它能够直接运行Java源代码文件 3.JVM在执行一个Java类时,大致采用以下过程?A A.装载类一>校验类一>执行类中的代码 B.装载类一>执行类中的代码一>校验类 C.校验类一>装载类一>执行类中的代码 D.执行类中的代码一>装载类一>校验类 4.以下关于Java文件名的叙述,正确的有?AD A.Java源文件的扩展名应为.java B.Java字节码文件的扩展名应为.java C.一个Java源文件中只能包含一个Java类 D.Java源文件的文件名应与文件中被public修饰的类的类名一致 5.下列哪项不是int类型的字面量?C A.20 B.077 C.\u03A6 D.0xABBC 6.下列哪项不属于Java语言的基本数据类型?B A.int B.String C.double D.boolean 7.下列哪项不是有效的标识符?AC A.2test B.userName C.$car.text D._password

8.现有如下五个声明: Line1: int _hi=6; Line2:int $dollars=8; Line3: int %opercent=9; Line4: int big=Integer.getlnteger("7"); Line5: int a_really_really_really_long_variable_name=5 ; 哪行无法通过编译?B A.Line1 B.Line3 C. Line4 D. Line5 9.表达式:double d = 1-2/5*5+2*5;d的值是哪项?D C.9 D.11 10.现有代码片段: String s="123"; String s1=s+456; 请问s1的结果是哪项?A A.123456 B.579 C.编译错误 D.运行时抛出异常 11.现有: 1.class Test4 { 2. public static void main (String [] args) { 3.boolean x=false; 4.boolean y=true; 5.short z=42; 6. 7. if((z++==42)&&(y==true))z++; 8. if((x==false)||(++z==45))z++; 9. 10. System. out.println("z="+z); 11. } 12.} 结果为:C A. z=42

JAVA经典算法案例

JA V A经典算法40例 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 或 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=1;i<=20;i++) System.out.println(mymath.f(i)); } } class math { public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } } 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); } } class math { public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % i==0 ) return false; return true; } } 【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

java100道选择题含答案

1. 下列不可作为java语言标识符的是(D) A) a1 B) $1 C) _1 D) 11 2. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3. 整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5. 在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6. 在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10. 以下声明合法的是( D ) A、default String s; B、public final static native int w( )

JAVA笔试题--基础很全有答案

第一组 1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用

10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;} 10. } A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=5 D、编译通过,执行结果为:x=3 12.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2.private static int x=100; 3.public static void main(String args[ ]){ 4.HasStatic hs1=new HasStatic( ); 5.hs1.x++; 6.HasStatic hs2=new HasStatic( ); 7.hs2.x++; 8.hs1=new HasStatic( ); 9.hs1.x++; 10.HasStatic.x- -; 11.System.out.println(“x=”+x); 12.} 13.} A、5行不能通过编译,因为引用了私有静态变量 B、10行不能通过编译,因为x是私有静态变量 C、程序通过编译,输出结果为:x=103 D、程序通过编译,输出结果为:x=102 13.以下选项中循环结构合法的是( C ) A、while (int i<7) { i++;

JAVA填空选择题库

一、选择题(共10道题,每道题有4个选项,只有一个选项是正确的;每道题2分,共计20分) 1.下面哪一个文件包含名为HelloWorld的类的字节码(B)。 A.HelloWorld.java B.HelloWorld.class C.HelloWorld.exe D.HelloWorld.javadoc 2.JDK6.0版本成功安装后,在指定的安装位置将出现jdk1.6.0_21目录,该目录下用于存放编译器、解释器等各类工具的子目录是(C)。 A.jre B.lib C.bin D.demo 3.编译运行以下程序后,关于输出结果的显示正确的是(D)。 public class Test{ public static void main(String args[ ]){ byte b=2, e=3; //---------------1 byte f=b+e; //----------------2 System.out.println(f); } } A.编译通过,运行时打印输出5B.编译通过,运行时打印输出23 C.编译不通过,在//1处有错误,不能这样定义变量 D.编译不通过,在//2处有错误,因为此处f必须是一个int类性的变量 4.类的设计要求它的某个成员变量不能被任何外部类直接访问,则使用下面的哪个修饰符能够获得需要的访问控制(A)A.private B.default C.protected D.public 5.已知给出以下代码,则下列选项中正确的是(C)。 public interface Top{ public void twiddle(String s); } A.public abstract class Sub implements Top{ public abstract void twiddle(String s){ } } C.public abstract class Sub implements Top{ } B.public class Sub extends Top{ public void twiddle(Integer i){ } } D.public class Sub implements Top{ public void twiddle(Integer i){ 6.下列哪个选项可以计算出角度为42度的余弦值(B)。 A.double d=Math.cos(42); B.double d=Math.cos(Math.toRadians(42)); C.double d=Math.conine(42) ; D.double d=Math.cos(Math.toDegrees(42)); 7.给定一个未完成的方法,代码如下: 1: 2:{ success = connect( ); 3:if (success==-1) { 4:throw new TimedOutException(); 5:} 6:} 已知TimedOutException不属于RuntimeException,那么在第一行的位置上填写哪段代码能够完成该方法的声明?(D)A.public void method() B.public void method() throw TimedOutException C.public void method() throws RuntimeException D.public void method() throws TimedOut Exception 8.当编译并运行下列代码时其运行结果是(A)。

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.360docs.net/doc/367729389.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.360docs.net/doc/367729389.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.360docs.net/doc/367729389.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.360docs.net/doc/367729389.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.360docs.net/doc/367729389.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

java面试题-经典选择题部分

1 、给出如下代码: class Test{ private int m; public static void fun() { // some code... } } 如何使成员变量m 被函数fun() 直接访问? C A 、将private int m 改为protected int m B 、将private int m 改为public int m C 、将private int m 改为static int m D 、将private int m 改为int m 2 、下面哪个函数是public void example(){...} 的重载函数?D A 、private void example( int m){...} B 、public int example(){...} C 、public void example2(){...} D 、public int example ( int m, float f){...} 3 、给出下面的代码段: public class Base{ int w, x, y ,z; public Base(int a,int b) { x=a; y=b; } public Base(int a, int b, int c, int d) { // assignment x=a, y=b w=d; z=c; } } 在代码说明// assignment x=a, y=b 处写入如下哪个代码是正确的?D A 、Base(a,b); B 、x=a, y=b; C 、this(a),this(b); D 、this(a,b); 4 、已知如下定义:String s = "story"; 下面哪个表达式是合法的?A A 、s += "books"; B 、char c = s[1]; C 、int len = s.length;

Java高级编程选择题

1.Thread类用来创建和控制线程,一个线程从下面( )方法开始执行。 A.init() B.start() C.run() D.notifyAll() 2.实现线程体的方式除了继承Thread类,还可以实现( )接口。 A.Cloneable B.Runnable C.Iterable D.Serializable 3.哪个方法是实现Runnable接口所需的? A.wait() B.run() C.stop() D.update() 4.下面让线程休眠1分钟的正确方法是() A.sleep(1) B.sleep(60) C.sleep(1000) D.sleep(60000) 5.以下哪个最准确描述synchronized关键字? A.允许两线程并行运行,而且互相通信; B.保证在某时刻只有一个线程可访问方法或对象; C.保证允许两个或更多处理同时开始和结束; D.保证两个或更多线程同时开始和结束。 6.于Java语言的内存回收机制,下列选项中最正确的一项是( )。 A.Java程序要求用户必须手工创建一个线程来释放内存 B.Java程序允许用户使用指针来释放内存 C.内存回收线程负责释放无用内存 D.内存回收线程不能释放内存对象 7.在java程序中,下列关于线程的说法错误的是: ( ) A.run方法是运行线程的主体 B.多个进程运行时执行顺序是按顺序执行的 C.如果线程死亡,它便不能运行 D.在java中,高优先级的可运行线程会抢占低优先级线程 8.编写线程类,要继承的父类是: A.Object

B.Runnable C.Exception D.Thread 9.启动一个线程的方法是哪项? A . join ( ) B . runf ) C . start ( ) D . sleep ( ) 10.编写线程类,可以通过实现那个接口来实现? A.Runnable B.Throwable C.Serializable https://www.360docs.net/doc/367729389.html,parable 11.当一个处于阻塞状态的线程解除阻塞后,它将回到哪个状态? A.运行中状态 B.结束状态 C.新建状态 D.可运行状态 12.在网络编程中,为了定位一个进程,我们需要确定() A.端口号 B.IP地址 C.IP地址和端口号 D.都不是 13.为了从文本文件中逐行读取内容,应该使用哪个处理流对象? A.BufferedReader B.BufferedWriter C.Bufferedlnputstream D.Bufferedoutputstream 14.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接 前,应加载数据库驱动程序,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 15.要使用java程序访问数据库,则必须首先与数据库建立连接,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 16.Java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?

java经典案例与项目

Java学习的经典的案例收集 1:九九乘法表 /* 功能:实现九九乘法表的输出 时间:2013年7月4日 */ public class jiujiuchengfabiaoDemo { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+(i*j)+"\t"); } System.out.println(); } } } 结果: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 2:输出等腰三角形 public class SanJiaoDemo { public static void main(String[] args) { for(int a=1;a<=5;a++){ for(int b=1;b<=5-a;b++){ System.out.print(" "); }

JAVA笔试题--Java选择题100道

1.下列不可作为java语言修饰符的是(D) A) a1 B) $1 C) _1 D) 11 2.有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3.整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5.在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6.在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8.Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10.以下声明合法的是( D ) A、default String s; B、public final static native int w( ) C、abstract double d; D、abstract final double hyperbolicCosine( ) 11.关于以下application的说明,正确的是( C ) 1.class StaticStuff 2.{ 3.static int x=10; 4.static { x+=5;} 5.public static void main(String args[ ]) 6.{ 7.System.out.println(“x=”+ x); 8.} 9.static { x/=3;}

java选择题

1、Java属于以下哪种语言?() A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 2、在JDK安装目录下,用于存放可执行程序的文件夹是? A、bin B、jre C、lib D、db 3、下列Java命令中,哪一个可以编译HelloWorld.java文件? A、java HelloWorld B、java HelloWorld.java C、javac HelloWorld D、javac HelloWorld.java 4、以下关于java命令作用的描述中,正确的是 A、它专门负责解析由Java编译器生成的.class文件 B、它可以将编写好的Java文件编译成.class文件 C、可以把文件压缩 D、可以把数据打包 5、下面关于配置path环境变量作用的说法中,正确的是() A、在任意目录可以使用javac和java命令 B、在任意目录下可以使用class文件 C、在任意目录可以使用记事本 D、在任意目录下可以使用扫雷游戏 6、下面关于path和classpath的说法中,错误的是() A、path用来指定java 虚拟机(JVM) 所在的目录 B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件) 所在的目录 C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同 D、只要设置了classpath 这个环境变量系统就不会再在当前目录下查询某个类 7、下面关于classpath的说法中,错误的是()。 A、classpath和path环境变量的查看与配置的方式完全相同。 B、为了让Java虚拟机能找到所需的class文件,就需要对classpath环境变量进行设置。 C、从JDK5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。 D、在命令行窗口中配置了classpath后,重新打开新命令行窗口依然生效 8、下面哪种类型的文件可以在Java虚拟机中运行?() A、.java B、.jre C、.exe D、.class 9、阅读下段代码片段,选择正确的运行结果 public static void main(String[] args) {

Java九大示例程序

JAVA面向对象九个经典例子程序 1 Hello world例子 (1) 2 类的基本组成示例 (1) 3静态与非静态变量及方法的使用 (3) 4 类继承的例子 (3) 5类的访问修饰符 (4) 6抽象类及其实现示例 (5) 7接口及其实现 (6) 8 抽象类与接口混合编程例子 (7) 9 接口回调与多态性 (8) 1 Hello world例子 package Example; //定义自己的包名 public class Example1 //定义一个类 { public static void main(String[] args) //系统可以执行的main方法,这里是一个公有静态无返回值的方法 { System.out.println("Hello world!"); //调用https://www.360docs.net/doc/367729389.html,ng包中的System类的PrintLine方法输出Hello world! } } 2 类的基本组成示例 package Example; class Person { public int age; //声明公共字段age private String name; //声明私有字段name,此时name为类的属性,下面通过公有方法进行访问 public String getName() { return name;

} public void setName(String name) { https://www.360docs.net/doc/367729389.html, = name; } public void eat() //定义无参数的eat方法 { System.out.println("Person can eat"); } public void eat(String s) //定义带参数的eat方法,实现方法重载 { System.out.println("Person can eat"+s); } public Person() //定义无参构造函数,注意无返回值定义,方法与类同名 { } public Person(int age, String name) //重写一个带参数构造函数,注意无返回值定义,方法与类同名 { this.age = age; //前一个age为对象的字段,由this指定,后一个age为函数形参 https://www.360docs.net/doc/367729389.html, = name; //前一个name为对象的属性,由this指定,因为在本类中可直接访问,后一个name为函数形参 } } public class Example2 { public static void main(String[] args) { Person person1 = new Person(); //调用类的无参构造函数 person1.age = 20; //给对象的公有字段直接赋值 person1.setName("zhangsan"); //必须使用公共方法才能给对象的属性赋值 System.out.println("第一个人信息,姓名:"+person1.getName()+"年 龄:"+person1.age); person1.eat(); //调用对象的无参方法 Person person2 = new Person(18, "lisi");//调用类的有参构造函数 System.out.println("第二个人信息,姓名:"+ person2.getName() + "年龄:"+ person2.age); person2.eat(" 馒头"); //调用对象的有参方法 } }

Java选择题100道

期末不解释Java选择题100道(三)来源:井淼WILL的日志 1. 若a的值为3时,下列程序段被执行后,c的值是多少?( C ) if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A、1 B、2 C、3 D、4 2. 下面哪一个操作符的优先级最高?( D ) A、&& B、|| C、! D、( ) 3. 下列方法头中哪一个不与其他方法形成重载(overload)关系?( D ) A、void mmm() B、void mmm(int i) C、void mmm(String s) D、int mm() 4. 编译Java程序的命令是:( B ) A、appletviewer B、javac C、java D、javadoc 5. 编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A、.byte B、.class C、.html D、.exe 6. 执行语句int i = 1, j = ++i; 后i与j的值分别为( D )。 A、1与1 B、2与1 C、1与2 D、2与2

7. main方法是Java应用程序执行的入口点,关于main方法的方法头以下哪项是合法的?( B ) A、public static void main() B、public static void main(String[] args ) C、public static int main(String [] arg ) D、public void main(String arg[] ) 8. 下列哪个选项不是Java语言的特点?( D ) A、面向对象 B、高安全性 C、平台无关 D、面向过程 9. 下列哪个是合法的Java标识符?( B ) A、Tree&Glasses B、FirstJavaApplet C、*theLastOne D、273.5 10. 下面的选项中,哪一项不属于“汽车类”的行为( D )。 A、启动 B、刹车 C、减速 D、速度 11. 下面哪一个循环会导致死循环?( C ) A、for (int k = 0; k < 0; k++) B、for (int k = 10; k > 0; k--) C、for (int k = 0; k < 10; k--) D、for (int k = 0; k > 0; k++) 12. 有如下程序段: int a = b = 5; String s1 = "祝你今天考出好成绩!"; String s2 = s1; 则表达式a == b与s2 == s1的结果分别是:( A )。 A、true与true B、false与true C、true与false D、false与false

相关文档
最新文档