原创 JVM---生命週期與發展歷程

JVM JVM生命週期: 虛擬機的啓動: 是通過引導類加載器(bootstrap class loader)創建一個初始類(initial class) 來完成的,這個類是由虛擬機的具體實現指定的。 虛擬機的執行: 一個運行中的

原创 JVM---運行時數據區(線程)

2、運行時數據區 前言 內存是非常重要的系統資源,是硬盤和CPU的中間倉庫及橋樑,承載着操作系統和應用程序的實時運行。JVM內存佈局規定了Java|在運行過程中內存申請、分配、管理的策略,保證了JVM的高效穩定運行。不同的JVM對

原创 JVM---程序計數器(PC寄存器)

程序計數器 簡介 JVM中的程序計數寄存器(Program Counter Register) 中,Register 的命名源於CPU的寄存器,寄存器存儲指令相關的現場信息。CPU只有 把數據裝載到寄存器才能夠運行。這裏,並非是廣

原创 PIL.Image與opencv中的圖片切割

通常對圖片操作的庫有兩個,一個是PIL中的Image,一個是opencv中的cv2。 在Image中,通常用cut = img.crop((x, y, x + w, y + h))來切圖,x,y是座標,w,h是目標的長寬,返回值還

原创 設計模式之責任鏈模式(Chain of Responsibility)

責任鏈模式 用過tomcat或者springMVC的人應該都對過濾器不陌生吧,過濾器的實現就是責任鏈模式。 且看如何一步一步推到。話不多說,直接上代碼。 //這段代碼是實現將罵人詞彙過濾: public class Main {

原创 設計模式之責任鏈模式思考題(servlet中filter過濾器是如何實現的?)

對責任鏈不熟悉的朋友們可以參考我上一篇文章: 設計模式之責任鏈模式 問題: servlet中的過濾器是這樣的: 如何實現過濾器,使其處理request時是f1,f2,f3,f4的順序,處理response時的順序是f4,f3,f

原创 設計模式之代理模式(通過字節碼探究執行過程)

代理模式 代理模式的定義:代理模式給某一個對象提供一個代理對象,並由代理對象控制對原對象的引用。通俗的來講代理模式就是我們生活中常見的中介。 1、靜態代理 我們有一個接口Movable,實現該接口的類都是可移動的: interfa

原创 設計模式之工廠模式(簡單工廠,工廠方法,抽象方法)

工廠模式 1、簡單工廠模式: ​ 首先我們有一個Car類,這個Car可以go: public class Car { public void go() { System.out.println("car g

原创 SSM框架整合thymeleaf-spring5模板引擎

1、pom.xml文件增加依賴: <!--thymeleaf-spring5 --> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-

原创 ThreadPoolExecutor執行原理

線程池 基本概念: 一種線程使用模式。線程過多會帶來調度開銷,進而影響緩存局部性和整體性能。 不要使用Executor創建線程池,而是通過ThreadPoolExecutor的方式創建,這樣的處理方式能讓編寫代碼的人更加明確線程池

原创 通過幾個例子,進一步理解Java的Synchronized鎖中對象鎖與類鎖

資源類:電話,有發短信與打電話的功能。 class Phone { public void send() throws InterruptedException { TimeUnit.SECON

原创 算法設計與分析----矩陣連乘

給定n個矩陣{A1,A2,…,An},其中Ai與Ai+1是可乘的,i=1,2…,n-1。如何確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。例如,給定三個連乘矩陣{A1,A2,A3}的維數分別是10

原创 算法設計與分析----半數集問題

半數集問題描述: 給定一個自然數n,由n 開始可以依次產生半數集set(n)中的數如下。 (1) n∈set(n); (2) 在n 的左邊加上一個自然數,但該自然數不能超過最近添加的數的一半; (3) 按此規則進行處理,直到不能再

原创 算法設計與分析----最優二叉樹動態規劃

概念就不贅述了。 #include<bits/stdc++.h> using namespace std; double a[10],b[10]; double dp[10][10]; int s[10][10]; double

原创 算法設計與分析----凸多邊形最優三角剖分

#include<bits/stdc++.h> using namespace std; int w[10][10]; int dp[10][10]; int p[10][10]; int W(int a,int b,i