日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P1-JAVA

發(fā)布時間:2025/7/14 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P1-JAVA 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. Java的跨平臺原理:

 ? ?Java通過不同的系統(tǒng)、不同的版本、不同位數(shù)的java虛擬機(JVM)來屏蔽不同的系統(tǒng)指令集差異而對外提供統(tǒng)一的接口(Java API),對于我們java開發(fā)而言,只需要按照接口開發(fā)即可;如果我們系統(tǒng)需要部署到不同的環(huán)境時,只需要在系統(tǒng)上面安裝對應(yīng)版本的虛擬機即可!

2. 搭建一個java的開發(fā)環(huán)境:

  2.1適用于我們開發(fā)環(huán)境的JDK(配置JAVA_HOME環(huán)境變量)(JDK包括:JRE+java工具[編譯器javac.exe、執(zhí)行器java.exe]+java基礎(chǔ)類庫

  2.2對應(yīng)開發(fā)環(huán)境的eclipse

  2.3(web應(yīng)用)web服務(wù)器(Tomcat服務(wù)器)

  2.4版本控制器(SVN + Git)

3. Java的8種基本數(shù)據(jù)類型+對應(yīng)的包裝類型:

  為什么要使用包裝類型?

  1.因為java是一門面向?qū)ο蟮恼Z言,而基本數(shù)據(jù)類型不具備面向?qū)ο蟮奶匦?#xff09;;

  2.緩存值:對象緩存(Integer i = 1; Integer z = 1; // i==z true);

  

  

  

  

4. 自動裝箱+自動拆箱(JDK1.5引入的特性)

  裝箱:把基本的數(shù)據(jù)類型轉(zhuǎn)換成對應(yīng)的包裝類型

  拆箱:把包裝類型轉(zhuǎn)換成對應(yīng)的基本數(shù)據(jù)類型

package com.yikuan.test;public class Test1 {public static void main(String[] args) {/*** 自動裝箱* 在編譯時實際上調(diào)用的是Integer的valueOf方法(Integer i = Integer.valueOf(1);)*/Integer i = 1;/*** 自動拆箱* 在編譯時實際上調(diào)用的是Integer的intValue方法((int j = i.intValue();))*/int j = i;System.out.println(i); //1System.out.println(j); //1 } }

4. 面向?qū)ο?#xff1a;

  封裝:把對象的屬性封裝成私有,對外提供set、get方法;

  抽象:把現(xiàn)實生活中的對象抽象為類;

  繼承:遺產(chǎn)的繼承;

  多態(tài):所有子類型對象,都可以被當做一致的父類型來處理(向上轉(zhuǎn)型、向下轉(zhuǎn)型)

5. “==” 和?equals的區(qū)別:

  ==:是用來判斷兩個變量的值是否相等,變量可以分為基本數(shù)據(jù)類型和引用類型;

    如果是基本數(shù)據(jù)類型的變量就直接比較值,而引用類型需要比較對應(yīng)的內(nèi)存地址;

  equals:用來比較兩個對象長的是否一樣,判斷兩個對象的某些特征是否一樣;

    對象一般做比較時,實際上就是調(diào)用對象的equals方法進行比較;

6. 解釋String和StringBuilder、StringBuffer的區(qū)別:

  在java中,提供了3個類,String、StringBuilder、StringBuffer來表示和操作字符串,字符串就是多個字符的集合;

  String:是內(nèi)容不可變的字符串;?String a = new String("aaa");

       因為String底層使用了一個不可變的字符數(shù)組(private final char value[];);

  StringBuilder和StringBuffer是內(nèi)容可以改變的字符串(可以使用append方法進行追加內(nèi)容);

       StringBuilder和StringBuffer底層沒有使用final修飾;?(?char[] value;

  經(jīng)典案例就是:拼接字符串(不能使用String進行拼接,要使用StringBuilder或者StringBuffer);

StringBuilder sb = new StringBuilder(); sb.append("a").append("b");String c = "a"+"b"; //創(chuàng)建了很多的中間對象

  StringBuilder:線程不安全,效率較高;

?

  StringBuffer:線程安全,效率較低;

?7. Java中的集合有哪些:

  7.1)java中的集合分為值(value)和 key-value 兩種格式;

  7.2)存儲值的又分為List 和 Set,存儲key-value的為Map;

  7.3)List 和 Set的區(qū)別:

      List是有序的,可以重復(fù)的;(常用的有ArrayList 和 LinkedList)

      Set是無序的,不可以重復(fù)的;

      重復(fù)與否:是根據(jù)equals 和 hashCode來判斷的,也就是說如果一個對象要存儲在Set里,必須重寫equals?和 hashCode方法;

