撩課-Java每天10道面試題第2天

来源:https://www.cnblogs.com/gxq666/archive/2018/11/09/9933020.html
-Advertisement-
Play Games

11、面向對象的特征有哪些方面 12.java 創建對象的幾種方式 13.修飾符public,private,protected,以及不寫時的區別 14.String s = new String("xyz");創建了幾個String Object 15.Math.round(11.5)等於多少? ...


11、面向對象的特征有哪些方面

  

1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,
以便更充分地註意與當前目標有關的方面。
抽象並不打算瞭解全部問題,而只是選擇其中的一部分,
暫時不用部分細節。
抽象包括兩個方面,
一是過程抽象,
二是數據抽象。

2.繼承:
繼承是一種聯結類的層次模型,
並且允許和鼓勵類的重用,
它提供了一種明確表述共性的方法。
對象的一個新類可以從現有的類中派生,
這個過程稱為類繼承。
新類繼承了原始類的特性,
新類稱為原始類的派生類(子類),
而原始類稱為新類的基類(父類)。
派生類可以從它的基類那裡繼承方法和實例變數,
並且類可以修改或增加新的方法使之更適合特殊的需要。

3.封裝:
封裝是把過程和數據包圍起來,
對數據的訪問只能通過已定義的界面。
面向對象計算始於這個基本概念,
即現實世界可以被描繪成一系列完全自治、
封裝的對象,
這些對象通過一個受保護的介面訪問其他對象。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。
多態性包括參數化多態性和包含多態性。
多態性語言具有靈活、抽象、行為共用、代碼共用的優勢,
很好的解決了應用程式函數同名問題。

 

12.java 創建對象的幾種方式

採用new

通過反射

採用clone

通過序列化機制

前2者都需要顯式地調用構造方法。
造成耦合性最高的恰好是第一種,
因此你發現無論什麼框架,
只要涉及到解耦必先減少new的使用。

 

13.修飾符public,private,protected,以及不寫時的區別

修飾符當前類同一package子孫類其他package
public
protected ×
default × ×
private × × ×
不寫時預設為friendly/default
friendly許可權是java的預設許可權,也稱作包(package)訪問許可權
只要不加private、public、protect的
就是friendly訪問許可權,
所有的成員僅限同一個包內的成員訪問

 

14.String s = new String("xyz");創建了幾個String Object

兩個,一個字元對象,一個字元對象引用對象

  

15.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)==12;
Math.round(-11.5)==-11;
round方法返回與參數最接近的長整數,
參數加1/2後求其floor

 

16.Java有沒有goto?

java中的保留字,現在沒有在java中使用

 

17.Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型

方法的重寫Overriding和重載Overloading是Java多態性的不同表現。
重寫Overriding是父類與子類之間多態性的一種表現,
重載Overloading是一個類中多態性的一種表現。
如果在子類中定義某方法與其父類有相同的名稱和參數,
我們說該方法被重寫 (Overriding)。
子類的對象使用這個方法時,
將調用子類中的定義,
對它而言,
父類中的定義如同被"屏蔽"了。
如果在一個類中定義了多個同名的方法,
它們或有不同的參數個數或有不同的參數類型,
則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型

 

18.abstract class和interface有什麼區別

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),
它用於要創建一個體現某些基本行為的類,
併為該類聲明方法,
但不能在該類中實現該類的情況。
不能創建abstract 類的實例。

然而可以創建一個變數,
其類型是一個抽象類,
並讓它指向具體子類的一個實例。
不能有抽象構造函數或抽象靜態方法。
Abstract 類的子類為它們父類中的
所有抽象方法提供實現,
否則它們也是抽象類為。

取而代之,在子類中實現該方法。
知道其行為的其它類可以在類中實現這些方法
介面(interface)是抽象類的變體。

在介面中,所有方法都是抽象的。
多繼承性可通過實現這樣的介面而獲得。
介面中的所有方法都是抽象的,
沒有一個有程式體。

介面只可以定義static final成員變數。
介面的實現與子類相似,
除了該實現類不能從介面定義中繼承行為。

當類實現特殊介面時,
它定義(即將程式體給予)所有這種介面的方法。
然後,它可以在實現了該介面的類的
任何對象上調用介面的方法。

由於有抽象類,
它允許使用介面名作為引用變數的類型。
通常的動態聯編將生效。
引用可以轉換到介面類型或從介面類型轉換,
instanceof 運算符可以用來
決定某對象的類是否實現了介面

 

19.介面是否可繼承介面?

介面可以繼承介面。
抽象類可以實現(implements)介面,
抽象類是否可繼承實體類,但
前提是實體類必須有明確的構造函數

 

20.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上

swtich()裡面必須是int和enum--即枚舉類型。
shortchar 或者 byte他會自動轉換為int的。。
long不能自動轉換為int..
因為long比int範圍大..可能會丟失精度..

在java的1.7之後的jdk版本,
java中的switch裡面表達式的類型可以是string類型,
之前是不可以使用的

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 數組 2 棧 3 隊列 4 鏈表 5 樹 6 堆 7 圖 8 散列表 ...
  • 本篇分享的是springboot多數據源配置,在從springboot v1.5版本升級到v2.0.3時,發現之前寫的多數據源的方式不可用了,捕獲錯誤信息如: 先來說下之前的多數據源配置如: 配置了兩個資料庫,在原來預設的datasource節點下麵增加了seconddatasource節點的配置, ...
  • 題意 "題目鏈接" Sol 分層圖+最短路 建$k+1$層圖,對於邊$(u, v, w)$,首先在本層內連邊權為$w$的無向邊,再各向下一層對應的節點連邊權為$0$的有向邊 如果是取最大最小值的話可以考慮二分答案+最短路 cpp // luogu judger enable o2 // luogu ...
  • 前面的文章,棧長和大家分享過多線程創建的3種方式《 "實現 Java 多線程的 3 種方式" 》。 但如果線程很多的情況下,你知道如何對它們進行分組嗎? 和 Dubbo 的服務分組一樣,Java 可以對相同性質的線程進行分組。 來看下線程類 Thread 的所有構造方法。 如圖所示,帶有 Threa ...
  • 隨著人工智慧時代的到來,Python的需求也變的越來越大了。從目前各大IT招聘網上顯示招聘需求是非常大,而且薪資基本都在10k起,高的可達40-50k 隨著人工智慧時代的到來,Python的需求也變的越來越大了。從目前各大IT招聘網上顯示招聘需求是非常大,而且薪資基本都在10k起,高的可達40-50 ...
  • 一、SSM概要 與SSH(Struts/Spring/Hibernate/)一樣,Spring+SpringMVC+MyBatis也有一個簡稱SSM,Spring實現業務對象管理,Spring MVC負責請求的轉發和視圖管理, MyBatis作為數據對象持久化引擎。這樣搭配的優點是:輕量、自由度高、 ...
  • [TOC] 引言 業餘時間搞 python 爬蟲爬取數據,完善我的 "汽車銷量查詢小助手" ;工作時間還是要努力完成領導分配的任務,做我的 Java 老本行的。 這不,現在就有個需求,集團要將 elasticsearch 版本從 2.2 升級到 6.3, 由於之前做項目使用 來完成 es 數據的增刪 ...
  • K-means演算法的matlab程式 在“K-means演算法的matlab程式(初步)”這篇文章中已經用matlab程式對iris資料庫進行簡單的實現,下麵的程式最終的目的是求準確度。 作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/ 1.採用iris數 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...