Java基礎(chǔ)1-環(huán)境搭建及常用概念

java語(yǔ)言簡(jiǎn)介

Java語(yǔ)言于1995年正式推出,由sun公司出品,在2009年跟隨sun公司一起被Oracle收購(gòu),目前已更新至java8版本,2016年的TIOBE編程語(yǔ)言排行中,java以18%的占有率高居第一(http://www.tiobe.com/tiobe-index/)而千年老二C語(yǔ)言只有9%的占有率,可以說java是目前最多程序員使用的語(yǔ)言。
除了因?yàn)閖ava是門好語(yǔ)言,也是因?yàn)閖ava程序員的功勞,大家不斷的造輪子,java有各種各種的庫(kù),基本你能想到的功能都能實(shí)現(xiàn),各種跨平臺(tái)應(yīng)用,從網(wǎng)站開發(fā),到后臺(tái)開發(fā),再到嵌入式開發(fā)(如手機(jī)),程序員越來越離不開java,因?yàn)樗刑喑墒斓慕鉀Q方案了,放棄java,相當(dāng)于你放棄了一條通往快速開發(fā)的捷徑。

java開發(fā)環(huán)境搭建

想要運(yùn)行java程序,需要安裝JRE,java運(yùn)行時(shí)
若想進(jìn)行java程序開發(fā),需要安裝JDK,java開發(fā)工具
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
JDK包含JRE,所以我們要開發(fā)程序,在官網(wǎng)下載最新版JDK即可

安裝JDK后,配置java環(huán)境變量
1.右鍵我的電腦->屬性->高級(jí)->環(huán)境變量
2.新建系統(tǒng)變量JAVA_HOME和CLASSPATH
變量名(N):JAVA_HOME 變量值(V):C:\Program Files\Java\jdk1.8.0 (jdk安裝目錄) 變量名(N):CLASSPATH 變量值(V):.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3.選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量,把jdk安裝路徑中bin目錄的絕對(duì)路徑,添加到Path變量的值中。
變量名(N):Path 變量值(V):%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

配置完成,在命令控制臺(tái)輸入java -version 若能顯示java版本,則成功了。
此時(shí)隨手寫一個(gè)類Hello.java
public class Hello{ public static void main(String[] args){ System.out.println(“hello!”); } }

進(jìn)入類所在目錄,控制臺(tái)輸入
javac Hello.java //編譯
Java Hello //運(yùn)行
控制臺(tái)成功輸出 hello!
第一個(gè)java程序完成了

ubuntu系統(tǒng)的環(huán)境搭建請(qǐng)參考這文章
http://blog.csdn.net/forgot2015/article/details/54340888

java IDE介紹

當(dāng)編寫大型java程序時(shí),一般就要用到IDE工具了,這些集成開發(fā)環(huán)境提供許多方便的功能,如代碼補(bǔ)全,調(diào)試工具,各種快捷鍵和插件等等。
也有一些輕量的支持各種插件的文檔編輯器,如vim,emacs,vscode,atom等等

netbeans

免費(fèi), sun公司出品(java也是sun公司出品),2009年被oracle甲骨文收購(gòu),慢慢沒落,現(xiàn)在用的人比較少,有各種語(yǔ)言插件
https://netbeans.org/

eclipse

免費(fèi),IBM創(chuàng)建,目前由Eclipse基金會(huì)管理,是當(dāng)前最多人用的java IDE,同樣有各種語(yǔ)言插件
http://www.eclipse.org/downloads/eclipse-packages/

Intellij IDEA

有社區(qū)版有收費(fèi)版,jetbrains出品,也挺多人使用,支持各種語(yǔ)言插件,某寶幾塊錢一個(gè)年度激活碼
https://www.jetbrains.com/idea/

Android Studio

免費(fèi),google出品,在IDEA社區(qū)版基礎(chǔ)上進(jìn)行改進(jìn),主要用作android開發(fā),也能做java開發(fā)
https://developer.android.google.cn/studio/index.html
如果你不知道用哪個(gè)IDE, 若做java開發(fā)推薦eclipse, android開發(fā)推薦Android Studio

一些常用概念

