最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)概述面試題復(fù)習(xí)

 更新時(shí)間:2021年08月12日 14:38:48   作者:manor的大數(shù)據(jù)奮斗之路  
這篇文章主要介紹了java基礎(chǔ)面試題,文中的描述非常詳細(xì),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下,希望能給你帶來幫助

Java概述

何為編程

編程就是讓計(jì)算機(jī)為解決某個(gè)問題而使用某種程序設(shè)計(jì)語言編寫程序代碼,并最終得到結(jié)果的過程。

為了使計(jì)算機(jī)能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步一步去工作,完成某種特定的任務(wù)。這種人和計(jì)算機(jī)之間交流的過程就是編程。

什么是Java

Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程 。

jdk1.5之后的三大版本

Java SE(J2SE,Java 2 Platform Standard Edition,標(biāo)準(zhǔn)版)

Java SE 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含

了支持 Java Web 服務(wù)開發(fā)的類,并為Java EE和Java ME提供基礎(chǔ)。

Java EE(J2EE,Java 2 Platform Enterprise Edition,企業(yè)版)

Java EE 以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java 應(yīng)用程序。Java EE 是在

Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-oriented architecture,SOA)和 Web2.0應(yīng)用程序。2018年2月,Eclipse 宣布正式將 JavaEE 更名為 JakartaEE

Java ME(J2ME,Java 2 Platform Micro Edition,微型版)

Java ME 以前稱為 J2ME。Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持。基于 Java ME 規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。

JVM、JRE和JDK的關(guān)系

JVM

Java Virtual Machine是Java虛擬機(jī),Java程序需要運(yùn)行在虛擬機(jī)上,不同的平臺(tái)有自己的虛擬機(jī),因此Java語言可以實(shí)現(xiàn)跨平臺(tái)。

JRE

Java Runtime Environment包括Java虛擬機(jī)和Java程序所需的核心類庫等。核心類庫主要是java.lang包:包含了運(yùn)行Java程序必不可少的系統(tǒng)類,如基本數(shù)據(jù)類型、基本數(shù)學(xué)函數(shù)、字符串處理、線程、異常處理類等,系統(tǒng)缺省加載這個(gè)包

如果想要運(yùn)行一個(gè)開發(fā)好的Java程序,計(jì)算機(jī)中只需要安裝JRE即可。

JDK

Java Development Kit是提供給Java開發(fā)人員使用的,其中包含了Java的開發(fā)工具,也包括了JRE。所以安裝了JDK,就無需再單獨(dú)安裝JRE了。其中的開發(fā)工具:編譯工具(javac.exe),打包工具(jar.exe)等

JVM&JRE&JDK關(guān)系圖

在這里插入圖片描述

什么是跨平臺(tái)性?原理是什么

所謂跨平臺(tái)性,是指java語言編寫的程序,一次編譯后,可以在多個(gè)系統(tǒng)平臺(tái)上運(yùn)行。

實(shí)現(xiàn)原理:Java程序是通過java虛擬機(jī)在系統(tǒng)平臺(tái)上運(yùn)行的,只要該系統(tǒng)可以安裝相應(yīng)的java虛擬機(jī),該系統(tǒng)就可以運(yùn)行java程序。

Java語言有哪些特點(diǎn)

簡單易學(xué)(Java語言的語法與C語言和C++語言很接近)

面向?qū)ο螅ǚ庋b,繼承,多態(tài))

平臺(tái)無關(guān)性(Java虛擬機(jī)實(shí)現(xiàn)平臺(tái)無關(guān)性)

支持網(wǎng)絡(luò)編程并且很方便(Java語言誕生本身就是為簡化網(wǎng)絡(luò)編程設(shè)計(jì)的)

支持多線程(多線程機(jī)制使應(yīng)用程序在同一時(shí)間并行執(zhí)行多項(xiàng)任)

健壯性(Java語言的強(qiáng)類型機(jī)制、異常處理、垃圾的自動(dòng)收集等)

安全性

什么是字節(jié)碼?采用字節(jié)碼的最大好處是什么

字節(jié)碼:Java源代碼經(jīng)過虛擬機(jī)編譯器編譯后產(chǎn)生的文件(即擴(kuò)展為.class的文件),它不面向任何特定的處理器,只面向虛擬機(jī)。

