Time of Update: 2018-07-27
分類:Unity3D遊戲開發Java基礎 前幾天有位網友問我關於Unity3D裡面使用Protobuf的方法,一時有事拖到現在才寫這篇文章,不好意思哈。 本文測試環境: 系統:WINDOWS 7(第3、6步)、OS X 10.9(第4步) 軟體:VS 2012(第3、6步)、Eclipse(第5、6步) 硬體:iPad 2(第4步)、Macbook Pro Mid 2012(第4步) 文章目錄: 1、關於Protobuf的C#實現
Time of Update: 2018-07-27
基本概念 阻塞和非阻塞 阻塞是進行讀寫時, 如果當時沒有東西可讀,或者暫時不可寫, 程式就進入等待, 直到有東西可讀或者可寫為止 非阻塞是如果沒有東西可讀, 或者不可寫, 讀寫函數馬上返回, 而不會等待 同步和非同步 同步是指的是使用者操作後等待或者輪詢的去查看操作是否就緒 非同步是指使用者某動作操作後便開始做其他動作,而當這個動作操作完成的時候使用者會得到這個動作完成的通知 IO模型 同步阻塞IO(JAVA BIO):
Time of Update: 2018-07-27
最近工作需要做了一下圖片驗證碼自動識別的功能。但是網上對於初始圖片的處理方法有去噪點、灰階化等,唯獨難搜到去除幹擾線的方法。於是根據網上搜來的代碼,自己嘗試寫了一段,親測有效,可以比較乾淨地去除幹擾線,提高OCR識別的準確率。 以下代碼除“去除幹擾線條“”一小段為原創,其他均為網上搜尋所得,但是很抱歉我忘記了來源網址,以後如果能找到再補上。在此先謝過慷慨分享原始代碼的前輩。 demo如下: import java.awt.Color;import
Time of Update: 2018-07-27
今天開啟ECLIPSE的時候報這個錯,後來發現原來是JDK的問題:我的原來的JDK已經太舊了,需要新版的JDK才行。 解決辦法: 1,安裝新版JDK 2,將新版JDK JAVAW.EXE路徑加入到ECLIPSE.INIT檔案中,注意-vm必須在-vmargs之前。 -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.library
Time of Update: 2018-07-27
java ClassLoader的學習 java是一門解釋執行的語言,由開發人員編寫好的java源檔案先編譯成位元組碼檔案.class形式,然後由java虛擬機器(JVM)解釋執行,.class位元組碼檔案本身是平台無關的,但是jvm卻不是,為了實現所謂的一次編譯,到處執行,sun提供了各個平台的JVM實現--也就是說 jvm不是跨平台的,編譯好的位元組碼檔案被放在不同的作業系統平台上的jvm所解釋執行,這個章節主要解釋一下JVM裝載類的機制
Time of Update: 2018-07-27
先要說的是,java的API裡面已經提供了單向鏈表的類,大家可以直接拿來用。在這自己實現的目的是為了更好的理解鏈表資料結構。這裡主要是介紹一些常用結構裡面都會用到的方法,以及鏈表具體是如何操作的。 People.java 類是自訂的資料類型 public class People {private String name; //姓名private int age; //年齡private int id; //唯一標識idpublic People(String name, int
Time of Update: 2018-07-27
package com.duanxin;import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import com.jy.lexiu.api.evaluation.entity.LpEvaluationPart;import com.jy.lexiu.business.picc.beans.LpEvaluPart;public class Test {/** *
Time of Update: 2018-07-27
一:java方式讀取(只能讀取class檔案下的properties檔案) private static String smsUrl;//url static { Properties prop = new Properties(); URL url= SendSMS.class.getResource("/sms.properties"); try { prop.load(url.
Time of Update: 2018-07-27
java.math. RoundingMode.HALF_UP Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up. Behaves as for RoundingMode.UP if the discarded fraction is ≥ 0.5; otherwise,
Time of Update: 2018-07-27
CMPP發送長簡訊,我可以實現了 CMPP2長簡訊實現(java版) 辭職後我就在yiDong從事簡訊和群發的工作,從北京方面的專家哪裡學會了傳送簡訊,一開始只能發送短簡訊,就是不超過140個字元,如果超過我就分割然後分成短的發送。一直不能發送超過140字元的。後來經過我閱讀了很多人文章才實現,主要是看了下面的內容,然後修改了代碼才實現的。希望能夠協助和我一樣迷茫的朋友把。 http://blog.csdn.net/pwlazy/archive/2010/0
Time of Update: 2018-07-27
問: 當一個線程進入一個對象的synchronized方法A之後,其它線程是否可進入此對象的synchronized方法B。 答: 不能。其它線程只能訪問該對象的非同步方法,同步方法則不能進入。因為非靜態方法上的synchronized修飾符要求執行方法時要獲得對象的鎖,如果已經進入A方法說明對象鎖已經被取走,那麼試圖進入B方法的線程就只能在等鎖池(注意不是等待池哦)中等待對象的鎖。 拓展:
Time of Update: 2018-07-27
1.使用synchronized關鍵字,多線程的同步依靠的是對象鎖機制,synchronized關鍵字的背後就是利用了封鎖來實現對共用資源的互斥訪問。 2.使用lock, Lock是java.util.concurrent.locks包下的介面,Lock 實現提供了比使用synchronized 方法和語句可獲得的更廣泛的鎖定操作,它能以更優雅的方式處理線程同步問題 下面這段代碼展示了lock的用法 public class LockTest { public
Time of Update: 2018-07-27
目錄 什麼是可重新進入鎖 為什麼要可重新進入 如何?可重新進入鎖 有不可重新進入鎖嗎 demo代碼展示 參考文章 1 . 什麼是可重新進入鎖 鎖的概念就不用多解釋了,當某個線程A已經持有了一個鎖,當線程B嘗試進入被這個鎖保護的程式碼片段的時候.就會被阻塞.而鎖的操作粒度是”線程”,而不是調用(至於為什麼要這樣,下面解釋).同一個線程再次進入同步代碼的時候.可以使用自己已經擷取到的鎖,這就是可重新進入鎖
Time of Update: 2018-07-27
首先: 我這個辦法不是針對使用Maven外掛程式的解決辦法,Maven外掛程式的哪種應該要配置那個XML的方法,我沒試過。 我的Jetty 6 是下的eclipse外掛程式的哪種,在提交比較大的資料時會出現 他預設是2MB(200000) 我們只需要把這個大小放大一點 java.lang.IllegalStateException: Form too large: 201975 > 200000 Jetty 6 解決辦法 -Dorg.mortbay.jetty.
Time of Update: 2018-07-27
Java資料結構——線性單鏈表的實現 一、描述 線性表的鏈式儲存結構的特點:用一組任意的儲存單中繼存放區線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。因此它沒有順序儲存結構所具有的弱點(順序儲存結構插入資料或刪除資料都要移動大量的資料),但同時也失去了順序表可隨機存取的優點。 單鏈表的組成為:資料資訊和指向下一個節點的指標。 二、源碼 2.1 節點資訊Node.java package com.yds.list;public class
Time of Update: 2018-07-27
Java 提供了容納對象(或者對象的控制代碼)的多種方式。其中內建的類型是數組,此外, Java 的工具庫提供了一些 “集合類”,利用這些集合類,我們可以容納乃至操縱自己的對象。 聲明:本篇部落格內容參考自《java編程思想》,代碼均來自書中,大部分內容截取自該書 數組和第一類對象 無論使用的數組屬於什麼類型,數群組識別碼實際都是指向真實對象的一個控制代碼。那些對象本身是在記憶體 “堆”裡建立的。堆對象既可“隱式”建立(即預設產生),亦可“顯式”建立(即明確指定,用一個 new
Time of Update: 2018-07-27
public class ReadFile { //Main函數,程式入口 public static void main(String[] args) { //調用讀取方法,定義檔案以及讀取行數 List<String> list = readLastNLine(new File("D:/1.txt"), 5L); if (list != null) { for (String str
Time of Update: 2018-07-27
【225-Implement Stack using Queues(用隊列實現棧操作)】 【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】 代碼下載【https://github.com/Wang-Jun-Chao】 原題 Implement the following operations of a stack using queues. push(x) – Push element x onto stack. pop() –
Time of Update: 2018-07-27
在開發中經常遇到myeclipse不編譯的情況,但不同情況的解決方案又不一樣,今天同樣是遇到此類情況,在網上狂搜,終於找到一篇好文,它囊括瞭解決這種情況的常用的方法,現在發出來與大家分享。我遇到的情況是通過最後一個方法解決的:classpath檔案,裡面的路徑不正確。 MyEclipse不編譯解決1. 確保 project->build automatically 已經被選上. MyEclipse不編譯解決2.
Time of Update: 2018-07-27
1、JAVA中有四個存取修飾詞:default/public/private/protected 2、他們都擁有著不同的存取權限,而在不同情況下又有著不同的存取權限,分為以下幾種 { 1、同類中 { 首先我們寫一段用來測試的代碼 { class boar { void defmethod() { System.out.println("default method"); }