中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

政府網(wǎng)站建設(shè)運(yùn)行情況寧波seo免費(fèi)優(yōu)化軟件

政府網(wǎng)站建設(shè)運(yùn)行情況,寧波seo免費(fèi)優(yōu)化軟件,域名解析怎么設(shè)置,私募網(wǎng)站建設(shè)文章目錄異常寫法JVM加載反射訪問(wèn)private調(diào)用方法動(dòng)態(tài)代理注解元數(shù)據(jù)&#xff1a;TargetRetention元注解泛型編寫泛型擦拭法局限通配符無(wú)限定通配符(<?>)集合重寫方法和實(shí)現(xiàn)類IO流字節(jié)與字符轉(zhuǎn)換同步和異步可以設(shè)置編碼的類Print*類Files時(shí)間與日期時(shí)區(qū)一種二種三種異常…

文章目錄

    • 異常
      • 寫法
    • JVM加載
    • 反射
      • 訪問(wèn)private
      • 調(diào)用方法
      • 動(dòng)態(tài)代理
    • 注解
      • 元數(shù)據(jù):
      • @Target
      • @Retention
      • 元注解
    • 泛型
      • 編寫泛型
      • 擦拭法
      • 局限
      • 通配符
        • 無(wú)限定通配符(<?>)
    • 集合
      • 重寫方法和實(shí)現(xiàn)類
    • IO流
      • 字節(jié)與字符轉(zhuǎn)換
      • 同步和異步
      • 可以設(shè)置編碼的類
      • Print*類
      • Files
    • 時(shí)間與日期
      • 時(shí)區(qū)
        • 一種
        • 二種
        • 三種

異常

寫法

編譯器并不會(huì)特別地為InputStream加上自動(dòng)關(guān)閉。編譯器只看try(resource = …)中的對(duì)象是否實(shí)現(xiàn)了java.lang.AutoCloseable接口,如果實(shí)現(xiàn)了,就自動(dòng)加上finally語(yǔ)句并調(diào)用close()方法

try(resource..){
}catch(){
}

JVM加載

JVM在執(zhí)行Java程序的時(shí)候,并不是一次性把所有用到的class全部加載到內(nèi)存,而是第一次需要用到class時(shí)才加載

反射

訪問(wèn)private

setAccessible(true)可以獲取private
setAccessible(true)可能會(huì)失敗。如果JVM運(yùn)行期存在SecurityManager,那么它會(huì)根據(jù)規(guī)則進(jìn)行檢查,有可能阻止setAccessible(true)

調(diào)用方法

注意null和有參數(shù)
靜態(tài):Integer n = (Integer) m.invoke(null, “123”);
非靜態(tài):String r = (String) m.invoke(s, 6);
為了調(diào)用非public方法,可以通過(guò)Method.setAccessible(true)允許其調(diào)用,也可能會(huì)失敗
遵循多態(tài)原則:調(diào)用實(shí)際類型的覆寫方法

動(dòng)態(tài)代理

動(dòng)態(tài)代理(Dynamic Proxy):可以在運(yùn)行期動(dòng)態(tài)創(chuàng)建某個(gè)interface的實(shí)例,而不用實(shí)現(xiàn)某個(gè)實(shí)例。
動(dòng)態(tài)代理實(shí)際上是JVM在運(yùn)行期動(dòng)態(tài)創(chuàng)建class字節(jié)碼并加載的過(guò)程

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;public class ReflexTest {public static void main(String[] args){InvocationHandler ih = new InvocationHandler() {@Overridepublic Object invoke(Object proxy,Method method,Object args[])throws Throwable{System.out.println(method.getName());System.out.println(proxy.getClass().getName());System.out.println(args[0]);return null;}};play p =(play)Proxy.newProxyInstance(play.class.getClassLoader(), new Class[]{play.class}, ih);p.catPlay();}}
interface play{void catPlay();
}

注解

注解是放在Java源碼的類、方法、字段、參數(shù)前的一種特殊“注釋”
注解則可以被編譯器打包進(jìn)入class文件,因此,注解是一種用作標(biāo)注的“元數(shù)據(jù)”

元數(shù)據(jù):

元數(shù)據(jù)(Metadata),又稱中介數(shù)據(jù)、中繼數(shù)據(jù),為描述數(shù)據(jù)的數(shù)據(jù)(data about data),主要是描述數(shù)據(jù)屬性(property)的信息,用來(lái)支持如指示存儲(chǔ)位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能

@Target

類或接口:ElementType.TYPE;
字段:ElementType.FIELD;
方法:ElementType.METHOD;
構(gòu)造方法:ElementType.CONSTRUCTOR;
方法參數(shù):ElementType.PARAMETER。

@Retention

僅編譯期:RetentionPolicy.SOURCE;
僅class文件:RetentionPolicy.CLASS;
運(yùn)行期:RetentionPolicy.RUNTIME。

元注解

有一些注解可以修飾其他注解,這些注解就稱為元注解(meta annotation)

泛型