類:類是一個(gè)模板,它描述一類對(duì)象的行為和狀態(tài)
對(duì)象:類的一個(gè)實(shí)例,稱為一個(gè)對(duì)象
繼承:子類繼承父類之后,將擁有父類的一些公開方法和變量,java類只能繼承一個(gè)父類
封裝:設(shè)置類中域的訪問權(quán)限,給外部類提供統(tǒng)一的訪問接口,提高數(shù)據(jù)的安全性
多態(tài):結(jié)合繼承,重載等來使用,根據(jù)不同的參數(shù),調(diào)用不同的處理方法
接口:其中的方法默認(rèn)是public abstract,變量默認(rèn)是public static final,方法只能寫方法體,不能寫具體的方法實(shí)現(xiàn)。java可以實(shí)現(xiàn)多接口
抽象類:與接口類似,但子類只能繼承一個(gè)抽象類,抽象類可以包含非抽象方法和參數(shù),而包含抽象方法的類需要轉(zhuǎn)為抽象類
方法重載:根據(jù)傳入的不同參數(shù),調(diào)用不同方法。 方法名必須同,傳入?yún)?shù)必須不同,訪問權(quán)限可修改,返回參數(shù)可修改
方法重寫:繼承父類后,重寫父類方法來實(shí)現(xiàn)不同的功能。 方法名必須同,傳入?yún)?shù)必須同,訪問權(quán)限要大于等于父類,拋出異常要小于等于父類,返回值必須相同,@Override原來是給編譯器看的,并不會(huì)真的運(yùn)行到程序里,而這個(gè)是為了讓編譯器幫你檢查名字有沒有拼對(duì),所以其實(shí)不寫也可以,但如果不寫,而你不小心把重寫的方法名字寫錯(cuò)了,那就尷尬了

常用縮寫

Java SE Java Standard Edition,標(biāo)準(zhǔn)版本,一般我們下載的jdk是這個(gè)
Java ME Java Micro Edition , 微版本,用于嵌入式開發(fā)
Java EE Java Enterprise Edition,企業(yè)版,用作企業(yè)開發(fā)
J2EE(同上):Java 2 Platform Enterprise Edition,Java2平臺(tái)企業(yè)版
JVM:java virtual machine,java虛擬機(jī)
JRE:java runtime environment,java運(yùn)行環(huán)境
JDK:java development kit,java開發(fā)工具包
OpenJDK:JDK開源版本
JSON:JavaScript Object Notation,一種輕量級(jí)的數(shù)據(jù)交換格式
JDBC:Java Database Connectivity,java數(shù)據(jù)庫(kù)連接
JNI:Java Native Interface,JAVA本地調(diào)用
JSP:Java Server Pages ,Java服務(wù)器網(wǎng)頁(yè)
Java IDL:Java Interface Definition Language,提供與CORBA(Common Object Request Broker Architecture)的無(wú)縫的互操作性。這使得Java能集成異構(gòu)的商務(wù)信息資源。
JavaBean:本質(zhì)上是一個(gè)類,封裝了一些參數(shù)和getter、setter方法
JavaFX:一個(gè)以Java為基礎(chǔ)構(gòu)建的富客戶端平臺(tái),對(duì)手是Flash、Silverlight
JavaScript:直譯式腳本語(yǔ)言,是一種動(dòng)態(tài)類型、弱類型、基于原型的語(yǔ)言,用來配合html、css寫網(wǎng)站前端,與java無(wú)關(guān),只是名字類似,部分語(yǔ)法類似
OpenGL:開放圖形庫(kù)(英語(yǔ):Open Graphics Library,縮寫為OpenGL)是個(gè)定義了一個(gè)跨編程語(yǔ)言、跨平臺(tái)的應(yīng)用程序界面(API)的規(guī)范,它用于生成二維、三維圖像
ASP:Active Server Pages ,活動(dòng)服務(wù)器網(wǎng)頁(yè),微軟的
ASPX:Active Server Page Extended File 是微軟的在服務(wù)器端運(yùn)行的動(dòng)態(tài)網(wǎng)頁(yè)文件
IIS:Internet Information Server ,互聯(lián)網(wǎng)信息服務(wù)器,微軟的產(chǎn)品
API:Application Programming Interface,應(yīng)用程序接口
CGI:Common Gateway Interface,通用網(wǎng)關(guān)接口
DOM:Document Object Model,文檔對(duì)象模型
EJB:Enterprise JavaBeans,使得開發(fā)者方便地創(chuàng)建、部署和管理跨平臺(tái)的基于組件的企業(yè)應(yīng)用
GUI:Graphical User Interface,圖形用戶界面
IDE:Integrated Development Environment,集成開發(fā)環(huán)境
XML:Extensible Markup Language,擴(kuò)展標(biāo)記語(yǔ)言
POJO:Plain Old Java Objects
IoC:Inversion of Control,控制反轉(zhuǎn),是說對(duì)象的控制權(quán)進(jìn)行轉(zhuǎn)移
AOP:Aspect Oriented Programming,面向切面編程
AWT:Abstract Window ToolKit,抽象窗口工具包,是java最早的用于編寫圖形節(jié)目應(yīng)用程序的開發(fā)包。
Swing:一個(gè)為Java設(shè)計(jì)的GUI工具包,是為了解決AWT存在的問題而新開發(fā)的包,它以 AWT 為基礎(chǔ)的。
Servlet:用Java編寫的服務(wù)器端程序
Applet:用Java語(yǔ)言編寫的小應(yīng)用程序,可以直接嵌入到網(wǎng)頁(yè)中,并能夠產(chǎn)生特殊的效果

