原创 面向對象02

1.內存管理:由JVM來管理    1)堆:        1.1)用於存儲所有new出來的對象(包括成員變量)        1.2)成員變量的生命週期:                創建對象時存在堆中,對象被GC回收時一併消失   

原创 LeetCode字符串

647 迴文子串 思路:迴文子串是對字符串的子串進行判斷,看是否爲迴文子串。子串分爲奇數偶數的情況,抽出一個方法分別對奇偶情況進行判斷。定義左右指針,對指針區間進行是否迴文,奇數以一個元素爲中心,偶數以兩個元素爲中心,判斷中心兩邊是否相

原创 二維數組

1. 二維數組的基本知識    1.1 聲明二維數組變置並創建二維數組        下面是聲明二維數組的語法:         數據類型[ ][ ]數組名 ;         例:聲明 int 型的二維數組變量 matrix:     

原创 ==和equals的區別

1. == 如果作用於基本數據類型的變量,則直接比較其存儲的 “值”是否相等。 int a=10; int b=10; System.out.println(a==b); //結果爲tru

原创 代理模式(Proxy)

代理模式:爲一個對象提供一個替身,以控制對這個對象的訪問,通過代理對象訪問目標對象,這樣做的好處是:可以在目標對象實現的基礎上,增強額外的功能操作,即擴展目標對象的功能。 一. 靜態代理 1. 靜態代理使用時需要定義接口或者父類,被代理對

原创 線程

一. 線程和進程 1.1 併發與並行 併發:指兩個或多個事件在同一時間段內發生的。(交替執行) 並行:指兩個或多個事件在同一時刻發生。(同時執行) 1.2 線程與進程 進程:指正在運行中的應用程序,每個進程都有一個獨立的內存空間,進程是程

原创 String常用方法

            返回類型                                                            方法                 int                    

原创 StringBuilder

1.當我們需要由較短的字符串構建字符串時,採用字符串拼接每次都要創建一個新的String對象,耗時又浪費時間。使用StringBuilder類就可以避免這個問題。 首先構建一個空的字符串構建器 StringBuilder res = n

原创 線程同步

一. 線程安全 1.1 線程安全概念 如果有多個線程在同時運行,而這些線程可能會同時運行這段代碼。程序每次運行結果和單線程運行的結果是一樣 的,而且其他的變量的值也和預期的是一樣的,就是線程安全的。 線程安全問題都是由全局變量及靜態變量引

原创 面向對象三大特徵

面向對象三大特徵: 1.封裝:    1)類:封裝的是對象的屬性和行爲    2)方法:封裝的是具體的邏輯功能實現    3)訪問控制修飾符:封裝的是訪問的權限 2.繼承:    1)作用:避免代碼重複,有利於代碼的複用    2)父類:

原创 計算字符串中每個字符出現次數。

分析: 1. 使用Scanner對象獲取字符串 2. 創建Map集合,key存儲字符串中的字符,value存儲字符出現的次數 3. 遍歷Map集合,獲取每一個字符 4. 判斷獲取的字符在Map集合中是否存在           key存在

原创 Map集合

一. Map集合 1.1 概述 上一篇博客提到了集合按照其存儲結構可以分爲兩大類,分別是單列集合java.util.Collection和雙列集合java.util.Map 單例集合在上一篇博客已經總結,現在對雙列集合Map進行總結。

原创 IO流

IO流 File類 File類的使用 1.File類的一個對象,代表一個文件或一個文件目錄(文件夾) 2.File類的聲明在java.io包下 3.File類中涉及到關於文件或文件目錄的創建、刪除、重命名、修改時間、文件大小等方法,並未

原创 Java方法的定義與使用

一.方法 (函數,過程) 1.各種語言都有方法的概念(有的語言稱其爲函數或過程) 2.方法用於封裝一段特定的邏輯功能 如:執行計算或操作 3.方法可以在程序中反覆被調用 4.方法可以減少代碼複用,便於程序維護 二.方法的定義 方法的定義由

原创 Collection集合,Iterator迭代器,泛型

一. Collection集合 1.1 集合概述 集合:集合是java中提供的一種容器,可以用來存儲多個數據。 集合和數組既然都是容器,我們爲什麼要引入集合呢? ①數組的長度是固定的。集合的長度是可變的。 ②數組中存儲的是同一類型的元素,