原创 對象的克隆(clone方法)

1.深拷貝與淺拷貝淺拷貝是指拷貝對象時僅僅拷貝對象本身(包括對象中的基本變量),而不拷貝對象包含的引用指向的對象。深拷貝不僅拷貝對象本身,而且拷貝對象包含的引用指向的所有對象。2.深拷貝和淺拷貝的實現淺拷貝的實現很簡單,直接繼承Objec

原创 日常坑記錄貼

1.使用jetcache,如果要用redis存儲java對象,該類必須實現Serializable(本地local不需要) 2.使用jetcache,要加上以下maven插件,否則java在編譯的時候,會把方法形參編譯成arg0、arg1

原创 ThreadLocal的使用及其原理

ThreadLocal:ThreadLocal是線程局部變量,所謂的線程局部變量,就是僅僅只能被本線程訪問,不能在線程之間進行共享訪問的變量。 ThreadLocal的使用非常廣泛,典型的,mybatis的分頁插件PageHelper用的

原创 關於HashSet

HashSet存儲數據原理:當HashSet調用add方法時,有返回值,返回值是boolean類型,表示是否添加成功(如果對象不存在,則添加成功,否則添加失敗)但是,添加的過程並不是一個個去遍歷去判斷是否已存在,這樣效率太低(假設一種場景

原创 關於char是否能表示一箇中文

char是可以表示中文的這個問題點有3個考覈點1 char是多少位的 2 java用的是什麼方式表示字符 3 Unicode是用多少位表示的1的答案是16位的,2的答案是Unicode,3的答案是16位值得注意的是,2的答案並不是utf-

原创 final關鍵字

作用:1.作用於類:表示該類不能被繼承2.作用於方法:表示該方法不能被重寫3.作用於變量:表示原生類型的值不能改變/引用類型的對象內容不能被改變(但是可以指向其他對象)對於功能3,final類型的成員變量初始化方式:1.聲明變量時直接賦值

原创 &和&&

&&:邏輯二目運算符,2個操作數必須是boolean類型,具有短路特徵&:功能有2個(1)位與運算符,二目運算符,這個不做多解釋(2)邏輯二目運算符,2個操作數必須是boolean類型,不具備短路特性就是說,&既可以作爲位運算符,又可以作

原创 ArrayList/LinkedList/Vector

1.ArrayList和Vector的區別是,ArrayList是線程不安全,Vector是線程安全的2.ArrayList與LinkedListArrayList底層用的是數組,便於查詢操作,物理地址連續LinkedList底層用的是個

原创 關於try catch塊執行流程

代碼:package test; public class FinallyTest { public static void main(String[] args) { try { /

原创 關於Iterator

1.在迭代過程中,用list來刪除元素的坑package test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; publ

原创 關於數組

1.關於接口類型的數組package test; interface I {} class C implements I{} public class ArrayTest { public static void main

原创 小問題

一.HashMap與Hashtable的區別1.HashMap是線程不安全的,輕量級的;Hashtable是線程安全的,重量級的2.HashMap的key和value可以是null,Hashtable的key和value都不可以爲null

原创 HashSet/HashMap 存取值的過程

HashSet與HashMap的關係:(1)HashSet底層用的是HashMap來實現的(2)這個HashMap的key就是放進HashSet中的對象,value就是一個Object類型的對象(3)當調用HashSet的方法時,實際上是

原创 關於多態

package test; public class PoliTest { public static void main(String[] args) { Parent p = new Child1();

原创 關於泛型

1.關於泛型的形式參數package test; import java.util.ArrayList; import java.util.List; public class GenericTest { public vo