采用字節(jié)碼的好處:

Java語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時(shí)又保留了解釋型語言可移植的特點(diǎn)。所以Java程序運(yùn)行時(shí)比較高效,而且,由于字節(jié)碼并不專對(duì)一種特定的機(jī)器,因此,Java程序無須重新編譯便可在多種不同的計(jì)算機(jī)上運(yùn)行。

先看下java中的編譯器和解釋器:

Java中引入了虛擬機(jī)的概念,即在機(jī)器和編譯程序之間加入了一層抽象的虛擬機(jī)器。這臺(tái)虛擬的機(jī)器在任何平臺(tái)上都提供給編譯程序一個(gè)的共同的接口。編譯程序只需要面向虛擬機(jī),生成虛擬機(jī)能夠理解的代碼,然后由解釋器來將虛擬機(jī)代碼轉(zhuǎn)換為特定系統(tǒng)的機(jī)器碼執(zhí)行。在Java中,這種供虛擬機(jī)理解的代碼叫做字節(jié)碼(即擴(kuò)展為.class的文件),它不面向任何特定的處理器,只面向虛擬機(jī)。每一種平臺(tái)的解釋器是不同的,但是實(shí)現(xiàn)的虛擬機(jī)是相同的。Java源程序經(jīng)過編譯器編譯后變成字節(jié)碼,字節(jié)碼由虛擬機(jī)解釋執(zhí)行,虛擬機(jī)將每一條要執(zhí)行的字節(jié)碼送給解釋器,解釋器將其翻譯成特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行,這就是上面提到的Java的特點(diǎn)的編譯與解釋并存的解釋。

Java源代碼---->編譯器---->jvm可執(zhí)行的Java字節(jié)碼(即虛擬指令)---->jvm---->jvm中解釋器----->機(jī)器可執(zhí)行的二進(jìn)制機(jī)器碼---->程序運(yùn)行。

什么是Java程序的主類?應(yīng)用程序和小程序的主類有何不同?

一個(gè)程序中可以有多個(gè)類,但只能有一個(gè)類是主類。在Java應(yīng)用程序中,這個(gè)主類是指包含main()方法的類。而在Java小程序中,這個(gè)主類是一個(gè)繼承自系統(tǒng)類JApplet或Applet的子類。應(yīng)用程序的主類不一定要求是public類,但小程序的主類要求必須是public類。主類是Java程序執(zhí)行的入口點(diǎn)。

Java應(yīng)用程序與小程序之間有那些差別?

簡單說應(yīng)用程序是從主線程啟動(dòng)(也就是main()方法)。applet小程序沒有main方法,主要是嵌在瀏覽器頁面上運(yùn)行(調(diào)用init()線程或者run()來啟動(dòng)),嵌入瀏覽器這點(diǎn)跟flash的小游戲類似。

Java和C++的區(qū)別

都是面向?qū)ο蟮恼Z言,都支持封裝、繼承和多態(tài)

Java不提供指針來直接訪問內(nèi)存,程序內(nèi)存更加安全

Java的類是單繼承的,C++支持多重繼承;

雖然Java的類不可以多繼承,但是接口可以多繼承。

Java有自動(dòng)內(nèi)存管理機(jī)制,不需要程序員手動(dòng)釋放無用內(nèi)存

Oracle JDK 和 OpenJDK 的對(duì)比

Oracle JDK版本將每三年發(fā)布一次,而OpenJDK版本每三個(gè)月發(fā)布一次;

OpenJDK 是一個(gè)參考模型并且是完全開源的,而Oracle JDK是OpenJDK的一個(gè)實(shí)現(xiàn),并不是完全開源的;

Oracle JDK 比 OpenJDK 更穩(wěn)定。OpenJDK和Oracle JDK的代碼幾乎相同,但Oracle JDK有更多的類和一些錯(cuò)誤修復(fù)。因此,如果您想開發(fā)企業(yè)/商業(yè)軟件,我建議您選擇Oracle JDK,因?yàn)樗?jīng)過了徹底的測試和穩(wěn)定。某些情況下,有些人提到在使用OpenJDK 可能會(huì)遇到了許多應(yīng)用程序崩潰的問題,但是,只需切換到Oracle JDK就可以解決問題;

