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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

java

java 面试什么是类_Java 面试题代码类收集

發(fā)布時(shí)間:2024/7/23 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 面试什么是类_Java 面试题代码类收集 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

long temp=(int)3.9;

System.out.println(temp);

temp%=2;

System.out.println(temp);

3

1

View Code

Java里面類(lèi)的方法名可以與類(lèi)名一樣,與構(gòu)造函數(shù)的區(qū)別是方法有返回值,構(gòu)造函數(shù)沒(méi)有。

public classUserInfo {publicUserInfo(){

}publicString UserInfo(){return "adf";

}

}

這一點(diǎn)與net的不一樣。

攜程2015年面試題目:

/*** Created by qhong on 2017/2/5.*/

public classBase

{private String baseName = "base";publicBase()

{

callName();

}public voidcallName()

{

System. out. println(baseName);

}static class Sub extendsBase

{private String baseName = "sub";public voidcallName()

{

System. out. println (baseName) ;

}

}public static voidmain(String[] args)

{

Base b= newSub();

}

}

null

View Code

public classMain {public static voidmain(String[] args) {

Base b= newBase.Sub();

}

}classBase

{private String baseName = "base";publicBase()

{

System.out.println("fugou");

callName();

}public voidcallName()

{

System.out.println("fu");

System. out. println(baseName);

}static class Sub extendsBase

{private String baseName = "sub";public voidcallName()

{

System.out.println("zhi");

System. out. println (baseName) ;

}

}

}

View Code

fugou

zhinull

View Code

可以發(fā)現(xiàn),父類(lèi)在初始化的時(shí)候調(diào)用的callName是子類(lèi)的,這個(gè)時(shí)候子類(lèi)中的變量baseName只是被聲明,還未被賦值,所以輸出null。

構(gòu)造器的初始化順序大概是:父類(lèi)靜態(tài)塊 ->子類(lèi)靜態(tài)塊 ->父類(lèi)初始化語(yǔ)句 ->父類(lèi)構(gòu)造函器 ->子類(lèi)初始化語(yǔ)句-> 子類(lèi)構(gòu)造器

4.

public classNULL {public static voidhaha(){

System.out.println("haha");

}public static voidmain(String[] args) {

((NULL)null).haha();

}

}

輸出為haha,因?yàn)閚ull值可以強(qiáng)制轉(zhuǎn)換為任何java類(lèi)類(lèi)型,(String)null也是合法的。但null強(qiáng)制轉(zhuǎn)換后是無(wú)效對(duì)象,其返回值還是為null,而static方法的調(diào)用是和類(lèi)名綁定的,不借助對(duì)象進(jìn)行訪問(wèn)所以能正確輸出。

反過(guò)來(lái),沒(méi)有static修飾就只能用對(duì)象進(jìn)行訪問(wèn),使用null調(diào)用對(duì)象肯定會(huì)報(bào)空指針錯(cuò)了。這里和C++很類(lèi)似。

5.

public classMain {public static voidmain(String[] args) {newHelloB();

}

}classHelloA {publicHelloA() {

System.out.println("HelloA");

}

{ System.out.println("I'm A class"); }static { System.out.println("static A"); }

}class HelloB extendsHelloA {publicHelloB() {

System.out.println("HelloB");

}

{ System.out.println("I'm B class"); }static { System.out.println("static B"); }

}

staticAstaticB

I'm A class

HelloA

I'm B class

HelloB

View Code

這題很好,考查靜態(tài)語(yǔ)句塊、構(gòu)造語(yǔ)句塊(就是只有大括號(hào)的那塊)以及構(gòu)造函數(shù)的執(zhí)行順序。

對(duì)象的初始化順序:

(1)類(lèi)加載之后,按從上到下(從父類(lèi)到子類(lèi))執(zhí)行被static修飾的語(yǔ)句;

(2)當(dāng)static語(yǔ)句執(zhí)行完之后,再執(zhí)行main方法;

(3)如果有語(yǔ)句new了自身的對(duì)象,將從上到下執(zhí)行構(gòu)造代碼塊、構(gòu)造器(兩者可以說(shuō)綁定在一起)。

6.

public classMain {public static voidmain(String[] args) {

String s;

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

}

}

開(kāi)始以為會(huì)輸出null什么的,運(yùn)行后才發(fā)現(xiàn)Java中所有定義的基本類(lèi)型或?qū)ο蠖急仨毘跏蓟拍茌敵鲋怠?/p>

7.

