原创 Jvm知識學習(八)-Java堆分析

一,內存溢出(OOM)的原因1,JVM內存區間可以簡單的分爲:堆,永久區,線程棧,直接內存2,內存溢出的幾種:(1)堆內存溢出:(2)永久區內存溢出:(3)Java棧內存溢出:(4)直接內存溢出:備註說明:直接內存需要GC回收,但是直接內

原创 Java高併發程序設計(三)-java內存模型

在併發編程中,多個線程之間採取什麼機制進行通信(信息交換),什麼機制進行數據的同步?  在Java語言中,採用的是共享內存模型來實現多線程之間的信息交換和數據同步的。  線程之間通過共享程序公共的狀態,通過讀-寫內存中公共狀態的方式來進行

原创 Jvm知識學習(六)-類裝載器

類加載的機制的層次結構每個編寫的”.java”拓展名類文件都存儲着需要執行的程序邏輯,這些”.java”文件經過Java編譯器編譯成拓展名爲”.class”的文件,”.class”文件中保存着Java代碼經轉換後的虛擬機指令,當需要使用某

原创 Jvm知識學習(二)-Jvm運行機制

一,JVM啓動流程二,JVM基本結構PC寄存器 :每個線程擁有一個PC寄存器在線程創建時 創建指向下一條指令的地址執行本地方法時,PC的值爲undefined方法區:保存裝載的類信息類型的常量池字段,方法信息方法字節碼通常和永久區(Per

原创 Jvm知識學習(五)-GC參數

一,JAVA堆Java 堆是被所有線程共享的一塊內存區域,在虛擬機啓動時創建。這個區域是用來存放對象實例的,幾乎所有對象實例都會在這裏分配內存。堆是Java垃圾收集器管理的主要區域(GC堆),垃圾收集器實現了對象的自動銷燬。Java堆可以

原创 Docker基礎學習(八)-Docker容器的跨主機連接

Docker網橋實現跨主機容器連接 docker網橋實現跨主機連接的網絡拓撲圖如下: 在同一個docker主機中,docker容器通過虛擬網橋連接(docker0),如果將連接容器的網橋docker0也橋接到宿主機提供的網卡上,將doc

原创 Docker基礎學習(一)-基本概念和框架

一,Docker簡介 1,什麼是容器 (1)一種虛擬化的方案 (2)操作系統級別的虛擬化 (3)只能運行相同或相似內核的操作系統 (4)依賴於Linux內核特性:Namespace和CGroups(Control Group) 2,虛擬機

原创 web前後端漏洞分析與防禦(四)-密碼安全

需求:NodeJS->接入層->密碼管理,加密 密碼作用   信息摘要算法(哈希算法) 這種函數是一種摘要算法,你給他輸入一個任意長的數據A他給你返回固定長度的數據B,也稱B爲“指紋”。 明文 -> 密文 雪崩效應(密碼混亂) 不可逆性

原创 Java高併發程序設計(一)-前言

一,爲什麼需要並行?(1)業務要求:並行計算還出於業務模型的需要– 並不是爲了提高系統性能,而是確實在業務上需要多個執行單元。– 比如HTTP服務器,爲每一個Socket連接新建一個處理線程– 讓不同線程承擔不同的業務工作– 簡化任務調度

原创 web前後端漏洞分析與防禦(二)-CSRF

跨站請求僞造攻擊CSRF(Cross Site Request Forgy) SRF跨站點請求僞造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來理解:        攻擊者盜用

原创 Java8新特性(五)-其他新特性

一,接口中的默認方法與靜態方法 1,接口中的默認方法 Java 8中允許接口中包含具有具體實現的方法,該方法稱爲 “默認方法”,默認方法使用 default 關鍵字修飾。  接口默認方法的” 類優先” 原則 若一個接口中定義了一個默認方

原创 Java高併發程序設計(二)-多線程基礎

一,什麼是線程要解釋線程,就必須明白什麼是進程。    進程是指運行中的應用程序,每個進程都有自己獨立的地址空間(內存空間),比如用戶點擊桌面的IE瀏覽器,就啓動了一個進程,操作系統就會爲該進程分配獨立的地址空間。當用戶再次點擊左面的IE

原创 Java8新特性(二)-強大的Stream API

一,Stream說明      Stream 是 Java8 中處理集合的關鍵抽象概念,它可以指定你希望對 集合進行的操作,可以執行非常複雜的查找、過濾和映射數據等操作。 使用Stream API 對集合數據進行操作,就類似於使用 SQL

原创 Jvm知識學習(一)-初識Jvm

一,JVM的概念JVM是Java Virtual Machine的簡稱。意爲Java虛擬機虛擬機 :指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統 有哪些虛擬機 :VMWareVisual BoxJVMV

原创 Jvm知識學習(四)-GC算法與種類

一,GC的概念Garbage Collection 垃圾收集1960年 List 使用了GCJava中,GC的對象是堆空間和永久區二,GC算法根 對象:(1)棧中引用的對象(2)方法區中靜態成員或者常量引用的對象(全局對象)(3)JNI方