第一篇:Java學(xué)習(xí)筆記三_接口
靜態(tài)(static)字段或方法:
在全局唯一,能夠被其他共享;
類寫好后,在函數(shù)運(yùn)行的時(shí)候不需要實(shí)例化,就已經(jīng)分配好類存空間;
Java代碼編譯成.Class代碼jit機(jī)器代碼執(zhí)行
類加載器ClassLoader
普通的類寫好后如果沒有字段static則不能直接調(diào)用該類中的屬性或方法,必須先實(shí)例化;相反加了static后就可以不需要實(shí)例化,就可以訪問屬性和方法;
有個(gè)缺點(diǎn)數(shù)據(jù)變得不安全;
publc class Test {
public int a=10;
{
a=11;
System.out.println(“OK~!”);
}//初始化塊在構(gòu)造函數(shù)之前執(zhí)行
Public void Test(){
System.out.println(a);
}
}
final:
final 定義的類不能被繼承;
final定義的方法不能被覆蓋;
final定義的變量/屬性是一個(gè)常數(shù);
內(nèi)部類:
要想訪問內(nèi)部類的時(shí)候,內(nèi)部類也必須實(shí)例化;如下:
classAChild 是classA內(nèi)部類,則實(shí)例化的格式:
classA classA=new classA();
classA.ClassAChildclassAChild=new classA().newclassAChild();
內(nèi)部類優(yōu)先使用該方法的參數(shù),其次是內(nèi)部類外部的參數(shù);內(nèi)部類中private參數(shù)也能被外部類訪問;
要想在不同的包之間訪問別的包中的內(nèi)部類,就講該內(nèi)部類定義成public 類型(否則是default)
局部內(nèi)部類:
方法中的類(只能在該方法中使用該類);
匿名內(nèi)部類(優(yōu)點(diǎn):只在這個(gè)地方用一次,不需要重新定義一個(gè)類):
IA a = new IA(){
@override
Public void funcA(){
……………………
};
A.funcA();
}
//期中IA為一個(gè)接口
abstract 抽象類不能實(shí)例化,必須先從一個(gè)父類派生出來;
也可以用匿名內(nèi)部類的方式實(shí)現(xiàn);
弄清楚存在哪些異常,進(jìn)行捕獲,用多個(gè)catch多重catch的順序要記得不能隨便顛倒,否則會(huì)出問題,異常 子類放在前面,最后放的是父類Exception
try catch 多重嵌套:
第二篇:java學(xué)習(xí)筆記
jdk(java development kit)
有如下公司或組織開發(fā)jdk
sun jdk
ibm jdk
bea jrocket
gun jdk
其中ibm的jdk包含的jvm(java virtual machine)運(yùn)行效率要比sun jdk包含的jvm高出許多。而專門運(yùn)行在x86平臺(tái)的jrocket在服務(wù)端運(yùn)行效率也要比sun jdk好很多。但不管怎么說,我們還是需要先把sun jdk掌握好。
1、jdk的下載和安裝
jdk又叫做j2se(java2 sdk standard edition),可以從sun的java網(wǎng)站上下載到,http://java.sun.com/j2se/downloads.html,jdk當(dāng)前最新的版本是j2sdk1.4.2,建議下載該版本的jdk,下載頁面在這里:http://java.sun.com/j2se/1.4.2/download.html。
下載好的jdk是一個(gè)可執(zhí)行安裝程序,默認(rèn)安裝完畢后會(huì)在c:program filesjava目錄下安裝一套jre(供瀏覽器來使用),在c:j2sdk1.4.2下安裝一套jdk(也包括一套jre)。然后我們需要在環(huán)境變量path的最前面增加java的路徑c:j2sdk1.4.2bin。這樣jdk就安裝好了。
2、java documentation
java編程手冊,java核心所在3、java 應(yīng)用服務(wù)器
a、tomcat
b、ibm webshpere
c、bea weblogic
d、免費(fèi) jboss4、java應(yīng)用的運(yùn)行環(huán)境
應(yīng)用服務(wù)器(app server)
app server是運(yùn)行java企業(yè)組件的平臺(tái),構(gòu)成了應(yīng)用軟件的主要運(yùn)行環(huán)境。當(dāng)前主流的app server是bea公司的weblogic server和ibm公司的websphere以及免費(fèi)的jboss,選擇其中一個(gè)進(jìn)行學(xué)習(xí)就可以了,個(gè)人推薦weblogic,因?yàn)樗捏w系結(jié)構(gòu)更加干凈,開發(fā)和部署更加方便,是java企業(yè)軟件開發(fā)人員首選的開發(fā)平臺(tái)。下面簡要介紹幾種常用的app server:
1、tomcat
tomcat嚴(yán)格意義上并不是一個(gè)真正的app server,它只是一個(gè)可以支持運(yùn)行serlvet/jsp的web容器,不過tomcat也擴(kuò)展了一些app server的功能,如jndi,數(shù)據(jù)庫連接池,用戶事務(wù)處理等等。tomcat被非常廣泛的應(yīng)用在中小規(guī)模的java web應(yīng)用中,因此本文做一點(diǎn)下載、安裝和配置tomcat的介紹:
tomcat是apache組織下jakarta項(xiàng)目下的一個(gè)子項(xiàng)目,它的主網(wǎng)站是:http://jakarta.apache.org/tomcat/,tomcat最新版本是tomcat4.1.27,軟件下載的連接是:http://
在啟用這兩個(gè)管理工具之前,先需要手工配置一下管理員用戶和口令。用一個(gè)文本工具打開catalina_homeconftomcat-users.xml這個(gè)文件,加入如下幾行:
這樣用戶“robbin”就具備了超級管理員權(quán)限。重新啟動(dòng)tomcat以后,你就可以使用該用戶來登陸如上的兩個(gè)管理工具,通過web方式進(jìn)行tomcat的配置和管理了。
2、bea weblogic
weblogic可以到bea的網(wǎng)站上免費(fèi)注冊之后下載到最新的weblogic8.1企業(yè)版,license可以免費(fèi)使用1年時(shí)間,其實(shí)這已經(jīng)完全足夠了。weblogic的下載連接:http://commerce.bea.com/index.jsp,.../edocs.bea.com/。
3、ibm webshpere
websphere同樣可以下載到免費(fèi)的試用版本,到ibm的developerworks網(wǎng)站可以看到websphere試用產(chǎn)品的下載和相關(guān)的websphere的資料,developerworks中文網(wǎng)站的連接是:http://。
4、jboss
jboss是免費(fèi)開源的app server,可以免費(fèi)的從jboss網(wǎng)站下載:http://,然...n.com/idea.html
四、java應(yīng)用的運(yùn)行環(huán)境
java的應(yīng)用可以簡單分為以下幾個(gè)方面:
1、java的桌面應(yīng)用
桌面應(yīng)用一般僅僅需要jre的支持就足夠了。
2、java web應(yīng)用
java的web應(yīng)用至少需要安裝jdk和一個(gè)web容器(例如tomcat),以及一個(gè)多用戶數(shù)據(jù)庫,web應(yīng)用至少分為三層:
browser層:瀏覽器顯示用戶頁面
web層:運(yùn)行servlet/jsp
db層:后端數(shù)據(jù)庫,向java程序提供數(shù)據(jù)訪問服務(wù)
3、java企業(yè)級應(yīng)用
企業(yè)級應(yīng)用比較復(fù)雜,可以擴(kuò)展到n層,最簡單情況會(huì)分為4層:
browser層:瀏覽器顯示用戶頁面
client層:java客戶端圖形程序(或者嵌入式設(shè)備的程序)直接和web層或者ejb層交互
web層:運(yùn)行servlet/jsp
ejb層:運(yùn)行ejb,完成業(yè)務(wù)邏輯運(yùn)算
db層:后端數(shù)據(jù)庫,向java程序提供數(shù)據(jù)訪問服務(wù)
4、java嵌入式應(yīng)用
java嵌入式應(yīng)用是一個(gè)方興未艾的領(lǐng)域,從事嵌入式開發(fā),需要從sun下載j2me開發(fā)包,j2me包含了嵌入式設(shè)備專用虛擬機(jī)kvm,和普通的jdk中包含的jvm有所不同。另外還需要到特定的嵌入式廠商那里下載模擬器。
第三篇:java學(xué)習(xí)筆記(更新)
1.JSP內(nèi)置對象分類
與Servlet有關(guān)的隱含對象
page、config
與Input/Output有關(guān)的隱含對象
out、request、response
JSP執(zhí)行時(shí),提供有關(guān)Context的隱含對象
session、application、pageContext 與Error有關(guān)的隱含對象
exception
2.get與post區(qū)別
get方式:將表單內(nèi)容經(jīng)過編碼之后,通過URL發(fā)送,使用get方式發(fā)送時(shí)有255個(gè)字符的限制(可以在地址欄里看到方式和地點(diǎn))
post方式:將表單的內(nèi)容通過http發(fā)送,post沒有字符長度的限制(在地址欄里看不到表單提交的信息
3.forward與sendredirect區(qū)別 服務(wù)器端跳轉(zhuǎn)
使用
使用服務(wù)器端跳轉(zhuǎn),可以通過
response.sendRedirect(“uri”);地址欄改變的跳轉(zhuǎn)
所有代碼執(zhí)行完畢之后再跳轉(zhuǎn)
使用response時(shí),不能保存request屬性
使用客戶端跳轉(zhuǎn),可以通過重寫URL的方式來傳遞參數(shù) 4.JSP內(nèi)置對象session
session對象用來存儲(chǔ)有關(guān)用戶會(huì)話的所有信息直到它的生命周期超時(shí)或被人為釋放掉為止。
設(shè)置session session.setAttribute(“name”, “admin”);根據(jù)名稱去獲取session中存放對象的值
String name =(String)session.getAttribute(“name”);根據(jù)名稱去刪除session中存放對象的值 session.removeAttribute(“name”);用戶注銷功能的實(shí)現(xiàn) session.invalidate();5.JDBC API JDBC API可做三件事:與數(shù)據(jù)庫建立連接、執(zhí)行SQL語句、處理結(jié)果 DriverManager :依據(jù)數(shù)據(jù)庫的不同,管理JDBC驅(qū)動(dòng) Connection :負(fù)責(zé)連接數(shù)據(jù)庫并擔(dān)任傳送數(shù)據(jù)的任務(wù)
Statement(PreparedStatement):由 Connection 產(chǎn)生、負(fù)責(zé)執(zhí)行SQL語句 ResultSet:負(fù)責(zé)保存Statement執(zhí)行后所產(chǎn)生的查詢結(jié)果
JDBC應(yīng)用開始->裝入JDBC驅(qū)動(dòng)程序
->創(chuàng)建與數(shù)據(jù)庫的連接->創(chuàng)建語句對象——Statement或PreparedStatement->利用語句對象執(zhí)行SQL語句,得到結(jié)果
->處理結(jié)果 JDBC應(yīng)用結(jié)束 6.MVC設(shè)計(jì)模式
模型(Model)JavaBean 代表應(yīng)用程序狀態(tài)和業(yè)務(wù)邏輯
視圖(View)JSP 提供可交互的客戶界面,向客戶顯示模型數(shù)據(jù)
控制器(Controller)Servlet 根據(jù)客戶的請求來操縱模型,并把結(jié)果經(jīng)由視圖展現(xiàn)給客戶
Model I設(shè)計(jì)模式
JSP+JavaBean(View + Model)
Model II設(shè)計(jì)模式
JSP+JavaBean+servlet(View + Model+controller)
Model I和Model II的對比
Model I缺少控制器(Controller),不易維護(hù)和擴(kuò)展 Model I開發(fā)速度快,適用于開發(fā)中、小型項(xiàng)目
Model II 代碼的重用性 有利于開發(fā)的分工
各司其職、互不干涉 7.EL表達(dá)式
由于jsp標(biāo)準(zhǔn)動(dòng)作的局限,一般是操作JavaBean的屬性
JavaBean的屬性只能為基本數(shù)據(jù)類型不能進(jìn)行邏輯操作,而el卻可以精確的訪問存儲(chǔ)對象,Bean屬性的簡略記法,空值取代錯(cuò)誤消息 優(yōu)點(diǎn)
代替復(fù)雜代碼,省去條件判斷 訪問Bean的屬性 Bean屬性的簡略記法
以輸出MVC中的內(nèi)容,代碼簡單 8.EL隱式對象
pageScope:范圍和JSP的page相同,只限于當(dāng)前頁面 requestScope:范圍和JSP的page相同,范圍限于一次請求 sessionScope:范圍和JSP的session相同,范圍為一次會(huì)話
applicationScope:從服務(wù)器一開始執(zhí)行服務(wù),到服務(wù)器關(guān)閉為止 9.jsp中動(dòng)態(tài)include和靜態(tài)的include 區(qū)別
動(dòng)態(tài)INCLUDE總是會(huì)檢查所含文件中的變化,適合用于包含動(dòng)態(tài)頁面,并且可以帶參數(shù)。
靜態(tài)include偽碼實(shí)現(xiàn),不會(huì)檢查所含文件的變化,適用于包含靜態(tài)頁面 10.Servlet和JSP的關(guān)系
Servlet是JSP的早期版本,在JSP中,更加注重頁面的表現(xiàn),而在Servlet中則更注重業(yè)務(wù)邏輯的實(shí)現(xiàn)。
同時(shí),JSP只能處理瀏覽器的請求,而Servlet則可以處理一個(gè)客戶端的應(yīng)用程序請求。因此,Servlet加強(qiáng)了Web服務(wù)器的功能。10.Servlet的生命周期
Servlet是服務(wù)器端運(yùn)行的。Servlet是javax.servlet包中HttpServlet類的子類,由服務(wù)器完成該子類的創(chuàng)建和初始化。
Servlet的生命周期主要由3個(gè)過程組成。
1、init()方法:服務(wù)器初始化Servlet。
2、service()方法:初始化完畢,Servlet對象調(diào)用該方法相應(yīng)客戶的請求。
3、destroy()方法:調(diào)用該方法消滅Servlet對象。其中,init()方法只在Servlet第一次被請求加載的時(shí)候被調(diào)用一次,當(dāng)有客戶再請求Servlet服務(wù)時(shí),Web服務(wù)器將啟動(dòng)一個(gè)新的線程,在該線程中,調(diào)用service方法相應(yīng)客戶的請求。11.JSP 6種基本動(dòng)作
jsp:include:在頁面被請求的時(shí)候引入一個(gè)文件。jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。jsp:setProperty:設(shè)置JavaBean的屬性。jsp:getProperty:輸出某個(gè)JavaBean的屬性。jsp:forward:把請求轉(zhuǎn)到一個(gè)新的頁面。
jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記
12.Request對象的主要方法:
setAttribute(String name,Object):設(shè)置名字為name的request的參數(shù)值 getAttribute(String name):返回由name指定的屬性值
getAttributeNames():返回request對象所有屬性的名字集合,結(jié)果是一個(gè)枚舉的實(shí)例 getCookies():返回客戶端的所有Cookie對象,結(jié)果是一個(gè)Cookie數(shù)組 getCharacterEncoding():返回請求中的字符編碼方式 getContentLength():返回請求的Body的長度
getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息
getHeaders(String name):返回指定名字的request Header的所有值,結(jié)果是一個(gè)枚舉的實(shí)例
getHeaderNames():返回所以request Header的名字,結(jié)果是一個(gè)枚舉的實(shí)例 getInputStream():返回請求的輸入流,用于獲得請求中的數(shù)據(jù) getMethod():獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法
getParameter(String name):獲得客戶端傳送給服務(wù)器端的有name指定的參數(shù)值 getParameterNames():獲得客戶端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個(gè)枚舉的實(shí)例
getParameterValues(String name):獲得有name指定的參數(shù)的所有值 getProtocol():獲取客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱 getQueryString():獲得查詢字符串
getRequestURI():獲取發(fā)出請求字符串的客戶端地址 getRemoteAddr():獲取客戶端的IP地址 getRemoteHost():獲取客戶端的名字
getSession([Boolean create]):返回和請求相關(guān)Session getServerName():獲取服務(wù)器的名字
getServletPath():獲取客戶端所請求的腳本文件的路徑 getServerPort():獲取服務(wù)器的端口號
removeAttribute(String name):刪除請求中的一個(gè)屬性 13.會(huì)話跟蹤技術(shù)
Session 隱藏表單域 URL重寫 Cookie使用 14.cookie的使用
cookie是一段字符串,由HTTP支持,在客戶端可以永久保存.寫入(硬盤).每次請求,響應(yīng)中都會(huì)為cookie留有空間.Cookie cookie=new Cookie(“name”,cookie);//必須指定cookie的鍵與值,且必須為字符串.response.addcookie(cookie);
cookie.setMaxAge(3600);//以秒為單位.讀取客戶端發(fā)送過來的cookie,返回值類型為: cookie數(shù)組
request.getCookies();循環(huán)讀取鍵與值.小常識(shí):(1).一個(gè)網(wǎng)站最多向一個(gè)客戶端寫20個(gè)cookie.(2).一個(gè)客戶端最多接收300個(gè)cookie.
第四篇:java學(xué)習(xí)筆記(部分)
作業(yè):
a.登陸驗(yàn)證,SSJ 通過MySQL進(jìn)行數(shù)據(jù)校驗(yàn),如果成功轉(zhuǎn)向到main.jsp 失敗則返回。
b.登陸用戶信息存放session
Maven 搭建環(huán)境的步驟: 1).新建Maven Project
錯(cuò)誤解決 :是因?yàn)闆]有web.xml,再webapp中新建一個(gè)即可
引入spring環(huán)境 修改pom中的依賴 spring-context
引入spring MVC模塊
spring webmvc
配置文件:springmvc-servlet.xml
加載 spring 上下文
Web.xmlContextLoaderListener struts-servlet.xml
配置springmvc前端控制器 Web.xml
配置掃描包:
錯(cuò)誤:The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path通過引入servlet-api 模塊
配置jetty插件
80
運(yùn)行程序
測試訪問:http://localhost/list
至此,springmvc的環(huán)境就搭建成功了
完成作業(yè)
因?yàn)橐ㄟ^數(shù)據(jù)庫驗(yàn)證,則需要引入jdbc/druid組件 spring-jdbc/druid/mysql connector j
配置數(shù)據(jù)源:
配置JDBCTemplete組件
一/深入了解spring MVC
@RequestMappging注解
可以指定處理的請求是什么類型的
@RequestMapping注解可以放在類上面,標(biāo)識(shí)一個(gè)父路徑相當(dāng)于struts2 @NameSpace
正式的寫法:
二/SSJ集成
第五篇:java學(xué)習(xí)筆記總結(jié)
java 學(xué)習(xí)筆記總結(jié)
1.Java是什么呢?
Java不僅是一門語言,而且是一個(gè)完整的平臺(tái),有一個(gè)龐大的庫,其中包含了很多可重用的代碼和一個(gè)提供安全性、跨操作系統(tǒng)的可移植性以及自動(dòng)垃圾收集等服務(wù)的執(zhí)行環(huán)境。
2.JDK 和 JRE 是什么?
JDK:全稱是 Java Development Kit,這是我們編寫java程序的開發(fā)人員需要的。我們首先要下載和安裝JDK,然后設(shè)置環(huán)境變量,具體操作可以加我扣:七零五叁零六久久久
JRE:全稱是 Java Runtime Environment,它包含虛擬機(jī)但不包含編譯器,這是運(yùn)行java程序的用戶需要的環(huán)境
3.來個(gè)Hello World看看吧?
照例先創(chuàng)建一個(gè)類HelloWorld.java,源代碼如下: /** * @author 老孫
*/ public class HelloWorld {
public static void main(String[] args){
System.out.println(“Hello World”);
} } Java類名一般是以大寫字母開頭的名詞,多個(gè)單詞的話每個(gè)單詞首字母都應(yīng)該大寫。Java源代碼以.java作為擴(kuò)展名,而且文件名必須和文件里的公共類同名。
4.怎么用命令行運(yùn)行java程序?
比如上面我們編寫了一個(gè)類叫做HelloWorld.java,首先打開一個(gè)終端;
? 然后進(jìn)入到HelloWorld.java類所在的目錄; ? 輸入命令 javac HelloWorld.java。javac是一個(gè)java編譯器,注意該命令需要的是文件名,也就是要帶著.java后綴。? 輸入命令 java HelloWorld。java啟動(dòng)Java虛擬機(jī),該命令只需要類名,不需要帶著.java或者.class等后綴。?
5.Java代碼怎么加注釋?
// 單行注釋 和 /*{……}*/ 長篇注釋,這兩種方式很多語言都一樣,沒什么特別強(qiáng)調(diào)的。
另外還有一種注釋可以方便的生成java doc文檔,以/** 開頭,以*/結(jié)束。
6.Java的幾種基本數(shù)據(jù)類型是?
4種整型:byte(1字節(jié)),short(2字節(jié)),int(4字節(jié)),long(4字節(jié))。(PS:Java沒有無符號整型)? 2種浮點(diǎn)型:float(4字節(jié)),double(8字節(jié))? 字符類型:char ? 布爾類型:boolean
在Java種每個(gè)類型占用幾個(gè)字節(jié)是固定的,與運(yùn)行java的機(jī)器無關(guān),這點(diǎn)與C#不同,這也是Java具有可移植性的關(guān)鍵點(diǎn)。
浮點(diǎn)類型一般double比float常用,而且浮點(diǎn)型存在四舍五入的情況,如果用在對精確度要求高的商業(yè)場景,就得使用java.math.BigDecimal類型了。我們寫個(gè)demo看看: ?
/** * @author 老孫
*/ public class DemoDouble { public static void main(String[] args){
double d1=0.05;
double d2=0.01;
double result=d1+d2;
System.out.println(result);//結(jié)果:0.***005
BigDecimal bd1=new BigDecimal(“0.05”);
BigDecimal bd2=new BigDecimal(Double.valueOf(“0.01”));
double result2=bd1.add(bd2).doubleValue();
System.out.println(result2);//結(jié)果:0.06
} }
7.Java怎么定義常量?
使用關(guān)鍵字final定義常量,之前C#用的是const關(guān)鍵字,這一點(diǎn)不同要注意一下。命名規(guī)則上,常量一般使用大寫字母,中間用下劃線分隔。例如: private static final Integer MAX_SIZE=100;
8.String字符串怎么截取子串?
Substring(beginIndex,endIndex):返回子字符串,從beginIndex到endIndex-1。String s=“你好,今天是2018年1月5日,圣誕快樂!” String date = s.substring(6,17);System.out.println(date);// 輸出:2018年1月5日
注意:該方法的返回結(jié)果不包含最后一個(gè)位置的字符。如果有問題就問我:七零五叁零六久久久 9.Java字符串怎么拼接?
①最簡單的拼接方式就是使用+符號。
②String.join(char,str1,str2….strN):靜態(tài)方法拼接字符串,用字符char分隔,將字符串進(jìn)行拼接。//拼接
String s2=String.join(“、”,“JAVA核心技術(shù)”,“JAVA編程思想”,“SpringBoot”);System.out.println(s2);//輸出:JAVA核心技術(shù)、JAVA編程思想、SpringBoot
③當(dāng)有大量字符串拼接操作的時(shí)候使用StringBuilder,這跟C#基本相同。
10.怎么判斷兩個(gè)Java字符串是否相等?
equals方法判斷兩個(gè)字符串內(nèi)容是否相等。而==判斷兩個(gè)字符串是否指向內(nèi)存中同一位置。//比較
String s3=“abc”;String s4=“abc”;String s5=new String(“abc”);String s6=new String(“abc”);System.out.println(s3==s4);//true System.out.println(s3.equals(s4));//true System.out.println(s5==s6);//false System.out.println(s5.equals(s6));//true 這個(gè)demo中s3==s4返回true,因?yàn)樵贘ava中字符串是不可修改的,編譯器有一些優(yōu)化機(jī)制讓字符串共享,所以s3和s4實(shí)際上指向了內(nèi)存中同一位置 11.Java數(shù)組有哪些常用操作?
①foreach循環(huán)數(shù)組
//foreach循環(huán)數(shù)組 int[] arr={1,3,5,7,9};for(int item:arr){ System.out.println(item);} ②打印數(shù)組元素
Arrays.toString(a):返回字符串,數(shù)組元素包含在方括號中,以逗號分隔。Arrays.deepToString(arr):用來打印多維數(shù)組。//打印數(shù)組
System.out.println(Arrays.toString(arr));//輸出 [1, 3, 5, 7, 9] int[][] arrM={{1,2,3},{11,12,13},{21,22,23}};System.out.println(Arrays.deepToString(arrM));//[[1, 2, 3], [11, 12, 13], [21, 22, 23]] ③拷貝數(shù)組元素
靜態(tài)方法Arrays.copyOf(originalArray,length):第一個(gè)參數(shù)是要拷貝的源數(shù)組,第二個(gè)元素是新數(shù)組的長度,如果第二個(gè)大于原數(shù)組長度,則自動(dòng)填充默認(rèn)值。//拷貝數(shù)組元素
int[] arr2=Arrays.copyOf(arr,arr.length);System.out.println(Arrays.toString(arr2));//輸出 [1, 3, 5, 7, 9] int[] arr3=Arrays.copyOf(arr,arr.length/2);System.out.println(Arrays.toString(arr3));//輸出 [1, 3] int[] arr4=Arrays.copyOf(arr,arr.length*2);System.out.println(Arrays.toString(arr4));//輸出 [1, 3, 5, 7, 9, 0, 0, 0, 0, 0] ④排序
靜態(tài)方法Arrays.sort()方法采用優(yōu)化后的快速排序算法對數(shù)組元素進(jìn)行排序。//排序
int[] arr6={12,4,53,78,21,943,3};Arrays.sort(arr6);System.out.println(Arrays.toString(arr6));//輸出 [3, 4, 12, 21, 53, 78, 943]
⑤查找
靜態(tài)方法Arrays.binarySearch(arr, valueToFind):二分查找,第一個(gè)參數(shù)是要查找的數(shù)組,第二個(gè)參數(shù)是要查找的目標(biāo)元素。該方法有個(gè)前提是數(shù)組必須是有序的。//查找
int index=Arrays.binarySearch(arr6,12);//輸出 2 System.out.println(index);
⑥填充數(shù)組元素
靜態(tài)方法Arrays.fill(arr,item):將數(shù)組arr每個(gè)元素都填充為item.//填充數(shù)組元素
String[] arr7=new String[5];Arrays.fill(arr7,“*”);System.out.println(Arrays.toString(arr7));//[*, *, *, *, *]
⑦比較數(shù)組
注意要使用Arrays.equals(arr1,arr2)比較數(shù)組,如果兩個(gè)數(shù)組元素全部相同,則返回true。//比較數(shù)組元素
String[] arr8={“*”,“*”,“*”,“*”,“*”,};System.out.println(arr7.equals(arr8));//false System.out.println(Arrays.equals(arr7,arr8));//true
12.日期對象LocalDate ①獲取當(dāng)前日期時(shí)間 //當(dāng)前日期
LocalDate today=LocalDate.now();
System.out.println(today);//2017-12-26
//當(dāng)前時(shí)間
LocalTime currentTime=LocalTime.now();
System.out.println(currentTime);//12:23:09.054
//當(dāng)前日期時(shí)間
LocalDateTime dateTime=LocalDateTime.now();
System.out.println(dateTime);//2017-12-26T12:23:09.054
②構(gòu)造某個(gè)指定日期
//構(gòu)造指定日期
LocalDate newYear=LocalDate.of(2018,1,1);System.out.println(newYear);//2018-01-01
③解析日期字符串,如果不合法會(huì)拋出異常。
//解析日期字符串
LocalDate date1=LocalDate.parse(“2018-12-31”);System.out.println(date1);//2018-12-31//LocalDate.parse(“2018-11-31”);//拋出異常
④獲取若干天后的某個(gè)日期 //15天后
LocalDate date15=today.plusDays(15);System.out.println(date15);//2018-01-10
⑤獲取年份、月份、日期
//獲取年、月、日
System.out.println(date15.getYear());//2018 System.out.println(date15.getMonth());//JANUARY System.out.println(date15.getMonthValue());//1 System.out.println(date15.getDayOfMonth());//10 System.out.println(date15.getDayOfWeek());//WEDNESDAY System.out.println(date15.getDayOfYear());//10 注意:使用Date對象的getYear()方法,不能獲取當(dāng)前的年份
System.out.println(new Date().getYear());//117,不是我們想要的結(jié)果2018 我們看一下該方法的源碼,計(jì)算的是當(dāng)前年份和1900年的差值
public int getYear(){ return normalize().getYear()-1900;}
大家在學(xué)習(xí)的過程中遇到任何的問題都可以咨詢我(QQ:705306999,奔跑de蝸牛)
也可以加入到我們的免費(fèi)學(xué)習(xí)交流群: 579016988(職坐標(biāo)java編程交流群2)玩微信的朋友也可以加老孫的個(gè)人微信公眾號:微信右上角點(diǎn)擊加號--添加朋友--公眾號--搜索:我是老孫(如下圖),也會(huì)不定期發(fā)送技術(shù)文章,娛樂八卦,吃喝玩樂,房產(chǎn)頭條,心靈雞湯等信息!
加圖片說明文字
注意:添加時(shí)請注明微博
移除點(diǎn)擊此處添如果大家想看老孫的直播學(xué)習(xí),可以加入咱們的免費(fèi)公開課進(jìn)行學(xué)習(xí)!騰訊課程地址:https://ke.qq.com/course/92963#tuin=2a0a2177
有的人會(huì)這樣說:“我只是在業(yè)余時(shí)間打盹而已,業(yè)余時(shí)間干嗎把自己弄得那么緊張?”
愛因斯坦就曾提出:“人的差異在于業(yè)余時(shí)間?!?/p>
一位在哈佛任教的朋友說,只要知道一個(gè)青年怎樣度過他的業(yè)余時(shí)間,就能預(yù)言出這個(gè)青年的前程怎樣。記得點(diǎn)贊和轉(zhuǎn)發(fā)哦!
片說明文字
移除點(diǎn)擊此處添加圖