public classMain {public static voidmain(String[] args) {

Example ex= newExample();

ex.change(ex.str, ex.ch);

System.out.print(ex.str+ " and ");

System.out.print(ex.ch);

}

}classExample {

String str= new String("good");char[] ch = { 'a', 'b', 'c'};public void change(String str, charch[]) {

str= "test ok";

ch[0] = 'g';

}

}

good and gbc

View Code

值參數(shù)指的是實(shí)參的地址的拷貝,得到這個(gè)拷貝地址后,你可以通過(guò)它修改這個(gè)地址的內(nèi)容(引用不變),因?yàn)榇藭r(shí)這個(gè)內(nèi)容的地址和原地址是同一地址

8.

classPeople {

String name;publicPeople() {

System.out.print(1);

}publicPeople(String name) {

System.out.print(2);this.name =name;

}

}class Child extendsPeople {

People father;publicChild(String name) {

System.out.print(3);this.name =name;

father= new People(name + ":F");

}publicChild() {

System.out.print(4);

}

}

132

解析:考察的又是父類(lèi)與子類(lèi)的構(gòu)造函數(shù)調(diào)用次序。在Java中,子類(lèi)的構(gòu)造過(guò)程中必須調(diào)用其父類(lèi)的構(gòu)造函數(shù),是因?yàn)橛欣^承關(guān)系存在時(shí),子類(lèi)要把父類(lèi)的內(nèi)容繼承下來(lái)。但如果父類(lèi)有多個(gè)構(gòu)造函數(shù)時(shí),該如何選擇調(diào)用呢?

第一個(gè)規(guī)則:子類(lèi)的構(gòu)造過(guò)程中,必須調(diào)用其父類(lèi)的構(gòu)造方法。一個(gè)類(lèi),如果我們不寫(xiě)構(gòu)造方法,那么編譯器會(huì)幫我們加上一個(gè)默認(rèn)的構(gòu)造方法(就是沒(méi)有參數(shù)的構(gòu)造方法),但是如果你自己寫(xiě)了構(gòu)造方法,那么編譯器就不會(huì)給你添加了,所以有時(shí)候當(dāng)你new一個(gè)子類(lèi)對(duì)象的時(shí)候,肯定調(diào)用了子類(lèi)的構(gòu)造方法,但是如果在子類(lèi)構(gòu)造方法中我們并沒(méi)有顯示的調(diào)用基類(lèi)的構(gòu)造方法,如:super();??這樣就會(huì)調(diào)用父類(lèi)沒(méi)有參數(shù)的構(gòu)造方法。

第二個(gè)規(guī)則:如果子類(lèi)的構(gòu)造方法中既沒(méi)有顯示的調(diào)用基類(lèi)構(gòu)造方法,而基類(lèi)中又沒(méi)有無(wú)參的構(gòu)造方法,則編譯出錯(cuò),所以,通常我們需要顯示的:super(參數(shù)列表),來(lái)調(diào)用父類(lèi)有參數(shù)的構(gòu)造函數(shù),此時(shí)無(wú)參的構(gòu)造函數(shù)就不會(huì)被調(diào)用。

總之,一句話:子類(lèi)沒(méi)有顯示調(diào)用父類(lèi)構(gòu)造函數(shù),不管子類(lèi)構(gòu)造函數(shù)是否帶參數(shù)都默認(rèn)調(diào)用父類(lèi)無(wú)參的構(gòu)造函數(shù),若父類(lèi)沒(méi)有則編譯出錯(cuò)。

9.

classShape {publicString name;

}class Circle extends Shape implementsSerializable{private floatradius;transient intcolor;public static String type = "Circle";

}

在序列化一個(gè)Circle的對(duì)象circle到文件時(shí),下面哪個(gè)字段會(huì)被保存到文件中?

radius

因?yàn)楦割?lèi)Shape沒(méi)有繼承Serializable,所以name不能被序列化。

靜態(tài)類(lèi)不管是否有transient修飾,都不能序列化

===============================================

10.String,StringBuilder,StringBuffer

package com.qhong.basic;public classStringTest {public static voidmain(String[] args) {

String str1="hello";

String str2="he"+new String("llo");

System.err.println(str1==str2);//jvm對(duì)127及其以下的特殊處理

Integer i1=1;

Integer i2=1;

System.err.println(i1==i2);

Integer i3=128;

Integer i4=128;

System.err.println(i3==i4);

}

}

Output:

false

true

false

11.

總結(jié)

以上是生活随笔為你收集整理的java 面试什么是类_Java 面试题代码类收集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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