關於java基礎練習題40道的信息

本文目錄一覽:

JAVA基礎測試題

1 跟java運行的機制有關,java先加載靜態域,static int x=10; ,然後靜態塊static { x+=5;},static { x/=3;}(雖然位置在後但先運行) ,然後靜態方法static void main

所以x=10,x=15,x=5.

2 A因為int [ ] x = new int[25],數組建立後,每個元素默認值為0;x[24]=0;x[25] 下標越界,x[0]=0;

3 switch(i)不接受long型,int或者枚舉型可以。i=Integer.parseInt(args[0]);雖然這樣每課時i還是long型的。

4 c,沒什麼好說的,就是這麼規定的!

java基礎面試題有哪些?

下面是10道java基礎面試題,後附答案

1.什麼是 Java 虛擬機?為什麼 Java 被稱作是「平台無關的編程語言」?

Java 虛擬機是一個可以執行 Java 位元組碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的位元組碼文件。

Java 被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java 虛擬機讓這個變為可能,因為它知道底層硬件平台的指令長度和其他特性。

2.「static」關鍵字是什麼意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?

「static」關鍵字表明一個成員變量或者是成員方法可以在沒有所屬的類的實例變量的情況下被訪問。

Java 中 static 方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而 static 方法是編譯時靜態綁定的。static 方法跟類的任何實例都不相關,所以概念上不適用。

3.JDK 和 JRE 的區別是什麼?

Java 運行時環境(JRE)是將要執行 Java 程序的 Java 虛擬機。它同時也包含了執行 applet 需要的瀏覽器插件。Java 開發工具包 (JDK)是完整的 Java 軟件開發包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調試器),可以讓開發者開發、編譯、執行 Java 應用程序。

4.是否可以在 static 環境中訪問非 static 變量?

static 變量在 Java 中是屬於類的,它在所有的實例中的值是一樣的。當類被 Java 虛擬機載入的時候,會對 static 變量進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變量,編譯器會報錯,因為這些變量還沒有被創建出來,還沒有跟任何實例關聯上。

5.Java 支持的數據類型有哪些?什麼是自動拆裝箱?

Java 語言支持的 8 中基本數據類型是:

byte

short

int

long

float

double

boolean

char

自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把 int 轉化成 Integer,double 轉化成 double,等等。反之就是自動拆箱。

6.Java 支持多繼承么?

不支持,Java 不支持多繼承。每個類都只能繼承一個類,但是可以實現多個接口。

7.Java 中,什麼是構造函數?什麼是構造函數重載?什麼是複製構造函數?

當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java 編譯器會為這個類創建一個默認的構造函數。

Java 中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。

Java 不支持像 C++中那樣的複製構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java 不會創建默認的複製構造函數。

8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?

Java 中的方法重載發生在同一個類裏面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。

9.接口和抽象類的區別是什麼?

Java 提供和支持創建抽象類和接口。它們的實現有共同點,不同點在於:

接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。

類可以實現很多個接口,但是只能繼承一個抽象類

類如果要實現一個接口,它必須要實現接口聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。

抽象類可以在不提供接口方法實現的情況下實現接口。

Java 接口中聲明的變量默認都是 final 的。抽象類可以包含非 final 的變量。

Java 接口中的成員函數默認是 public 的。抽象類的成員函數可以是 private, protected 或者是 public。

接口是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調用的。

10.什麼是值傳遞和引用傳遞?

對象被值傳遞,意味着傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。

對象被引用傳遞,意味着傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。

最後祝你面試順利!

要JAVA基礎的一些練習題與參考答案

一、問答題

1、Java語言的數據類型有哪些?8

答:有byte(位元組型)、char(字符型)、boolean(布爾型)、short(短整型)、int(整型)、long(長整型)、

浮點型:float(單精度)、double(雙精度)。

2、寫出算術運算符、關係運算符、邏輯運算符各自包含的運算符,寫出條件運算符的形式,並簡述其執行過程。10

答:

算術運算符:++、–、+、-、*、/、%

