建立maven時eclipse錯誤訊息如下:
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-war- plugin:jar:2.2
建立maven時eclipse錯誤訊息如下:
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-war- plugin:jar:2.2
這裡大概說明4個GC ,如果進行了錯誤的選擇將會大大的影響程式的效能。
Serial 、Parallel、CMS、G1
Reference:
https://go.cloudbees.com/docs/solutions/jvm-troubleshooting/
如提, 這篇轉錄 Atlassian家的文章,
這篇用來測試Java application的執行速度.
工作上建置eclipse的時候需要設定proxy,
這邊簡單紀錄一下當時情境.
當編譯maven的時候遇到
Could not transfer metadata org.sonarsource.sonar-packaging-maven-plugin:sonar-packaging-maven-plugin/maven-metadata.xml from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
這邊就用 www.google.com 測試.
簡單做個筆記.
近期工作上需要監控 我用的JAVA開發的 api .
查看log ,被叫用的時候常常顯示剩餘heap memory過低.
這開啟Windows的工作管理員, 偏偏記憶體使用量和CPU都沒有飆高.
但log裡面檢查記憶體過低的告警就是一直寫.
從log看的即時性沒有那麼高, 比較無法知道當下的狀態.
最近開發專案需要使用客製化的Repository.
依照對方提供的資訊在pom.xml 中加入了對應的repository還有dependency.
但進行Maven Update的時候出現了錯誤訊息.
The container 'Maven Dependencies' references non existing library XXXXXXXX
JAVA的指令相當繁多, 不可能所有的都背起來.
以前寫C#的時候就有一種很便利的小功能.
打一個字, 後面相關的指令就會浮現. 如下圖
錯誤訊息如下
org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) pom.xml /<maven projectName> line 1 Maven Configuration Problem |
LRUMap 是一個暫存容器, 有點像Key value pair.
也可以是
Map<Object, Object>
一些簡單的code紀錄一下.
計算時間差的程式碼.
很多時候程式執行會有問題,
是資料異常還是邏輯不正確,
這時候就需要埋log把執行的當下內容寫下來.
之後進行佐證.
JAVA 內本身就有一個元件可以用Logger
java.util.logging.Logger 也存在很久了, 1.4就存在.
這邊來說下他的使用方式.
這邊來寫一下JAVA連線SQL和執行StoreProcedure的做法.
先附上 oracle官方說明文件
https://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html
如果沒有做版控, 那就無法得知線上版本和手上程式的差異,
或者開發人員已經離職了.
或者很多時候我們手上只有 .jar的檔案, 卻沒有source code.
這時候我們就需要使用工具來反組譯看看程式的內容.
這邊介紹幾套反組譯的工具.
原文簡單易懂,且內容不多,推薦直接看英文,這裏只是簡單翻譯一下,做為以後參考所用。
http://go.rritw.com/www.dzone.com/tutorials/java/ant/ant-sample-build-file-war-1.html
程式碼中可能會有助解寫中文,
更誇張的有可能把function的名字寫寫成中文,
C#我有看過, Java應該會顯示成亂碼,
這個時候我們要檢查哪些地方呢??
將物件實作了Serilizable ,這個物件即可被序列化,java中這種序列化提供了很多便利,我們不深入探討序列化的過程,只要這個類別實作了Serilizable,這個類別的所有屬性和方法都會自動序列化。
那修飾字 transient 是作什麼用的呢?
java 的transient關鍵字為我們提供了便利,我們只需要實作Serilizable介面,將不需要序列化的屬性前加上修飾字 transient,序列化物件的時候,這個屬性就不會序列化到指定的目的地中。
編寫多執行緒程式是為了實作多工的同步執行,從而能夠更好地提高執行速度。一般有三種方法,
Thread,Runnable,Callable.
Runnable和Callable的區別是,
(1)Callable規定的方法是call(),Runnable規定的方法是run().
(2)Callable在執行後可返回值,而Runnable在執行後不能返回值
(3)call方法可以拋出異常,run方法不可以
(4)執行Callable會返回Future物件,表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過Future物件可以瞭解執行情況,可取消執行,還可獲取執行結果。