編寫泛型

注意: 編寫靜態(tài)方法和普通方法時(shí)要使用不同的類型,普通有T,靜態(tài)就用k,區(qū)分類型。

擦拭法

定義: 虛擬機(jī)對(duì)泛型其實(shí)一無(wú)所知,所有的工作都是編譯器做的
Java的泛型是由編譯器在編譯時(shí)實(shí)行的,編譯器內(nèi)部永遠(yuǎn)把所有類型T視為Object處理,但是,在需要轉(zhuǎn)型的時(shí)候,編譯器會(huì)根據(jù)T的類型自動(dòng)為我們實(shí)行安全地強(qiáng)制轉(zhuǎn)型。

局限

獲取類的Class在轉(zhuǎn)型之前,所以獲取泛型的Class都是一樣的Object

 MyPara<Integer> m1 = new MyPara<Integer>(23);MyPara<String> m2 = new MyPara<String>("ss");Class s1 = m1.getClass();Class s2 = m2.getClass();//MyPara<Integer>與MyPara<String> 是兩個(gè)不同的類//等于是因?yàn)樗麄兌甲兂闪?lt;MyPara<Object>System.out.println(s1==s2);

不能判斷類型
在這里插入圖片描述

通配符

<? extends T>允許調(diào)用讀方法T get()獲取T的引用,但不允許調(diào)用寫方法set(T)傳入T的引用(傳入null除外);
<? super T>允許調(diào)用寫方法set(T)傳入T的引用,但不允許調(diào)用讀方法T get()獲取T的引用(獲取Object除外

extends 表示T的子類,而super表示T的父類
我的理解:
extends只讀(null除外):因?yàn)檗D(zhuǎn)入一個(gè)類型時(shí),會(huì)因?yàn)椴潦梅?#xff0c;變成Object然后,Object是所有的父類,不是任何的子類。
super只寫(Object除外):因?yàn)椴潦梅〞?huì)變成Object,是所有類的父類,所以可以寫,返回時(shí)只能用Object接受。
可以用PECS(生產(chǎn)者和消費(fèi)者)原則去理解何時(shí)用extends,何時(shí)用super

無(wú)限定通配符(<?>)

它不能讀也不能寫,一般只用來(lái)判斷是否為Null
類名<?>時(shí)所有類名的超類,都可以向上轉(zhuǎn)型為類名<?>

集合

只要實(shí)現(xiàn)了Iterable接口的集合類都可以直接用for each循環(huán)來(lái)遍歷。

重寫方法和實(shí)現(xiàn)類

equals: List中 index(),contains()這些類型的方法要重寫
equals和hashcode: Map要重寫
實(shí)現(xiàn)Comparable:只要需要排序的,加入的類都要實(shí)現(xiàn)
Collections創(chuàng)建的集合是不可變集合,無(wú)法向其中添加或刪除元素。
unmodifiableList(List) 返回的List不可變
希望把一個(gè)可變List封裝成不可變List,那么,返回不可變List后,最好立刻扔掉可變List的引用(把null賦值給它既可),這樣可以保證后續(xù)操作不會(huì)意外改變?cè)紝?duì)象,從而造成“不可變”List變化了

IO流

讀:從外部讀進(jìn)內(nèi)存操作
寫:從內(nèi)存寫入外部
File 可以表示一個(gè)目錄和文件,
Out/InputStream 讀取文件字節(jié)
Writer/Reader 讀取字符串
幾乎所有new的子類都是input和output超類
File傳入inputStream再傳入Buffer再傳入GZIinput 這種叫做Filter模式(或者裝飾器模式:Decorator)

字節(jié)與字符轉(zhuǎn)換

Reader是帶編碼轉(zhuǎn)換器的InputStream,它把byte轉(zhuǎn)換為char,而Writer就是帶編碼轉(zhuǎn)換器的OutputStream,它把char轉(zhuǎn)換為byte并輸出。

InputStream input = new FileInputStream("src/readme.txt");
// 變換為Reader:
Reader reader = new InputStreamReader(input, "UTF-8");

Reader需要從InputStream中讀入字節(jié)流(byte),然后,根據(jù)編碼設(shè)置,再轉(zhuǎn)換為char就可以實(shí)現(xiàn)字符流。如果我們查看FileReader的源碼,它在內(nèi)部實(shí)際上持有一個(gè)FileInputStream。

同步和異步

同步IO是指,讀寫IO時(shí)代碼必須等待數(shù)據(jù)返回后才繼續(xù)執(zhí)行后續(xù)代碼,它的優(yōu)點(diǎn)是代碼編寫簡(jiǎn)單,缺點(diǎn)是CPU執(zhí)行效率低。

而異步IO是指,讀寫IO時(shí)僅發(fā)出請(qǐng)求,然后立刻執(zhí)行后續(xù)代碼,它的優(yōu)點(diǎn)是CPU執(zhí)行效率高,缺點(diǎn)是代碼編寫復(fù)雜。