在響應(yīng)性和JVM性能方面,Oracle JDK與OpenJDK相比提供了更好的性能;

Oracle JDK不會(huì)為即將發(fā)布的版本提供長期支持,用戶每次都必須通過更新到最新版本獲得支持來獲取最新版本;

Oracle JDK根據(jù)二進(jìn)制代碼許可協(xié)議獲得許可,而OpenJDK根據(jù)GPL v2許可獲得許可。

原文鏈接:https://blog.csdn.net/ThinkWon/article/details/104390612

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • SpringBoot 接口開發(fā)教程(httpclient客戶端)

    SpringBoot 接口開發(fā)教程(httpclient客戶端)

    這篇文章主要介紹了SpringBoot 接口開發(fā)教程(httpclient客戶端),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問題以及解決

    kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問題以及解決

    這篇文章主要介紹了kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問題以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 如何用Java Stream寫出既高雅又裝*的代碼

    如何用Java Stream寫出既高雅又裝*的代碼

    如何讓同事看不懂你寫的代碼,然后覺得你非常牛逼,這里用到了stream()與Lambda,需要有點(diǎn)基礎(chǔ),沒基礎(chǔ)你炫個(gè)🔨優(yōu)雅永不過時(shí)~ 看下面文章時(shí)記得穿燕尾服,拿高腳杯
    2021-08-08
  • Springboot @WebFilter無法注入其他Bean的示例問題

    Springboot @WebFilter無法注入其他Bean的示例問題

    這篇文章主要介紹了Springboot @WebFilter無法注入其他Bean的示例問題,本文通過示例代碼給大家分享解決方法,需要的朋友可以參考下
    2021-09-09
  • Java設(shè)計(jì)模式之模板方法詳解

    Java設(shè)計(jì)模式之模板方法詳解

    模板方法的概念:定義了一個(gè)操作中的算法的骨架,而將部分步驟的實(shí)現(xiàn)在子類中完成。模板方法模式使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟
    2022-07-07
  • Java實(shí)現(xiàn)RSA加密工具類

    Java實(shí)現(xiàn)RSA加密工具類

    這篇文章主要介紹了Java如何實(shí)現(xiàn)RSA加密工具類,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • Idea打包springboot項(xiàng)目沒有.original文件解決方案

    Idea打包springboot項(xiàng)目沒有.original文件解決方案

    這篇文章主要介紹了Idea打包springboot項(xiàng)目沒有.original文件解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java適配器模式的實(shí)現(xiàn)及應(yīng)用場景

    Java適配器模式的實(shí)現(xiàn)及應(yīng)用場景

    適配器模式是Java中一種常用的設(shè)計(jì)模式,它通過將一個(gè)類的接口轉(zhuǎn)換成客戶端所期望的另一種接口來實(shí)現(xiàn)不同接口之間的兼容性。適配器模式主要應(yīng)用于系統(tǒng)的接口不兼容、需要擴(kuò)展接口功能以及需要適應(yīng)不同環(huán)境的場景
    2023-04-04
  • Java中的DecimalFormat用法解析

    Java中的DecimalFormat用法解析

    這篇文章主要介紹了Java中的DecimalFormat用法解析,DecimalFormat是Java中用于格式化數(shù)字的類,它提供了一種簡單而靈活的方式來格式化數(shù)字,包括指定小數(shù)位數(shù)、千位分隔符、貨幣符號(hào)等,需要的朋友可以參考下
    2023-10-10
  • Java深入探索線程安全和線程通信的特性

    Java深入探索線程安全和線程通信的特性

    這篇文章主要介紹了Java線程安全和線程通信的特性,線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會(huì)出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-05-05

最新評(píng)論

涡阳县| 咸阳市| 昌宁县| 永昌县| 陆丰市| 乐安县| 镇雄县| 南岸区| 麦盖提县| 和平县| 威海市| 岱山县| 玉龙| 托里县| 万安县| 清镇市| 贵州省| 永州市| 济宁市| 连江县| 社会| 加查县| 微山县| 淮北市| 大同市| 盘山县| 黎川县| 江津市| 海原县| 宜春市| 博湖县| 曲松县| 留坝县| 遵义市| 九寨沟县| 恩施市| 循化| 大邑县| 会理县| 海丰县| 公安县|