Time of Update: 2018-07-27
在配置EditPlus之前是先將Java的運行環境安裝且調試好,然後進入EditPlus,從菜單“工具(Tools)”; “配置使用者工具...”進入使用者工具設定,選擇“組和工具條目”中的“Group 1”,點擊面板右邊的“組名稱...”按鈕,將文本Group1”修改成“Java編譯器”,點擊“添加工具”按鈕,選擇應用程式, 然後就是修改屬性: 1. 添加編譯功能
Time of Update: 2018-07-27
package com.common.util; import java.io.*;import java.util.ArrayList;import java.util.zip.*; public class UnZip { public static int iCompressLevel; //壓縮比 取值範圍為0~9 public static boolean bOverWrite; //是否覆蓋同名檔案 取值範圍為True和False
Time of Update: 2018-07-27
在正題之前,先瞭解一下java下抓取網頁上特定內容的方法,也就是所謂的網路爬蟲,在本文中只會涉及簡單的文字資訊與連結爬取。java中訪問http的方式不外乎兩種,一種是使用原生態的httpconnection,還有一種是使用封裝好的外掛程式或架構,如httpclient,okHttp等。在測試爬取網頁資訊的過程中,本人是使用的jsoup工具,因為該工具不僅僅封裝了http訪問,還有強大的html解析功能,詳細使用教程可參考http://www.open-open.com/jsoup/。
Time of Update: 2018-07-27
轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17161237 Java中實現多線程有兩種方法:繼承Thread類、實現Runnable介面,在程式開發中只要是多線程,肯定永遠以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類有如下優勢: 1、可以避免由於Java的單繼承特性而帶來的局限;
Time of Update: 2018-07-27
轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17487337 簡單使用Lock鎖 Java
Time of Update: 2018-07-27
物件導向編程有三大特性:封裝、繼承、多態。 封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了資料。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的存取方法。 繼承是為了重用父類代碼。兩個類若存在IS-A的關係就可以使用繼承。,同時繼承也為實現多態做了鋪墊。那麼什麼是多態呢。多態的實現機制又是什麼。請看我一一為你揭開:
Time of Update: 2018-07-27
一、目錄結構: 二、 1.web.xml <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http:
Time of Update: 2018-07-27
前言 在平時邏輯編碼中,我們很少用到final關鍵字,但是在閱讀一些源碼的時候發現final關鍵字還是很常用的,主要用處有以下幾種,本篇文章僅供個人學習使用,不一定正確,還請各位看到的博友給予相關的交流意見 final修飾類 表示該類不能繼承,但是final類中所有的成員方法都會被隱式的指定為final方法。 final修飾方法 final修飾的方法意指被鎖定,防止繼承類修改它的相關實現. final修飾變數
Time of Update: 2018-07-27
synchronized方式 package test;import java.util.LinkedList;import java.util.Queue;import java.util.Random;public class ProducerConsumer { public static void main(String args[]) { Queue<Integer> buffer = new LinkedList<>();
Time of Update: 2018-07-27
以前線程同步只知道synchronize關鍵字,後來才知道還有個lock,為什麼還要有個lock來實現同步呢 synchronized的局限性 佔有鎖的線程等待IO或者其他原因被阻塞,沒有釋放鎖的情況下,其他線程一直阻塞 多個線程同時讀寫檔案的時候,讀和讀操作也會發生衝突 我們沒有辦法知道當前我們的線程是否成功擷取了鎖,只能傻傻的等待 有這些限制所有其他的同步機制來解決,所以就有了lock,lock常用的兩個介面和兩個實現
Time of Update: 2018-07-27
package common.util;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;/**線程工具類*/public class ThreadUtil {/**長時間軸程池的最大線程數量*/private static final int MAX_THREAD =
Time of Update: 2018-07-27
匯總JDK內建的四個常用線程池的用法 package thread.pool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;public class ThreadPoolUtil {
Time of Update: 2018-07-27
隨著時間的推移,前後端分離的開發形式越來越流行,使用的公司也越來越多。但是這種開發形式也會帶來一個問題。那就是跨域問題。 什麼是跨域 跨域,指的是瀏覽器不能執行其他網站的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。 什麼情況下不是跨域。 即:滿足網域名稱、協議、連接埠均相同的即不是跨域。 例如 http://www.beyondLi.com/index.html 調用
Time of Update: 2018-07-27
java資料中有byte(位元組) short int long short佔兩個位元組, 就是等於2個byte。 int等於兩個short,就是等於4個byte。 long等於兩個int, 就是等於8個byte。 由於電腦數值是2進位的關係,所以它們都是2的倍數, 2 byte = 1 short &
Time of Update: 2018-07-27
ReentrantLock是一個重入鎖,可以支援一個線程對資源重複加鎖,他還支援公平加鎖和非公平加鎖。synchronized關鍵字也隱式的支援重進入,比如一個synchronized修飾的遞迴方法,在方法執行時,執行線程在擷取了鎖之後仍能連續多次地獲得該鎖ReentrantLock雖然沒能像synchronized關鍵字一樣支援隱式的重進入,但是在調用lock()方法時,已經擷取到鎖的線程,能夠再次調用lock()方法擷取鎖而不被阻塞。 公平鎖 定義
Time of Update: 2018-07-27
為什麼使用線程池 對於服務端的程式,經常面對的是用戶端傳入的短小(執行時間短、工作內容較為單一)任務,需要服務端快速處理並返回結果。如果服務端每次接受到一個任務,建立一個線程,然後進行執行,這在原型階段是個不錯的選擇,但是面對成千上萬的任務遞交進伺服器時,如果還是採用一個任務一個線程的方式,那麼將會建立數以萬記的線程,這不是一個好的選擇。因為這會使作業系統頻繁的進行線程環境切換,無故增加系統的負載,而線程的建立和消亡都是需要耗費系統資源的,也無疑浪費了系統資源。線程池就很好的解決了這個問題。
Time of Update: 2018-07-27
鎖是個非常有用的工具,運用情境非常多,因為它使用起來非常簡單,而且易於理解。但同時它也會帶來一些困擾,那就是可能會引起死結,一旦產生死結,就會造成系統功能不可用。 死結的概念 那什麼是死結呢。所謂死結: 是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死結狀態或系統產生了死結,這些永遠在互相等待的進程稱為死結進程。 死結產生的必要條件
Time of Update: 2018-07-27
volatile定義 Java程式設計語言允許線程訪問共用變數,為了確保共用變數能被準確和一致地更新,線程應該確保通過獨佔鎖定單獨獲得這個變數。Java語言提供了volatile,在某些情況下比鎖要更加方便。如果一個欄位被聲明成volatile,Java線程記憶體模型確保所有線程看到這個變數的值是一致的。 volatile的作用
Time of Update: 2018-07-27
如何將字串資訊直接寫儲存到文字檔,Java 提供了很方便的方法,代碼如下: import java.io.File;import java.io.StringWriter; /** * 傳入檔案名稱以及字串, 將字串資訊儲存到檔案中 * * @param strFilename * @param strBuffer */ public void TextToFile(final String strFilename, final String
Time of Update: 2018-07-27
將字串寫入檔案 方法一 public void WriteStringToFile(String filePath) { try { File file = new File(filePath); PrintStream ps = new PrintStream(new FileOutputStream(file)); ps.println("http://www.jb51.net"