java测试题
Ⅰ java基础测试题
答案为 C。
public Test(){
x=35;
}
public Test(String s){}
为构造方法,构造方法规定是不需要用void之类的修饰,也没有返回值
public void Test(double f){
this.x=(int)f;
},这个则是与类名同名的方法,但这样的做法不赞同。
Ⅱ java试卷
第一,谈谈final,
finally,
finalize的区别。
final
修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为
abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
finally
再异常处理时提供
finally
块来执行任何清除操作。如果抛出一个异常,那么相匹配的
catch
子句就会执行,然后控制就会进入
finally
块(如果有的话)。
finalize?方法名。java
技术允许使用
finalize()
方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在
object
类中定义的,因此所有的类都继承了它。子类覆盖
finalize()
方法以整理系统资源或者执行其他清理工作。finalize()
方法是在垃圾收集器删除对象之前对这个对象调用的。
第二,anonymous
inner
class
(匿名内部类)
是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
匿名的内部类是没有名字的内部类。不能extends(继承)
其它类,但一个内部类可以作为一个接口,由另一个内部类实现。
第三,static
nested
class
和
inner
class的不同,说得越多越好(面试题有的很笼统)。
nested
class
(一般是c++的说法),inner
class
(一般是java的说法)。java内部类与c++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http:
//
www.frontfree.net/articles/services/view.asp?id=704&page=1
注:
静态内部类(inner
class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象
第四,&和&&的区别。
&是位运算符。&&是布尔逻辑运算符。
第五,hashmap和hashtable的区别。
都属于map接口的类,实现了将惟一键映射到特定的值上。
hashmap
类没有分类或者排序。它允许一个
null
键和多个
null
值。
hashtable
类似于
hashmap,但是不允许
null
键和
null
值。它也比
hashmap
慢,因为它是同步的。
第六,collection
和
collections的区别。
collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
collection是个java.util下的接口,它是各种集合结构的父接口。
第七,什么时候用assert。
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为
true。如果表达式计算为
false,那么系统会报告一个
assertionerror。它用于调试目的:
assert(a
>
0);
//
throws
an
assertionerror
if
a
<=
0
断言可以有两种形式:
assert
expression1
;
assert
expression1
:
expression2
;
expression1
应该总是产生一个布尔值。
expression2
可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的
string
消息。
断言在默认情况下是禁用的。要在编译时启用断言,需要使用
source
1.4
标记:
javac
-source
1.4
test.java
要在运行时启用断言,可使用
-enableassertions
或者
-ea
标记。
要在运行时选择禁用断言,可使用
-da
或者
-disableassertions
标记。
要系统类中启用断言,可使用
-esa
或者
-dsa
标记。还可以在包的基础上启用或者禁用断言。
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
第八,gc是什么?
为什么要有gc?
(基础)。
gc是垃圾收集器。java
程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
system.gc()
runtime.getruntime().gc()
第九,string
s
=
new
string("xyz");创建了几个string
object?
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。
第十,math.round(11.5)等于多少?
math.round(-11.5)等于多少?
math.round(11.5)返回(long)12,math.round(-11.5)返回(long)-11;
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
都不能
Ⅲ JAVA测试题 一、 环境要求:Eclipse3.2 JDK1.5及以上
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.print("Please input a digit number: ");
Scanner scanner = new Scanner(System.in);
int digit = scanner.nextInt();
switch(digit){
case 1:
int sum = method1();
System.out.println("Sum is: " + sum);
break;
case 2:
System.out.println("最大数字和最小差异为: " + metho2(6));
break;
case 3:
System.out.print("Please input r:");
double r = scanner.nextDouble();
System.out.println("Area is: " + method3(r));
break;
case 4:
method4();
break;
default:
System.out.println("Invalid input, progream exit!");
}
}
private static void method4() {
System.out.print("Please input your name:");
String str = new Scanner(System.in).nextLine();
String familyName = str.substring(0, 1);
String givenName = str.substring(1);
System.out.println("姓氏:" + familyName);
System.out.println("名字:" + givenName);
}
private static double method3(double r) {
return Math.PI * r * r;
}
private static int metho2(int size) {
int[] ary = new int[size];
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < ary.length; i++){
System.out.print("Please input a number");
ary[i] = scanner.nextInt();
}
Arrays.sort(ary);
int max = ary[size -1];
int min = ary[0];
return max - min;
}
private static int method1() {
System.out.print("Please input the number: ");
int value = new Scanner(System.in).nextInt();
int sum = 0;
for(int i = 0; i <= value; i+=3){
sum += i;
}
return sum;
}
}
Ⅳ java期末考试题目
第一个什么平方根的,数学没学好,不知道用if()怎么算,倒是可以用方法Math.sqrt()
//2222222222222
importjava.util.Scanner;
publicclassTest2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("输入一个年份,判断是闰年还是平年:");
intyear=sc.nextInt();
if(year%4==0&&year%100!=0||year%400==0){//判断闰年一般的规律为:四年一闰,百年不闰,四百年再闰
System.out.println(year+"年是闰年。");
}else{
System.out.println(year+"年是平年。");
}
}
}
//3333333333333
importjava.util.Scanner;
publicclassTest3{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("请输入学生的考分,按回车查询考分等级");
floatscore=sc.nextFloat();
Stringscore_class=null;
if(score>=0&&score<60){
score_class="不及格";
}elseif(score<70){
score_class="及格";
}elseif(score<80){
score_class="中等";
}elseif(score<90){
score_class="良好";
}elseif(score<=100){
score_class="优秀";
}else{
System.out.println("请输入合法考分(0--100),请重新启动查询!");
System.exit(0);
}
System.out.println("该生成绩:"+score+",等级为:"+score_class);
}
}
//44444444444444
importjava.util.Arrays;
importjava.util.Scanner;
publicclassTest4{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
int[]arr=newint[3];
System.out.println("请输入3个整数,让电脑判断大小后,从小到大输出");
for(inti=0;i<3;i++){
System.out.println("请输入第"+(i+1)+"个数大小:");
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
System.out.println("重新排序后,从小到大的顺序是:");
for(intx:arr){
System.out.print(x+"");
}
}
}
//555555555555555
publicclassTest5{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<=100;i++){
sum+=i;
}
System.out.println("1+2+3+4+...+100的和是:"+sum);
}
}
//6666666666666666
publicclassTest6{
publicstaticvoidmain(String[]args){
System.out.println("九九乘法表");
for(inti=1;i<=9;i++){
for(intj=1;j<=9;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
//777777777777777777
publicclassTest7{
publicstaticvoidmain(String[]args){
for(inti=1;i<5;i++){
for(intj=1;j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
}
//88888888888888888888
publicclassTest8{
publicstaticvoidmain(String[]args){
intn=4;
for(inti=1;i<=n;i++){
for(intj=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
//9999999999999999
publicclassTest9{
publicstaticvoidmain(String[]args){
for(inti=1;i<=4;i++){
for(intj=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
//注意下面只有3行
for(inti=1;i<=3;i++){
for(intj=3-i;j>=0;j--){
System.out.print("*");
}
System.out.println();
}
}
}
//10101010101010
publicclassTest10{
publicstaticvoidmain(String[]args){
System.out.println("现在一数组arr[10]={1,3,5,2,82,6,7,0,12,4}"+
"找出最大的数的位置并输出到屏幕");
int[]arr={1,3,5,2,82,6,7,0,12,4};
intmax=arr[0];
intindex=0;
for(inti=0;i<arr.length;i++){
if(arr[i]>max){
index=i;
max=arr[i];
}
}
System.out.println("经过查找,该数组中最大值是:"+max+",在数组中第"+(index+1)+"个位置");
}
}
////////////1111111111
/*
*素数:只有除以1和它本身时能整除,除以其它任何自然数都不能整除
*/
publicclassTest11{
publicstaticvoidmain(String[]args){
System.out.println("101-200之间素数:");
for(inti=101;i<=200;i++){
intj=1;
intcount=0;
//计数,当一个数队在1至本数之前有第3个数可以整除,则不是素数
for(intk=1;k<=i;k++){
if(i%k==0){
count++;
}
}
if(count<3){
System.out.print(i+"");
}
}
}
}
//1212121212
publicclassTest12{
publicstaticvoidmain(String[]args){
System.out.println("打印水仙花数:");
for(intnum=100;num<=999;num++){
intge=num%10;
intshi=(num/10)%10;
int=num/100;
if((Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(,3))==num){
System.out.print(num+"");
}
}
}
}
Ⅳ java测试题!!!在线等
//第三题
/**
*计算数组平均值
*/
publicdoubleavg(int[]array){
intsum=0;
//先计算数组的和
intlength=array.length;
for(inti=0;i<length;i++){
sum+=array[i];
}
return(double)sum/length;
}
//第四题
/**
*学生类
*/
publicclassStudent{
//学号姓名
privateStringsid;
privateStringname;
publicStringgetSid(){
returnsid;
}
publicvoidsetSid(Stringsid){
this.sid=sid;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+((name==null)?0:name.hashCode());
result=prime*result+((sid==null)?0:sid.hashCode());
returnresult;
}
@Override
publicbooleanequals(Objectobj){
Studentother=(Student)obj;
if(this.getSid().equals(other.getSid())&&this.getName().equals(other.getName())){
returntrue;
}else{
returnfalse;
}
}
}
Ⅵ Java测试题
/**
* Student类
* @author hsf
* 没有实质的改动,把有关结果判断的方法放到Course类中,
* 在Student类中new Course的对象调用它的方法,功能是一样的。
*/
public class Student {
public static void main(String[] args) {
System.out.println("Welcome to the student course admin");
Course sc = new Course();
System.out.println("Collecting information for subject 0");
sc.evaluatue();
System.out.println("Collecting information for subject 1");
sc.evaluatue();
System.out.println("Collecting information for subject 2");
sc.evaluatue();
}
}
import java.util.Scanner;
/**
* Course类
*
* @author hsf
*/
public class Course {
int num1, num2;
public void evaluatue() {
Scanner sn = new Scanner(System.in);
Course st = new Course();
System.out.println("Enter mark out of 50 for Assessment task 0:");
num1 = sn.nextInt();
st.check(num1);
System.out.println("Enter mark out of 50 for Assessment task 1:");
num2 = sn.nextInt();
st.check(num2);
int sum = num1 + num2;
if (sum < 100 && sum >= 80) {
System.out.println("Subject Mark:" + sum + "-HD");
} else if (sum >= 70 && sum < 79) {
System.out.println("Subject Mark:" + sum + "-DI");
} else if (sum >= 60 && sum < 69) {
System.out.println("Subject Mark:" + sum + "-CR");
} else if (sum >= 50 && sum < 59) {
System.out.println("Subject Mark:" + sum + "-PA");
} else {
System.out.println("Less than 50 NN");
}
}
public void check(int num) {
boolean flag = true;
while (flag) {
if (num > 50 || num < 0) {
System.out.println("Invalid mark, Re-enter mark!");
Scanner sn = new Scanner(System.in);
if (num == num1) {
System.out
.println("Enter mark out of 50 for Assessment task 0:");
} else {
System.out
.println("Enter mark out of 50 for Assessment task 1:");
}
num = sn.nextInt();
} else {
flag = false;
}
}
}
}