關係運算符:!=、=、=、、、==

邏輯運算符:!(邏輯非)、(邏輯與)、||(邏輯或)

條件運算符的形式:表達式1?表達式2:表達式3;3、數組有怎樣的特徵?寫出一維數組兩種初始化的語法格式(可使用具體的實例)。10

答:數組特徵:數組有若干個元素;

各元素有相同的數據類型;

按一定的順序排列;

一維數組兩種初始化的語法格式:

int a[]=new int[2];

a[0]=1;

a[1]=2;

或int a[];

a[]=new int[2];

a[0]=1;

a[1]=2;int a[]={1,2};

4、比較順序表、棧、隊列的異同點,分別寫出冒泡法排序的主要特點。12

答:都運用數組的知識,都運用了方法調用;

棧的特點是:

冒泡法排序的主要特點:

經過多輪循環,每一輪循環從最後一個元素依次與前面的元素比較大小,最終找到的最小元素排在第一位,第一輪循環終止;再依次進行下一輪循環。

二、編程題

1、規定一個工人工作時間一月160小時,每小時工資5元,加班的話,每小時增加4元,請編程計算此工人一個月的工資,工作時間由鍵盤輸入。15

import jaimport java.io.*;

pubic class Qgrgz

{

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

{int x,result;br InputStreamReader ir;br BufferedReader in;br ir=new InputStreamReader(System.in);br in=new BufferedReader(ir);br System.out.println(“Shurugongrengongzuoshijian:”);br String s=in.readLine();br x=Integer.parseInt(s);br if(0xx=160)br result=x*5;br elsebr result=(160*5+(x-160)*9);br System.out.println(“gongrenyuegongziwei:”+result);br }

}2、編程求解1—100中是7的倍數的數值的和。15

public class Qh

{

public static void main(String[] args)

{

int sum=0;

int i=1;

while(i100)

{

if(i%7==0)

sum +=i;

i++;

}

System.out.println(“sum=”+sum);

}

}

3、輸入3名學生4門課程的成績,分別統計每個學生4門課程的平均成績。15

import java.io.*;

public class Pjf

{

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

{

InputStreamReader ir;

BufferedReader in;

ir=new InputStreamReader(System.in);

in=new BufferedReader(ir);

for(int i=1;i=3;i++)

{

double v=0,sum=0;

for(int j=1;j=4;j++)

{

System.out.print(“請輸入第”+i+”個學生第”+j+”科成績:”);

String a=in.readLine();

int x=Integer.parseInt(a);

sum=sum+x;

}

v=sum/4;

System.out.println(“總分是:”+sum);

System.out.println(“平均分是:”+v);

}

}

}

4、運用方法調用求一維數組中的最大元素及下標,在main方法中輸入數組元素。15

import java.io.*;

public class Qszzdys

{ int a[]=new int[10];

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

{

int i;

Qszzdys b=new Qszzdys();

InputStreamReader ir;

BufferedReader in;

ir=new InputStreamReader(System.in);

in=new BufferedReader(ir);

for(i=0;i10;i++)

{

System.out.println(“請輸入a[“+i+”]:”);

String s=in.readLine();

b.a[i]=Integer.parseInt(s);

}

b.d();

}

void d()

{

int max,x=0;

max=a[0];

for(int j=1;j10;j++)

if(a[j]max)

{

max=a[j];

x=j;

}

System.out.println(“最大值是:”+max+”;下標是:”+x);

}

}

5、運用選擇法對23,45,34,78,99,12,50,0這組數進行升序排列。(選做題,做了加分,沒做不減分)15

public class Paixu