Java標(biāo)準(zhǔn)庫(kù)的包java.io提供了同步IO,而java.nio則是異步IO

可以設(shè)置編碼的類

FileReader(‘路徑’,StandardCharsets.UTF_8)

Print*類

System.out是標(biāo)準(zhǔn)輸出;
System.err是標(biāo)準(zhǔn)錯(cuò)誤輸出。

我們經(jīng)常使用的System.out.println()實(shí)際上就是使用PrintStream打印各種數(shù)據(jù)。其中,System.out是系統(tǒng)默認(rèn)提供的PrintStream,表示標(biāo)準(zhǔn)輸出:

Files

從Java 7開始,提供了Files和Paths這兩個(gè)工具類,能極大地方便我們讀寫文件。
缺點(diǎn):
Files提供的讀寫方法,受內(nèi)存限制,只能讀寫小文件,例如配置文件等,不可一次讀入幾個(gè)G的大文件。讀寫大型文件仍然要使用文件流,每次只讀寫一部分文件內(nèi)容。

時(shí)間與日期

時(shí)區(qū)

一種

是以GMT或者UTC加時(shí)區(qū)偏移表示,例如:GMT+08:00或者UTC+08:00表示東八區(qū)

二種

另一種是縮寫,例如,CST表示China Standard Time,也就是中國(guó)標(biāo)準(zhǔn)時(shí)間。但是CST也可以表示美國(guó)中部時(shí)間Central Standard Time USA,因此,縮寫容易產(chǎn)生混淆,我們盡量不要使用縮寫。

三種

最后一種是以洲/城市表示,例如,Asia/Shanghai,表示上海所在地的時(shí)區(qū)。特別注意城市名稱不是任意的城市,而是由國(guó)際標(biāo)準(zhǔn)組織規(guī)定的城市

http://www.risenshineclean.com/news/41837.html

相關(guān)文章:

  • 新網(wǎng)站優(yōu)化怎么做武漢seo優(yōu)化
  • 界面網(wǎng)站的風(fēng)格關(guān)鍵字c語(yǔ)言
  • 成都哪里有做網(wǎng)站建設(shè)的青島網(wǎng)站建設(shè)公司電話
  • 在小說(shuō)網(wǎng)站做責(zé)編如何免費(fèi)發(fā)布廣告
  • 網(wǎng)站制作公司智能 樂(lè)云踐新做網(wǎng)站怎么優(yōu)化
  • 網(wǎng)站模板購(gòu)買房地產(chǎn)估價(jià)師考試
  • 小程序開發(fā)平臺(tái)哪里做得好seo網(wǎng)站優(yōu)化培訓(xùn)怎么做
  • 可以免費(fèi)發(fā)帖的網(wǎng)站品牌廣告投放
  • asp如何做網(wǎng)站河北網(wǎng)站seo策劃
  • 網(wǎng)站瀏覽思路上海網(wǎng)絡(luò)推廣公司網(wǎng)站
  • 哪個(gè)網(wǎng)站推廣做的好引流獲客app下載
  • 關(guān)于藥品網(wǎng)站建設(shè)策劃書seo軟件哪個(gè)好
  • 做網(wǎng)站公司在深圳杭州疫情最新情況
  • 網(wǎng)站建設(shè)在線視頻上海百度推廣官網(wǎng)
  • java源代碼網(wǎng)站seo在線外鏈
  • 企業(yè)網(wǎng)站建設(shè)系統(tǒng)惠東seo公司
  • 邯鄲哪有做網(wǎng)站的公司邵陽(yáng)網(wǎng)站seo
  • 網(wǎng)站開發(fā)原型濰坊今日頭條新聞
  • 濰坊市建設(shè)局網(wǎng)站上海關(guān)鍵詞自動(dòng)排名
  • 網(wǎng)站源碼上傳完后怎么做足球排名最新排名世界
  • 怎么給企業(yè)做網(wǎng)站網(wǎng)絡(luò)營(yíng)銷企業(yè)是什么
  • 網(wǎng)站策劃書十大外貿(mào)電商平臺(tái)
  • 邯鄲網(wǎng)站建設(shè)縱橫廣告軟文怎么寫
  • 中華南大街網(wǎng)站建設(shè)佛山百度網(wǎng)站排名優(yōu)化
  • 深圳網(wǎng)站建設(shè)公司哪家專業(yè)今日國(guó)內(nèi)新聞10則
  • 如何制作網(wǎng)站平臺(tái)北京aso優(yōu)化
  • 銷項(xiàng)稅和進(jìn)項(xiàng)導(dǎo)入是在國(guó)稅網(wǎng)站做嗎制作網(wǎng)站費(fèi)用
  • 自己的電腦做服務(wù)器建立網(wǎng)站的方法百度競(jìng)價(jià)搜索
  • 做能支付的網(wǎng)站貴嗎國(guó)內(nèi)免費(fèi)域名
  • 小說(shuō)網(wǎng)站建設(shè)的支柱app推廣活動(dòng)策劃方案