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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

自律·财大自习·Java

發布時間:2023/12/20 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自律·财大自习·Java 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自十萬個為什么之后。。。

一、Java 基礎

1.JDK 和 JRE 和 JVM 有什么區別?(來源百度)

JDK
JDK:Java Development Kit
含義:Java開發工具包


JRE
全名:Java runtime environment
含義:Java運行環境


JVM
全名:Java Virtual Machine
含義:Java虛擬機

2.== 和 equals 的區別是什么?

①基本數據類型(也稱原始數據類型) :byte,short,char,int,long,float,double,boolean。他們之間的比較,應用雙等號(==),比較的是他們的值。
②引用數據類型:當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址(確切的說,是堆內存地址)。

3.以下兩種中初始化方法str = new String("hello"),str = "hello"的內存分配,以及區別?

String str1 = new String("hello"); String str2 = "hello"; String str3 = "hello"; 復制代碼

此時在創建str3的時候會去檢查常量池里面是否有"hello"這個字符串,如果有的話則不創建,直接地址指向。
用String str="";這種方式創建的字符串都是在常量池中存在。
用new String("")來創建的字符串都是在堆中開辟空間。

?注:常量池:常量池(constant pool)指的是在編譯期被確定,并被保存在已編譯的.class文件中的一些數據。它包括了關于類、方法、接口等中的常量,也包括字符串常量。

1.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制.
2. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字符串常量對象存放在常量池中。)
3. 堆:存放所有new出來的對象。
4. 靜態域:存放靜態成員(static定義的)
5. 常量池:存放字符串常量和基本類型常量(public static final)。
6. 非RAM存儲:硬盤等永久存儲空間

4.接口、普通類、抽象類的區別以及用法?

?普通類 與 抽象類:
1、普通類可以去實例化調用;抽象類不能被實例化,因為它是存在于一種概念而不非具體。
2、普通類和抽象類都可以被繼承,但是抽象類被繼承后子類必須重寫繼承的方法,除非自類也是抽象類。


?抽象類 與 接口:
1、抽象類 和 接口 都是用來抽象具體對象的. 但是接口的抽象級別最高
2、抽象類可以有具體的方法 和屬性, 接口只能有抽象方法和不可變常量
3、抽象類主要用來抽象類別,接口主要用來抽象功能.
4、抽象類中,且不包含任何實現,派生類必須覆蓋它們。接口中所有方法都必須是未實現的。
5、接口是設計的結果 ,抽象類是重構的結果

?使用方向:當你關注一個事物的本質的時候,用抽象類;當你關注一個操作的時候,用接口。

二、容器

1.List、Set、Map集合

① ArrayList

創建初始化:4種方式

public static void main(String[] args) {/*** Arrays.asList方法初始化*/List<String> list1 = new ArrayList<String>(Arrays.asList("str1","str2","str3"));/*** 雙大括號初始化(double brace initialization)或者匿名內部類初始化法* 這種方法一定程度上使代碼更簡潔,但同時可能降低可讀性;* 使用雙大括號初始化會導致內部類文件的產生,而這個過程就會影響代碼的執行效率;* ?不推薦使用*/@SuppressWarnings("serial")List<String> list2 = new ArrayList<String>(){{add("str1");add("str2");add("str3");}};/*** 普通初始化*/List<String> list3 = new ArrayList<>();list3.add("str1");list3.add("str2");list3.add("str3");/*** Collections.ncopies初始化* 把element復制count次填入list4中*/int count = 5;String element = "hello";ArrayList<String> list4 = new ArrayList<String>(Collections.nCopies(count, element)); } 復制代碼

增:

add(String e) :boolean add(int index, String element) :void addAll(Collection<? extends E> c) :boolean addAll(int index, Collection<? extends E> c) :boolean 復制代碼

刪&過濾:

remove(Object obj) :boolean remove(int index) :String removeAll(Collection<?> c) :booleanremoveIf(Predicate<? super E> filter) :boolean //過濾 list3.removeIf(o -> o.indexOf('3') > -1); list3.removeIf(new Predicate<String>() {@Overridepublic boolean test(String t) {return t.indexOf('4') > -1;} }); 復制代碼

改:

E set(int index, E element) 復制代碼

查:

int indexOf(Object o) int lastIndexOf(Object o) boolean contains(Object o) 復制代碼
② Vector

可以往其中隨意插入不同類的對象,即不需顧及類型也不需預先選定向量的容量,并可以方便地進行查找。
api: www.runoob.com/java/java-v…

創建初始化:

不帶參數的構造函數初始化 Vector v;//初始化一個size為0的vector帶參數的構造函數初始化 Vector v(10);//初始化size,但每個元素值為默認值 Vector v(10,"hello");//初始化了10個值為hello的元素通過同類型的vector初始化 Vector v(10,"hello"); //通過v初始化 Vector v2(v); 復制代碼

增:

boolean add(Object o); void add(int index, Object element); boolean addAll(Collection c); boolean addAll(int index, Collection c); void addElement(Object obj); void insertElementAt(Object obj, int index); 復制代碼

刪:

void clear(); 復制代碼

查:

boolean contains(Object elem); 復制代碼
③ LinkedList

創建初始化:

復制代碼
④ Queue
⑤ HashSet
⑥ TreeSet
⑦ LinkedHashSet
⑧ HashMap
⑨ TreeMap
⑩ HashTable

2.Array 與 ArrayList區別?

Array([]):最高效;但是其容量固定且無法動態改變;
ArrayList: 容量可動態增長;但犧牲效率;

對象數組與基本類型數組在運用上幾乎一模一樣,唯一差別在于,前者持有得是reference,后者直接持有基本型別之值; 例如:

String[] objArr = new String[100]; int[] basArr = new int[10]; 復制代碼

3.Arrays工具類

用于對數組操作的工具類

1,二分查找,數組需要有序 binarySearch(int[]) binarySearch(double[])2,數組排序 sort(int[]) sort(char[])…… 3,將數組變成字符串。 toString(int[]) 4,復制數組。 copyOf(); 5,復制部分數組。 copyOfRange(): 6,比較兩個數組是否相同。 equals(int[],int[]); 7,將數組變成集合。 List asList(T[]); 復制代碼

3.Collections工具類

1, 對list進行二分查找: 前提該集合一定要有序。 int binarySearch(list,key); //必須根據元素自然順序對列表進行升級排序 //要求list 集合中的元素都是Comparable 的子類。 int binarySearch(list,key,Comparator);2,對list集合進行排序。 sort(list); //對list進行排序,其實使用的事list容器中的對象的compareTo方法 sort(list,comaprator); //按照指定比較器進行排序3,對集合取最大值或者最小值。 max(Collection) max(Collection,comparator) min(Collection) min(Collection,comparator)4,對list集合進行反轉。 reverse(list); 5,可以將不同步的集合變成同步的集合。 Set synchronizedSet(Set<T> s) Map synchronizedMap(Map<K,V> m) List synchronizedList(List<T> list) 復制代碼

4.迭代器 Iterator是什么?

轉載于:https://juejin.im/post/5c9a0b0351882558976e2b44

總結

以上是生活随笔為你收集整理的自律·财大自习·Java的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。