原创 Java棧內存和堆內存

首先說明棧內存和堆內存裏存放的是什麼 棧內存中存放函數中定義的一些基本類型的變量和對象的引用變量; 堆內存中存放new創建的對象和數組。   簡單的來說,堆主要是用來存放對象的,棧主要是用來執行程序的 這麼做是因爲 棧的存取速度快,棧數據

原创 volatile的作用

可見性: 可見性是一種複雜的屬性,因爲可見性中的錯誤總是會違揹我們的直覺。通常,我們無法確保執行讀操作的線程能適時地看到其他線程寫入的值,有時甚至是根本不可能的事情。爲了確保多個線程之間對內存寫入操作的可見性,必須使用同步機制。 可見性,

原创 對dp,sp,px等單位的簡單解析

我們這種新手遇到這種問題總有一點糾結,希望藉此能夠加深自己的理解 px: 即像素,1px代表屏幕上一個物理的像素點; px單位不被建議使用,因爲同樣100px的圖片,在不同手機上顯示的實際大小可能不。偶爾用到px的情

原创 數據庫(第一範式、第二範式、第三範式)

一、第一範式 1NF是對屬性的原子性,要求屬性具有原子性,不可再分解; 表:字段1、 字段2(字段2.1、字段2.2)、字段3 ...... 如學生(學號,姓名,性別,出生年月日),如果認爲最後一列還可以再分成(出生年,出生月,出生日),

原创 Android studio 錯誤集錦(1)

Android studio 錯誤集錦(1) 錯誤 Error:A problem was found with the configuration of task ':app:packageInstantRunResource

原创 HashMap 和hashtable的區別

HashTable和HashMap區別 ①繼承不同。 public class Hashtable extends Dictionary implements Map public class HashMap extends Abstr

原创 第一行代碼3.7.2編寫精美的聊天界面

問題 1.爲什麼要添加依賴庫 2.layout_margin的含義 3.ViewHolder的使用方法 求解 1.Android中有很多Java的特性,因爲JAVA提供的JAR包內容是有限的,JAVA是開源編碼,很多優秀

原创 深入理解Java虛擬機(2)hotSpot虛擬機探祕

對象的內存佈局 在HotSpot虛擬機中,對象的內存佈局分爲以下3塊區域: 對象頭(報頭) 實例數據(實例數據) 對齊填充(填充) 對象頭 對象頭記錄了對象在運行過程中所需要使用的一些數據: 哈希碼 GC分代年齡

原创 深入理解虛擬機(3)垃圾蒐集策略與算法

程序計數器、虛擬機棧、本地方法棧隨線程而生,也隨線程而滅;棧幀隨着方法的開始而入棧,隨着方法的結束而出棧。這幾個區域的內存分配和回收都具有確定性,在這幾個區域內不需要過多考慮回收的問題,因爲方法結束或者線程結束時,內存自然就跟隨着回收了。

原创 Java GC、新生代、老年代

1,堆內存 Java中的堆是JVM所管理的最大的一塊內存空間,主要用於存放各種類的實例對象。在Java中,堆被劃分成兩個不同的區域:新生代(Young),老年代(Old )新生代(楊氏)又被劃分爲三個區域:伊甸,從倖存者,爲了倖存者。這樣

原创 深入理解java虛擬機(4)HotSpot垃圾收集器與內存分配策略

HotSpot 虛擬機提供了多種垃圾收集器,每種收集器都有各自的特點,雖然我們要對各個收集器進行比較,但並非爲了挑選出一個最好的收集器。我們選擇的只是對具體應用最合適的收集器。 新生代垃圾收集器 Serial 垃圾收集器(單線程) 只開啓

原创 Java socket 雙向通信

簡單的一個socket通信 //客戶機 package Client; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExce

原创 Java文件--複製

Java文件複製 (字符型) 可以複製文字,但是對其他格式的文件實用性就不那麼強了。 public static void copy(String source,String dest){ try {

原创 Java——異常

5.01_異常(異常的概述和分類) 5.02_異常(JVM默認是如何處理異常的) 5.03_異常(try…catch的方式處理異常1) 5.04_異常(try…catch的方式處理異常2) 5.05_異常(編譯期異常和運行期異常的

原创 Java文件字符流讀取

字符流讀取 字符輸入流 FileReade的常用構造方法包括以下幾種。 FileReader(String fileName):根據文件名創建FileReader對象。 FileReader(File file):根據File對象創建