原创 java性能優化開發之--使用ArrayCopy進行復制

java 實現中,System.AarrayCopy()方法是native的,native修飾符是java 爲了增強其運算能力,使用JNI方式實現的類或方法,通過調用系統的API來加快其運行速度

原创 java性能開發之--儘量使用final修飾符

帶有final修飾符的類是不可派生的,在java核心的API中,有許多應用final的例子,例如java.lang.string。 爲String 類指定final防止了使用者覆蓋length()方法. 如果一個類是final 的,則該

原创 java性能優化設計之--異步處理

異步是相對於同步來說的,異步處理通常使用在線程之上,包括JVM內部線程,外部RPC線程等 異步最大優勢是可以在宏觀層面提高資源的使用率,提供優秀的交互體驗 “所有耗時操作皆異步”是J2EE構建異步系統的首要原則

原创 java性能優化開發之--禁用System.out.println

System.out.println將對象結果輸出到控制檯,會花費大量的CPU資源,發佈的代碼中不能包含System.out.println。 可以用日誌框架代替,注意控制輸出級別

原创 java性能優化開發之--禁止用顯示的垃圾回收

如果JVM正在進行一個分代的垃圾回收器 system.gc();  強迫jvm執行一個堆內存的“全部清掃”,比一個常規的GC操作要昂貴好幾個數量級 --x:+DissableExplicitGC標誌自動將所有的system.gc()調用

原创 http協議詳解

1. 基礎概念篇 1.1 介紹   HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫。它的發展是萬維網協會(World Wide Web Consortium)和Internet工作小組IET

原创 子Div使用Float後如何撐開父Div

一個Div包含了多個子Div,並且子Div使用了浮動後,父Div確不能被撐開,如下圖: 部分代碼如下: 1 <style>2   #div1{border:1px solid red;float:left;}3   #div2

原创 TCP/IP詳解學習筆記(12)-TCP的超時與重傳

超時重傳是TCP協議保證數據可靠性的另一個重要機制,其原理是在發送某一個數據以後就開啓一個計時器,在一定時間內如果沒有得到發送的數據報的ACK報文,那麼就重新發送數據,直到發送成功爲止。 1.超時 超時時間的計算是超時的核心部分,TCP

原创 TCP/IP詳解學習筆記(4)-ICMP協議,ping和Traceroute

1.IMCP協議介紹 前面講到了,IP協議並不是一個可靠的協議,它不保證數據被送達,那麼,自然的,保證數據送達的工作應該由其他的模塊來完成。其中一個重要的模塊就是ICMP(網絡控制報文)協議。 當傳送IP數據包發生錯誤--比如主機不可達

原创 TCP/IP詳解學習筆記(5)-IP選路,動態選路,和一些細節

1.靜態IP選路 1.1.一個簡單的路由表 選路是IP層最重要的一個功能之一。前面的部分已經簡單的講過路由器是通過何種規則來根據IP數據包的IP地址來選擇路由。這裏就不重複了。首先來看看一個簡單的系統路由表。 Destination  

原创 http協議之---瀏覽器緩存機制

瀏覽器緩存機制 瀏覽器緩存機制,其實主要就是HTTP協議定義的緩存機制(如: Expires; Cache-control等)。但是也有非HTTP協議定義的緩存機制,如使用HTML Meta 標籤,Web開發者可以在HTML頁面的<h

原创 TCP/IP詳解學習筆記(1)-基本概念

爲什麼會有TCP/IP協議 在世界上各地,各種各樣的電腦運行着各自不同的操作系統爲大家服務,這些電腦在表達同一種信息的時候所使用的方法是千差萬別。就好像聖經中上帝打亂了各地人的口音,讓他們無法合作一樣。計算機使用者意識到,計算機只是

原创 TCP/IP詳解學習筆記(6)-UDP協議

1.UDP簡要介紹 UDP是傳輸層協議,和TCP協議處於一個分層中,但是與TCP協議不同,UDP協議並不提供超時重傳,出錯重傳等功能,也就是說其是不可靠的協議。 2.UDP協議頭 2.1.UDP端口號 由於很多軟件需要用到UDP協議,所

原创 最全面 Nginx 入門教程 + 常用配置解析

  Nginx介紹和安裝 一個簡單的配置文件 模塊介紹 常用場景配置 進階內容 參考資料     == Nginx介紹和安裝 ==   Nginx是一個自由、開源、高性能及輕量級的HTTP服務器及反轉代理

原创 JS排序算法

<script> Array.prototype.swap = function(i, j) { var temp = this[i]; this[i] = this[j]; this[j] = temp; } Array.prototy