學(xué)習(xí)常用網(wǎng)站

github https://github.com/
這里有各種成熟的輪子
stackoverflow http://stackoverflow.com/
編程的世界,有問題不是問百度,而是問stackoverflow,若解決不了再問谷歌
w3cschool http://www.w3cschool.cn/java/
這里有各種編程語(yǔ)言的基礎(chǔ)語(yǔ)法知識(shí)
慕課網(wǎng) http://www.imooc.com
有時(shí)候文字看不懂,看下視頻解說會(huì)好理解些

常用框架

不要重復(fù)造輪子,java有很多成熟的框架,一般我們直接應(yīng)用就行了,實(shí)在滿足不了需求才會(huì)自己造輪子,當(dāng)然大公司都是有內(nèi)部框架的

Spring

用來取代EJB,是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架
Java開源J2EE框架,Spring是一個(gè)解決了許多在J2EE開發(fā)中常見的問題的強(qiáng)大框架。Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無(wú)二的。Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡(jiǎn)單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個(gè)一致的編程模型。Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語(yǔ)言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)–如果你需要–還能實(shí)現(xiàn)你自己的 aspects。這個(gè)框架足夠強(qiáng)大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。Spring還提供了可以和IoC容器集成的強(qiáng)大而靈活的MVCWeb框架?!維pringIDE:Eclipse平臺(tái)下一個(gè)輔助開發(fā)插件】。

SpringMVC

用來取代Struts,是一個(gè)輕量級(jí)的MVC框架

MyBatis

用來取代Hibernate,Java開源持久層框架,使用ibatis提供的ORM機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的Java對(duì)象,這一層與通過Hibernate 實(shí)現(xiàn)ORM 而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,Hibernate 會(huì)自動(dòng)生成SQL 語(yǔ)句,而ibatis 則要求開發(fā)者編寫具體的SQL語(yǔ)句。相對(duì)Hibernate等“全自動(dòng)”O(jiān)RM機(jī)制而言,ibatis 以SQL開發(fā)的工作量和數(shù)據(jù)庫(kù)移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。作為“全自動(dòng)”O(jiān)RM 實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis 的出現(xiàn)顯得別具意義。

Hibernate

對(duì)JDBC訪問數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼
Java開源持久層框架,Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Eclipse平臺(tái)下的Hibernate輔助開發(fā)工具:【Hibernate Synchronizer】【MiddlegenIDE】

Struts

Java開源Web框架,Struts是一個(gè)基于SunJ2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡(jiǎn)單易用,敏捷迅速,在過去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架。

SSH的誕生,其實(shí)就是對(duì) servlet的簡(jiǎn)陋的不滿,以及 java EE中 EJB的不滿而誕生的。
其中的struts or spring MVC ,是對(duì)請(qǐng)求路徑,數(shù)據(jù)解析等操作提供了更高層次的抽象,我相信每一個(gè)在web.xml中配置上百個(gè)路徑映射的人都深惡痛絕。
第二個(gè) S ,早先 Spring 的提出就是為了解決 java項(xiàng)目中各種對(duì)象之間的依賴和解耦所提出的方案。目前的Spring 已經(jīng)自成一體了,已經(jīng)成為了另一種事實(shí)上的標(biāo)準(zhǔn)。
第三個(gè) H,hibernate (其實(shí)大家用mybatis比較多),是為了簡(jiǎn)化 java與 關(guān)系性數(shù)據(jù)庫(kù)交互而誕生的。如果你用過原生的JDBC 操作數(shù)據(jù)庫(kù),特別是存在上百個(gè)sql的時(shí)候,想跳樓的想法會(huì)時(shí)不時(shí)冒出來。畢竟數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)和 java 能操作的對(duì)象是兩碼事,為了在其中進(jìn)行轉(zhuǎn)換,無(wú)數(shù)先輩折戟沉沙,比如 enum 在數(shù)據(jù)庫(kù)中的存儲(chǔ)。

SSH框架:Spring+Struts+Hibernate
目前推薦更好更新的組合:Spring+SpringMVC+Mybatis

部分內(nèi)容來自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除
水平有限,有錯(cuò)懇請(qǐng)不吝賜教,謝謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容