日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

几道Java笔试题

發(fā)布時間:2025/3/17 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几道Java笔试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.寫出程序運(yùn)行結(jié)果
public class TestString {

????public static void link(String a){
???????? a+="World";
????}
????public static void main(String []args){
??????? ?String a = "Hello";
??????? ?link(a);
???????? System.out.println(a);
????}
}
答: 這道題考兩個方面: 1). String對象的內(nèi)容是不能改變的,a+="World"并不是把a(bǔ)所指對象改變,   而是先生成一個臨時String對象,其值為a+"World",然后在把這個臨時   對象賦給a. 2). Java中函數(shù)參數(shù)傳遞方式為Call by value,link方法中會生產(chǎn)a的一個   拷貝,同樣指向a所指的對象,綜合以上兩點(diǎn),得出結(jié)果為 Hello ? 2. 寫出下面代碼的結(jié)果 ? System.out.println("ja"+"va"?==?"java"); 答:"=="用來比較對象的引用,而equals()用來比較對象的內(nèi)容,但是如果是字符串常量,用"=="也可以比較內(nèi)容 是否相等,"ja"+"va"和"java"都是字符串常量,因此結(jié)果為true 同理,下面代碼結(jié)果也是true final?String?str?=?"java";

System.out.println(str
=="java")
? 3.繼承時候類的執(zhí)行順序問題,一般都是選擇題,問你將會打印出什么? public class Parent {
????//1
????static int a = 1;
????//2
????static??
????{
????? ?a=10;
????? ?System.out.println("parent static code");
????}
????//4
????public Parent(){
???? ?System.out.println("Parent constructor");
??? ??System.out.println("Parent a ="+a);
????}
????public static void main(String []args){
???? ?System.out.println("*****************");
???? ?Parent c = new Child();
????}??
}

public class Child extends Parent{
??
????static int a = 2;
????//3
????static {
????? a=20;
????? System.out.println("child static code");
????}
????public Child(){
????? System.out.println("Child constructor");
???? ?System.out.println("Child var a="+a);
????}
}
輸出結(jié)果: parent static code
*****************
child static code
Parent constructor
Parent a =10
Child constructor
Child var a=20

由此可看出在還沒有實(shí)例化類的時候(注意*號)已經(jīng)執(zhí)行了static代碼塊。順序是先父類后子類.然后才調(diào)用父類的構(gòu)造方法,再調(diào)用子類的構(gòu)造方法.就是這個順序了.
4.內(nèi)部類的實(shí)現(xiàn)方式:
public class OuterClass {

????static int a;
????int b;
????private class InnerClass{
???? public InnerClass(){
??????System.out.println("InnerClass create:"+a);
??? ?}?
??}
????public OuterClass(){
?????? InnerClass ic = new InnerClass();
?????? System.out.println("OuterClass create");
????}
????public static void main(String []args){
??????? OuterClass oc = new OuterClass();
????}
} 總結(jié):

一.靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。

二.靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的靜態(tài)變量,而不可訪問外部類的非靜態(tài)變量;

三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的非靜態(tài)變量 5. Float類型 public class TestFloat {
??
????public static void main(String []args){
????Float a = new Float(3.4);
????System.out.println(a.SIZE);
????a = new Float(34000);
????System.out.println(a.SIZE);
????}
} 讓我們來看看此程序會輸出什么呢?
我們先來看看JDK的解釋吧.
public?static?final?int?SIZE
The?number?of?bits?used?to?represent?a?
float?value.?

意思是說:通常去描述一個float值的位數(shù).這個是一個常量,來看看源碼吧:?public?static?final?int?SIZE?=?32; final int 變量一旦被定義就不能被改變~ ? 第二個Float類型題: public?class?Test2
{
????
public?static?void
?main(String[]?args)
????
{
????????
float?a?=?3.4
;
????}


}

這個簡單的程序能不能編譯通過呢?
其實(shí)是不能的。
原因是精度問題,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換.
float?a?=?(float)3.4;
再來看看這個能不能編譯通過
public?class?Test2
{
????
public?static?void
?main(String[]?args)
????
{
????????Float?a?
=?new?Float(3.4
);
????????
????}


}
其實(shí)是沒問題的。
我們來看看Float類的源代碼吧:
??public?Float(double?value)?{
????
this.value?=?(float
)value;
????}

其中有一個構(gòu)造方法在方法里已經(jīng)進(jìn)行了向下轉(zhuǎn)型。
所以這樣寫是沒有問題的.
6.選出用法錯誤的:
a:?Stirng?a?="Gone?With?Wind";?
String?t
=?"Wind";?
String?m;?
m
=a-t;?
B:?Stirng?a?
="Gone?With?Wind";?
String?m?;?
m
=a[3]+"one";?
C:?Stirng?a?
="Gone?With?Wind";?
Sting?m;?
m
=a.toUpperCase();?
D:?不記得了?

7.此程序會輸出什么? public class A {
?? //3
????public A(){
?????? a1();
????}
????public void a1(){
????? System.out.println("A-a1");
????}
}

public class B extends A{

????int bb = 0;
????//2
????public B(){
????//5
??bb=1000;
????}
????//4
????public void a1(){
??System.out.println("bb is"+bb);
??System.out.println("B-a1");
????}
????public static void main(String []args){
??new B();
????}
}
答案:
bb is 0
B-a1
看看執(zhí)行順序就明白了.
在方法被a1()被重寫的情況下,父類的a1是沒有機(jī)會
被調(diào)用的.
?

轉(zhuǎn)載于:https://blog.51cto.com/tscjsj/85891

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的几道Java笔试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。