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;
}
}
}
}