8. ArrayList 和 LinkedList的區(qū)別和使用場景:

  8.1)ArrayList 底層使用的是數(shù)組;LinkedList底層使用的是鏈表;

    數(shù)組的特點:因為具有索引,所以查詢特定元素比較快;而插入、刪除比較慢(因為數(shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存,在插入和刪除時需要移動內(nèi)存);

    鏈表的特點:鏈表不要求內(nèi)存是連續(xù)的,在當前元素中存放下一個或上一個元素的地址,查詢時需要從頭部開始,一個一個的開始找索引,所以查詢效率低

          而插入時不需要移動內(nèi)存,只需改變引用指向即可,所以插入或者刪除的效率高

    ArrayList 使用在查詢比較多,插入和刪除比較少的情況;

    LinkedList使用在查詢比較少,插入和刪除比較多的情況;

9. 解釋HashMap和HashTable的區(qū)別:

  9.1 HashMap和HashTable他們都可以用來存儲key-value的數(shù)據(jù),但是他們也有區(qū)別;

  9.2 HashMap是可以把null作為key或者value的,而HashTable是不可以的;

  9.3 HashMap是線程不安全的,效率較高,而HashTable是線程安全的,效率較低;

  問題:即想線程安全,又想效率高?怎么解決?

    ConcurrentHashMap(jdk1.5后引入的):通過把整個Map分為N個Segment(類似HashTable),可以提供相同的線程安全,但是效率提升N倍,默認提升16倍;

?

10. 實現(xiàn)一個拷貝文件的工具類使用字節(jié)流還是字節(jié)流?

  10.1我們拷貝的文件不確定時,只包含字符流,有可能有字節(jié)流(拷貝圖片、聲音、圖像等);為了考慮到通用性,要使用字節(jié)流;

11. 談一下線程的幾種實現(xiàn)方式?

  11.1繼承Thread類實現(xiàn);

  11.2通過實現(xiàn)Runable接口實現(xiàn);

  優(yōu)缺點:繼承擴展性不強,java中只支持單繼承,如果一個類繼承Thread就不能繼承其他的類了;

  11.3怎么啟動?(啟動線程使用start,而啟動了以后執(zhí)行的是run方法)

package com.yikuan.test;public class MyThread{public static void main(String[] args) {Thread thread = new Thread(new TestThread());
     thread.setName("aaa");thread.start();Thread th
= new Thread(new TestThread2());
     thread.setName("bbb");th.start();} }
class TestThread extends Thread{@Overridepublic void run() {System.out.println("Thread-Demo");} }class TestThread2 implements Runnable{@Overridepublic void run() {System.out.println("實現(xiàn)Runable接口");} }

  11.4怎么區(qū)分線程?在一個系統(tǒng)中有很多線程,每個線程都會打印日志,我想?yún)^(qū)分是哪個線程打印的?

  設(shè)置一個線程名(“線程名稱”);這是一種規(guī)范,在創(chuàng)建線程完成后都需要設(shè)置名稱;

  11.5線程并發(fā)庫?

  簡單了解過;JDK1.5增加的,這一引進給java線程的管理和使用提供了強大的便利性;

  java.util.concurrent包中提供了對線程的優(yōu)化、管理等各項操作,這個包提供了線程的運行,線程池的創(chuàng)建,線程生命周期的控制;

  java通過Executors提供了四個靜態(tài)方法創(chuàng)建線程池; 

    可以緩存的線程池:newCacheThreadPool;

    創(chuàng)建一個定長的線程池,可控制線程最大并發(fā)數(shù),超出的線程會在隊列中等待;newFixedThreadPool;

    創(chuàng)建一個定長的線程池,支持定時及周期性任務(wù)執(zhí)行,newScheduledThreadPool;

    創(chuàng)建一個單線程化的線程池,它只會用唯一的工作線程來執(zhí)行任務(wù),保證所有任務(wù)按照指定順序(FIFO、LIFO、優(yōu)先級)執(zhí)行,newSingleThreadExecutor;

  線程池的作用:(連接池也是一樣!)

    1.限定線程的個數(shù),不會導(dǎo)致由于線程過多而系統(tǒng)運行緩慢或崩潰;

    2.線程池不需要每次都去創(chuàng)建或銷毀,節(jié)約了資源,響應(yīng)時間更快;