{

int [] a;

int len;

void f(int maxSize)

{

a=new int[maxSize];

len=0;

}

void b(int value)

{

a[len]=value;

len++;

}

void display()

{

for(int i=0;ilen;i++)

{

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

}

System.out.println();

}

void ff();

{

int out,in,min;

for(out=0;outlen-1;out++)

{

min=out;

for(in=out+1;inlen;in++)

if(a[in]a[min])

min=in;

swap(out,min);

}

}

void swap(int one,int two)

{

int temp=a[one];

a[one]=a[two];

a[two]=temp;

}

public static void main(String[] args)

{

Paixu paixu=new Paixu();

int maxSize=100;

paixu.f(maxSize);

paixu.b(23);

paixu.b(45);

paixu.b(34);

paixu.b(78);

paixu.b(99);

paixu.b(12);

paixu.b(50);

paixu.b(0);

System.out.println(“排序前:”);

paixu.display();

paixu.ff();

System.out.println(“排序後:”);

paixu.display();

}

}

JAVA 練習題

public class JavaExos {

public static void charInt(String chaine){ //1044

String[] charInt = new String[2];

int count = -1;

char maxChar = ‘A’;

int[] letterCount = new int[26];

String word = chaine.toLowerCase();

for (int i=0;iword.length();i++) {

int indexOfChar = (byte)word.charAt(i)-97;

letterCount[indexOfChar]++;

if (letterCount[indexOfChar]count || (letterCount[indexOfChar]==count word.charAt(i)maxChar)){

count = letterCount[indexOfChar];

maxChar = word.charAt(i);

}

}

charInt[0] = String.valueOf(maxChar);

charInt[1] = “”+count;

System.out.println(charInt[0]+” “+charInt[1]);

}

public static void getDate(int n){ //1047 這題如果給1,其實是指2000年1月2號.

n++;

int[] getYear = getYear(n);

int year = getYear[0];

int[] getMonth = getMonth(year,getYear[1]);

int month = getMonth[0];

String monthString ;

if(month10) monthString = “0”+String.valueOf(month);

else monthString = String.valueOf(month);

int day = getMonth[1];

System.out.println(year+”-“+monthString+”-“+day+” “+getDayOfWeek(n));

}

private static boolean isBissextile(int n){

if (n%4==0 !(n%100==0n%400!=0))

return true;

else

return false;

}

private static int[] getYear(int n){

int[] getYear = new int[2];

int year = 2000;

while(n0){

if(isBissextile(year)) n -= 366;

else n -= 365;

if (n0) year++;

}

if(isBissextile(year)) n+=366;

else n += 365;

getYear[0] = year;

getYear[1] = n;

return getYear;

}

private static int[] getMonth(int year, int n){

int[] getMonth = new int[2];

int month = 1;

while(n0){

if(month=7 month%2 != 0) n -= 31;

else if (month==2 isBissextile(year) ) n -= 29;

else if (month==2 !isBissextile(year)) n -= 28;

else if(month=7 month%2==0) n -= 30;

else if(month%2==0) n-=31;

else n -= 30;

if (n0) month++;

}

if(month=7 month%2 != 0) n += 31;

else if (isBissextile(year) month==2) n += 29;

else if (!isBissextile(year) month==2) n += 28;

else if(month=7 month%2==0) n += 30;

else if(month%2==0) n+=31;

else n += 30;

getMonth[0] = month;

getMonth[1] = n;

return getMonth;

}

private static String getDayOfWeek(int n){

int quotient = n/7;

int remainder = n -= quotient*7;

switch(remainder){

case 0 : return “Sunday”;

case 1 : return “Monday”;

case 2 : return “Tuesday”;

case 3 : return “Wednesday”;

case 4 : return “Thursday”;

case 5 : return “Friday”;

case 6 : return “Saturday”;

default : return “Never arrive”;

}

}

public static void getCode(String chaine){ //1048

chaine = chaine.toUpperCase();

System.out.println(“START”);

System.out.println(chaine);

System.out.println(“END”);

System.out.println();

for(int i=0;ichaine.length();i++){

System.out.print((changChar(chaine.charAt(i))));

}

System.out.println();

}

private static char changChar(char c){

if(c=65 c=90 c-565) return (char)(c+26-5);

else if(c=65 c=90) return (char)(c-5);

else return c;

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

JavaExos.charInt(“adfadffasdfda”);

JavaExos.getDate(1751);

JavaExos.getCode(“NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX”);

java基礎練習題

package ;

import java.util.Scanner;

public class test {

 public static void main(String[] args) {

Scanner in =new Scanner(System.in);

System.out.println(“輸入重量和是否加急”);

String zl=in.next();

String [] a=zl.split(” “);

int z=Integer.parseInt(a[0]);

int moneys=0;

if(z=10  z0){

 moneys+=8;

if(a[1].equals(“y”))

moneys+=5;

}else{

moneys=((z-1000)%500+1)*4;

if(a[1].equals(“y”))

moneys+=5;

}

System.out.println(moneys);

}

}

沒測試 

求Java基礎,練習題。

選擇題 (25道)

1. 下列選項中,不屬於Java語言特點的一項是( C )。

A:分佈式 B:安全性 C:編譯執行 D:面向對象

2. Java語言的特點與 C/C+ +語言的比較中說法錯誤的是:( D )

A:簡單性Java繼承了 C/C+ +的語法 ,丟棄了其中不常用又容易引起混淆的功能。

B:Java是一種純面向對象的語言 ,具有封裝、繼承 ( Inheritance)和多態( Polymorphism)的特點。

C:Java應用程序可憑藉URL打開並訪問網絡上的對象。

D:解釋型Java寫成的源代碼需要被編譯成高階的位元組碼 ,它們與機器架構有關。

3. 閱讀下列代碼,選出該代碼段正確的文件名( C )。

class A{

void method1(){

System.out.println(“Method1 in class A”);

}

}

public class B{

void method2(){

System.out.println(“Method2 in class B”);

}

public static void main(String[] args){

System.out.println(“main() in class B”);

}

}

A: A.java B:A.class C: B.java D: B.class

4. 如果一個類的文件名為Student.java,但是類的代碼為:

public class Student {

public static void main(String[] args) {

System.out.println(82);

}}

那麼下列說法正確的是:( B )

A:程序運行結果為8; B:程序運行結果為2;

C:程序運行結果為0; D:程序編譯錯誤,不能運行;

5. 符合對象和類的關係的是( D )。

A:教師和學生 B:書和房子

C:狗和貓 D:飛機和交通工具

6. 關於垃圾回收機制描述不正確的是( B )

A:垃圾回收機制不須通過程序員調用相應方法,也能自動啟動。

B:java程序員用System.gc()方法一定能進行垃圾回收;

C:垃圾回收機制屬於jvm自動操作,java程序員可以不進行垃圾回收操作。

D:垃圾回收機制並不是由操作系統自動執行。

7. 編譯下面源程序會得到哪些文件( D )?

class A1{

}

class A2 exdends A1{

}

public class B{

public static void main(String[] args){

}

}

A: 只有B.class文件 B:只有A1.class和A2.class文件

C: 編譯不成功 D:A1.class、A2.class和B.class文件

8. 下列關於基本數據類型的說法中,不正確的一項是( D )。

(A)boolean類型變量的值只能取真或假

(B)float是帶符號的32位浮點數

(C)double是帶符號的64位浮點數

(D)char是8位Unicode字符

9. 下列(D )是合法的標識符?

A:12class B:void C:-5 D:_blank

10. 在編寫Java程序時,如果不為類的成員變量定義初始值,Java會給出它們的默認值,下列說法中不正確的一個是( D )。

A:byte的默認值是0 B:boolean的默認值是false

C: char類型的默認值是』\0』 D: long類型的默認值是0.0L

11. 下列程序執行的結果是:( B )

public class News {

public static void main(String[] args) {

System.out.println(1+2+ “aa”+3);

}}

A: “12aa3” B: “3aa3 ” C: “12aa” D: “aa3”

12. 表達式(12==0) (1/0 1)的值為( B )。

A: true B: false C: 0 D: 運行時拋出異常

13. 下列循環體執行的次數是( C )。

int y=2, x=4;

while(–x != x/y){ }

A : 1 B: 2 C : 3 D : 4

14. 已知如下代碼:

switch(m){

case 0: System.out.println(“Condition 0”);

case 1: System.out.println(“Condition 1”);

case 2: System.out.println(“Condition 2”);

case 3: System.out.println(“Condition 3”);break;

default:System.out.println(“Other Condition”);

}

當m的值為( D )時,輸出「Condition 3」

(A)2 (B)0、1 (C)0、1、2 (D)0、1、2、3

15. 下列語句輸出的結果是:( C )

public class X3 {

public static void main(String[] args) {

for(int i=0; i10; i++){

if(i==5) break;

System.out.print(i);

}

}

}

A:編譯錯誤; B:1234;C:01234;D:12345;

16. 下列語句輸出的結果是:( D )

public class Lx1 {

public static void main(String[] args) {

for(int i=0;i5;i++){

switch(i){

case 0:System.out.print(“B”);

case 1:System.out.print(“e”);break;

case 2:System.out.print(“g”);

case 3:System.out.print(“!”);break;

case 4:System.out.print(“!”);break;

default:System.out.print(“!”);

}

}

}

}

A:Beg!!! B:Beeg! C:Beg! D:Beeg!!!

17. 下面foreach循環的程序輸出結果是( D )。

public class Lx1{

public static void main(String[] args) {

String s1[]={“歡迎您”,”3″,”G”,”同”,”學”,};

Arrays.sort(s1);

for(String s0:s1)

System.out.print (s0);

}

}

A:歡迎您3G同學 B:3G歡迎您同學 C:同學歡迎您3G D:3G同學歡迎您

18. 閱讀以下程序,選擇正確的運行結果:( B )

public class Lx1 {

public static void main(String[] args) {

byte d[]=”YOUIHE你我他”.getBytes();

String s=new String(d,6,2);

System.out.println(s);

}

}

A:HE; B:你; C:我; D:他

19. 設有下列數組定義語句:

int a[][]= {{1, 2}, {3}};

則對此語句的敘述正確的是( D )。

A: 定義了一個名為a的一維數組 B: a數組 a[1][1]為0

C: a數組元素的下標為1~3 D: 數組中每個元素的類型都是整數

20. 下列程序輸出的結果是:( B )

public class Lx1 {

public static void main(String[] args) {

String a[][] ={{“”,””,””,””},{“”},{“”,””}};

System.out.println(a[2].length);

}

}

A:1 B:2 C:3 D:4

21. 關於以下程序的說明,正確的是( 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

22. 給出下面代碼,關於該程序以下哪個說法是正確的?( C )

public class Person{

static int arr[] = new int[5];

public static void main(String a[]) {

for(int i=0;i

System.out.print(arr[0]);

}

}

A、編譯時將產生錯誤 B、編譯時正確,運行時將產生錯誤 C、輸出零 D、輸出空

23. 下面程序中類ClassDemo中定義了一個靜態變量sum,分析程序段的輸出結果。( C )

class ClassDemo {

public static int sum=1;

public ClassDemo() {

sum = sum + 5;}

}

public class ClassDemoTest{

public static void main(String args[]) {

ClassDemo demo1=new ClassDemo();

ClassDemo demo2=new ClassDemo();

System.out.println(demo1.sum);}

}

A: 0 B: 6 C: 11 D: 2

24. 下面關於方法的說法,不正確的是( C )。

A: Java中的構造方法名必須和類名相同

B: 方法體是對方法的實現,包括變量聲明和合法語句

C: 如果一個類定義了構造方法,也可以用該類的默認構造方法

D: 類的私有方法不能被其他類直接訪問

25. 在Java中下列說法正確的是( C )

A) 一個子類可以有多個父類,一個父類也可以有多個子類

B) 一個子類可以有多個父類,但一個父類只可以有一個子類

C) 一個子類可以有一個父類,但一個父類可以有多個子類

D) 上述說法都不對

原創文章,作者:KPUD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/143085.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KPUD的頭像KPUD
上一篇 2024-10-14 18:45
下一篇 2024-10-14 18:45

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論