Time of Update: 2018-07-27
Dao模式是Java面向設計時的一種模式。而Dao中的BaseDao無非是對資料進行CURD(增刪改查),下面列出兩種常用的串連,增刪改的方法。 情況一: mport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class BaseDao {
Time of Update: 2018-07-27
註解介紹 1.5開始引入 註解可以理解為一種描述資料的資料,或者可以稱為一種描述中繼資料的方法。 java提供的預設註解:@Override,@Deprecated。 註解僅僅是中繼資料,和商務邏輯無關 定義方法在 java.lang.annotation包中 元註解 java提供4中元註解來定義我們的註解 1. @Target, 2. @Retention, 3. @Documented, 4. @Inherited 1.
Time of Update: 2018-07-27
1. Java垃圾管理機制 對象已死判斷方法: 1引用計數法,2可達性分析演算法(由GC ROOTs到該類是否可到達) 引用: 強引用:在代碼中普遍存在,用new產生對象,這樣的強引用永遠不會回收掉引用的對象 軟引用:在系統記憶體溢出前,會把這類對象進行第二次回收,如果這次回收後記憶體還是不足,會拋出OOM錯誤,提供了SoftReference實現軟引用。
Time of Update: 2018-07-27
HotSpot虛擬機器內的即時編譯器 最近在看周志明老師的《深入理解Java虛擬機器》這本書,看了之後感覺收穫挺多的,於是就寫點讀書總結吧。 先看如下問題: 1、 為何HotSpot虛擬機器要使用解譯器與編譯器並存的架構。 2、 為何HotSpot虛擬機器要實現兩個不同的即時編譯器。 3、 程式何時使用解譯器執行。何時使用編譯器執行。 4、 那些程式碼會被編譯為本地代碼。如何便以為本地代碼。
Time of Update: 2018-07-27
From: http://beginnersbook.com/2014/01/how-to-delete-file-in-java-delete-method/ /* 使用File的delete()方法刪除檔案 */import java.io.*;public class Exercise { public static void main(String args[]) { try { // Specify the file name and
Time of Update: 2018-07-27
報錯原因: 使用maven進行打包發布項目時,maven無法對src/main/java下面的xml檔案進行編譯打包 目錄結構:此項目的mapper包下的BankLogMapper.xml無法編譯打包 解決辦法一: 1.所以必須在pom.xml檔案中添加下面代碼 <build> ... <resources> ...
Time of Update: 2018-07-27
參考了幾篇文章 載入jar包的類URLClassLoader中使用的方法為addURL,但是這個方法是protected類型 分別用了兩種方法 一、 參考 http://blog.csdn.net/ozwarld/article/details/7440937 反射到這個類 Method add = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] {
Time of Update: 2018-07-27
一直對這個概念很模糊,無法抓到它的點,不明白它的真正含義。 最近看到了Mybatis裡邊動態SQL標籤,裡面的用法讓我對Java的動態載入機制恍然大悟。 @SelectProvider(type = UserDaoSqlProvider.class,method = "findUserByName") List<User> findUserByName(String username) throws IOException;
Time of Update: 2018-07-27
package cn.howso.deeplan.son.feeder.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import
Time of Update: 2018-07-27
1.原子性 java中的原子性,是指:原子操作是不能被線程調度機制中斷的;操作一旦開始,它一定會在可能發生的“環境切換”(即切換到其他線程執行)之前執行完畢。 但是千萬不要認為“原子操作不需要同步控制(這是錯誤的)”。 原子性可以應用於除long和double之外的基本類型的簡單操作(賦值和傳回值)。long和double這種64位的資料類型,在JVM內部是通過兩條32位的操作完成的,因此有可能發生環境切換。如果給long和double變數加上volatile關鍵字也可以獲得原子性。
Time of Update: 2018-07-27
1 Java有個東西叫垃圾收集器,它讓建立的對象不需要像c/cpp那樣delete、free掉,你能不能談談,GC是在什麼時候,對什麼東西,做了什麼事情。 一,如何gc。 GC是在是一個獨立的線程,用來操作堆記憶體。 Garbage Collection 是根據分代來收集:對年輕代的收集和對老年代的收集; 年輕代又稱為eden s0 s1(Survive代) 代,老年代又稱為tenured代;年輕代滿了的化採用minor gc
Time of Update: 2018-07-27
在JavaWeb的相關開發中經常會涉及到多級菜單的展示,為了方便菜單的管理需要使用資料庫進行支援,本例採用相關演算法講資料庫中的條形記錄進行相關組裝和排序講菜單組裝成樹形結構。 首先是需要的JavaBean 1 2 3 import java.io.Serializable; 4 import java.util.ArrayList; 5 import java.util.Collections; 6 import
Time of Update: 2018-07-27
jvm佔用檔案導致檔案不能刪除,debug過程中嘗試手動刪除檔案會提示“檔案已在java platform se binary”中開啟。 一般來說 java file.delete失敗 有以下幾個原因 1.看看是否被別的進程引用,手工刪除試試(刪除不了就是被別的進程佔用) 2.file是檔案夾 並且不為空白,有別的檔案夾或檔案, 3.極有可能有可能自己前面沒有關閉此檔案的流 轉載自:https://www.cnblogs.com/stono/p/6736767.html
Time of Update: 2018-07-27
自訂標籤: 1.修改web.xml檔案在其中加上對自訂標籤的支援: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
Time of Update: 2018-07-27
新生代回收:(複製演算法) 在堆中,新生代主要存放的是哪些很快就會被GC回收掉的或者不是特別大的對象(是否設定了-XX:PretenureSizeThreshold 參數)。複製演算法的新生代分為3個區:較大的Eden和兩個較小的Survivor(預設的Eden:Survivor = 8:1)。發生在新生代的GC為Minor GC 。在Minor
Time of Update: 2018-07-27
參考:http://www.jroller.com/maxim/entry/again_about_determining_size_of 參考:http://blog.csdn.net/xieyuooo/article/details/7068216 我們為什麼想要知道對象所佔對記憶體的大小呢。 (1)做一些cache的時候,我們不可能把資料庫的所有的資料都緩衝到記憶體裡面,我們要估計緩衝的大小。
Time of Update: 2018-07-27
1.泛型是Java 1.5的新特性,泛型的本質是參數化型別,也就是說所操作的資料類型被指定為一個參數。這種參數類型可以用在類、介面和方法的 建立中,分別稱為泛型類、泛型介面、泛型方法。 2.Java泛型被引入的好處是安全簡單。 在Java SE 1.5之前,沒有泛型的情況的下,通過對類型Object的引用來實現參數的“任意化”,“任意化”帶來的缺點是要做顯式的強制類型轉
Time of Update: 2018-07-27
,此次升級為瞭解決查詢時每次都要轉成對象集合,實現方式泛型加反射(那個流行的架構又沒用到反射呢),能反射對象就能反射SQL語句,能反射SQL語句你和hibernate架構就很接近 package com.sun.dao;import java.lang.reflect.Method;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import
Time of Update: 2018-07-27
1.Hibernate基礎 1.1. Hibernate用來做什麼 * Hibernate是開源的、用亍封裝資料訪問層的組件,我們稱乊為資料訪問層架構(戒持久層架構)。 乊前我們通過JDBC/SQL語句從資料庫中訪問/操作資料,而Hibernate就是封裝了這些操作,與 門用亍資料訪問層的組件技術。 出現Hibernate架構乊前在企業專案開發過程中,如下幾點造成了程式員們的痛苦: SQL語句過亍繁雜, 和資料庫的耦合度高
Time of Update: 2018-07-27
當使用Lock來保證線程同步時,需使用Condition對象來使線程保持協調。Condition執行個體被綁定在一個Lock的對象上,使用Lock對象的方法newCondition()擷取Condition的執行個體。Condition提供了下面三種方法,來協調不同線程的同步: 1、await():導致當前線程等待,直到其他線程調用該Condition的signal()或signalAll()方法喚醒該線程。 2、signal():喚醒在此Lock對象上等待的單個線程。