12. 講一下什么是設(shè)計模式?常用的設(shè)計模式有哪些?

  12.1設(shè)計模式就是經(jīng)過前人無數(shù)次的實踐總結(jié)出的,在設(shè)計過程中可以反復(fù)使用的,可以解決特定問題的設(shè)計方法;

  12.2常用的設(shè)計模式:

    單例設(shè)計模式:

    三部曲:1.構(gòu)造方法私有化,讓除了自己類能創(chuàng)建外,其他地方都不能創(chuàng)建;

        2.在自己的類中創(chuàng)建一個單實例;

        3.提供一個方法獲取該實例對象;

      飽漢模式:是一出來就創(chuàng)建單實例;

      饑漢模式:需要的時候才創(chuàng)建;創(chuàng)建時需要進行方法同步;

    工廠設(shè)計模式:

      Spring IOC(我們專門提供一個工廠,來創(chuàng)建某一個對象的實例,也就是說對象的創(chuàng)建交給一個工廠去創(chuàng)建)

    代理設(shè)計模式

      Spring AOP(動態(tài)代理)

    包裝設(shè)計模式

  單例Demo:

package com.yikuan.test; /*** 單例模式之---經(jīng)典飽漢模式* @author Administrator**/ public class PersonFactory {//構(gòu)造方法私有化private PersonFactory(){}//提供一個實例 private static PersonFactory instance = new PersonFactory();//提供方法獲取public static PersonFactory getInstance(){return instance;}public static void main(String[] args) {//獲取實例就可以調(diào)用對應(yīng)的方法 PersonFactory.instance.toString();} } package com.yikuan.test; /*** 單例模式之---經(jīng)典饑漢模式* @author Administrator**/ public class PersonFactorys {//構(gòu)造方法私有化private PersonFactorys() {}//提供一個實例private static PersonFactorys instance = null;//提供方法獲取public synchronized static PersonFactorys getInstance(){if(instance == null){instance = new PersonFactorys();}return instance;}public static void main(String[] args) {//獲取實例就可以調(diào)用對應(yīng)的方法 PersonFactorys.instance.toString();} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/yikuan-919/p/9902921.html

總結(jié)

以上是生活随笔為你收集整理的P1-JAVA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久艹精品 | 337p粉嫩日本欧洲亚洲大胆 | 激情婷婷小说 | 天天躁日日躁狠狠很躁 | 伊人中文字幕在线 | 一区二区三区在线视频播放 | 91精产品一区观看 | 日韩国产成人在线 | 国产麻豆一精品一男同 | 久久精品国产亚洲av成人 | 青娱乐在线视频免费观看 | 在线免费观看av不卡 | 一区二区三区在线免费视频 | 97se.com| 五月婷婷综合网 | 天天射天天拍 | 69成人免费视频 | 理论视频在线观看 | 国产精品久久久久久久9999 | 亚洲精品国产精品国自产观看浪潮 | 久久草精品 | 波多野结衣在线播放 | 九九热精品视频在线播放 | 伊人青青久久 | 欧美xxxx视频 | www青青草 | 国精产品一二三区精华液 | 九色在线播放 | 欧美日韩五月天 | 亚洲福利视频一区二区三区 | 欧美人与性动交g欧美精器 国产在线视频91 | 玖玖精品国产 | 9色在线视频 | 色射影院 | 欧美日韩爱爱 | 国产电影免费观看高清完整版视频 | 欧美激情国产在线 | 麻豆av免费在线观看 | 五月天久久综合 | 伊人网成人网 | 自拍 偷拍 欧美 | 久久123 | 国产精品一二三四区 | 五月开心激情 | 夜夜夜夜爽 | 久久夜精 | 精品少妇爆乳无码av无码专区 | 日本羞羞网站 | 欧美交换| 日日夜夜网| 色一情一区二区三区 | 99免费在线 | 亚洲啊v| 丁香婷婷综合激情五月色 | 日韩精品一区二区在线 | 在线看不卡av | 国产一区二区在线播放 | 波多野结衣在线播放 | 在线观看 中文字幕 | 黄色精品视频在线观看 | 视频区小说区图片区 | 一二三区精品视频 | 国产精品tv | 天堂新版8中文在线8 | 日韩一区二区三区精品视频 | 我要操av | 亚洲国产精品久久久久婷蜜芽 | 无码一区二区三区在线观看 | 超碰91人人 | 日本乱论视频 | 青青青手机视频在线观看 | 亚洲精品久久久久久久蜜桃臀 | 韩国视频一区二区三区 | 黄色成人免费网站 | 亚洲AV成人无码久久精品巨臀 | jizz欧美大片 | 女人久久久 | 欧美日韩小说 | 亚洲一区在线看 | 四季av在线一区二区三区 | 三级做爰在线观看视频 | 日韩欧美99 | 国产一页 | 欧美视频在线观看视频 | 少妇一区二区视频 | 你懂的在线网站 | 337p日本大胆噜噜噜鲁 | 天天干,夜夜操 | 区一区二区三 | 日韩和欧美一区二区 | 99久久久无码国产精品衣服 | 看国产黄色片 | 国产中文字幕一区 | 亚洲免费一区 | 美女视频一区二区三区 | 99精品视频播放 | 亚洲日本久久 | 久久91 | 成人欧美一区二区三区 |