一.Java內存溢出的產生緣由和解決辦法?java
java.lang.OutOfMemoryError這個錯誤我相信大部分開發人員都有遇到過,產生該錯誤的緣由大都出於如下緣由:JVM內存太小、程序不嚴密,產生了過多的垃圾。web
致使OutOfMemoryError異常的常見緣由有如下幾種:數據庫
此錯誤常見的錯誤提示:bootstrap
解決java.lang.OutOfMemoryError的方法有以下幾種:瀏覽器
《一》增長jvm的內存大小。方法有: 1)在執行某個class文件時候,可使用java -Xmx256M aa.class來設置運行aa.class時jvm所容許佔用的最大內存爲256M。 2)對tomcat容器,能夠在啓動時對jvm設置內存限度。對tomcat,能夠在catalina.bat中添加:緩存
set CATALINA_OPTS=-Xms128M -Xmx256M set JAVA_OPTS=-Xms128M -Xmx256M
或者把%CATALINA_OPTS%和%JAVA_OPTS%代替爲-Xms128M -Xmx256Mtomcat
3)對resin容器,一樣能夠在啓動時對jvm設置內存限度。在bin文件夾下建立一個startup.bat文件,內容以下:框架
@echo off call "httpd.exe" "-Xms128M" "-Xmx256M" :end
其中"-Xms128M"爲最小內存,"-Xmx256M"爲最大內存。jvm
《二》、 優化程序,釋放垃圾。優化
主要包括避免死循環,應該及時釋放種資源:內存, 數據庫的各類鏈接,防止一次載入太多的數據。致使java.lang.OutOfMemoryError的根本緣由是程序不健壯。所以,從根本上解決Java內存溢出的惟一方法就是修改程序,及時地釋放沒用的對象,釋放內存空間。 遇到該錯誤的時候要仔細檢查程序,嘿嘿,遇多一次這種問題以後,之後寫程序就會當心多了。
須要重點排查如下幾點:
二,使用Redis作緩存的好處?
針對那些用戶信息基本固定,一旦錄入不多變更,那麼你每次加載全部用戶信息時,若是都要請求數據庫,數據庫編譯並執行你的查詢語句,這樣效率就會低下不少,針對這種信息不常常變更而且數據量較大的狀況,一般作法,就是把他加入緩存,每次取數前先去判斷,若是緩存不爲空,那麼就從緩存取值,若是爲空,再去請求數據庫,並將數據加入緩存,這樣大大提升系統訪問效率
三。bootstrap 的網格的使用?
bootstrap框架中的網格系統就是將容器平分紅12份,在使用的時候能夠根據實際狀況從新編譯LESS/SASS源碼來修改12這個數值
bootstrap框架的網格系統工做原理:
一、數據行(.row)必須包含在容器(.container)中,以便其賦予合適的對齊方式和內距(padding)
<div class="container"> <div class="row"></div> </div>
二、在行(.row)中能夠添加列(.column),但列數之和不能超過平分的總列數(如:12)
<div class="container"> <div class="row"> <div class="col-md-4"></div> <div class="col-md-8"></div> </div> </div>
三、具體內容應當放在列容器(.column)以內,並且只有列(.column)才能夠做爲行容器(.row)的直接子元素
四、經過設置內距(padding)從而建立列與列之間的間距,而後經過爲第一列和最後一疊設置負值的外距(margin)來抵消內距(padding)的影響
在bootstrap網格系統中帶有響應式效果,其帶有四種類型的瀏覽器,(超小屏,小屏,中屏和大屏),其斷點是768px,992px,1220px
容器(.container),針對不一樣的瀏覽器分辨率,其寬度也不同:自動,760px,970px,1170px;
.container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; @media (min-width: 768px) { .container { width: 750px; } @media (min-width: 992px) { .container { width: 970px; } @media (min-width: 1200px) { .container { width: 1170px; }
容器(.row),將容器的行平分了12等份,也就是列。每一個列都有個padding-left:15px和padding-right:15px;這樣也致使了第一列的padding-left和最後一列的paading-right佔據了中寬度的30px
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; }
行容器(.row)定義了margin-left和margin-right值爲-15px,用來抵消第一列的左內距和最後一列的右內距,這樣第一列和最後一列與容器(.container)之間就沒有間距了
.row { margin-right: -15px; margin-left: -15px; }
基本用法
因爲bootstrap框架在不一樣屏幕尺寸使用了不一樣的網格樣式,下面就以中屏(970px)爲例。
一、列組合
列組合就是更改數字來合併列(列總數不能超過12),有點相似於表格的colspan屬性;列組合方式只涉及兩個特性:浮動於寬度百分比
<div class="container"> <div class="row"> <div class="col-md-4">col-md-4</div> <div class="col-md-8">col-md-8</div> </div> <div class="row"> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> </div> <div class="row"> <div class="col-md-3">col-md-3</div> <div class="col-md-6">col-md-6</div> <div class="col-md-3">col-md-3</div> </div> </div>
效果以下: