註意しろ!
1.不要將class文件名設置成與系統類相同,否則導包容易出現錯誤
2.如果集合中存儲的是類的話,那麽使用contains方法的話需要對位
使用,不能直接對整個集合使用,否則將沒效果(需要拆進去)
(day09:LessionCode)
3.extend繼承父類,用super調用父類方法,
protected可以調用父類中的方法,private不行(private是僅能在
本類中調用,protected比他高一級
重寫,重構
創建對象,然後在棧中生成相應的地址,並把其中的方法存到方法區
中,需要的時候調用其方法。
因為方法中的變量是局部變量,所以存在堆中。
所以當創建完對象以後,new出來的東西,其中的局部變量有自己的
默認值
然後需要引用方法的時候就從方法區拉出來需要的方法使用。
修飾符,返回值類型,方法名(){}
4.因為Scanner類裏沒有輸出char的方法,所以如果想讓輸出結果為
一個字符的話就輸入字符串然後取第一個值- -アホ
5.StringBuilder的reserve()方法,是直接將緩存的緩沖字符串直接
反轉然後返回到該字符串上,而不是只返回方法調用後的本身不改變
6.equals的使用對象:如果是基本數據類型之間的比較的話就是比較
值,如果是引用類型比較的話就是比較地址,果是類之間的比較的話
最好是重寫方法,使之可以比較類裏的成員(不重寫的話就是只比較
地址)
7.垃圾回收機制,棧中的垃圾會被立即回收,但是堆中的垃圾是有空
閑的話再回收
=======================================
1.不知道有什麽格式不對的就翻API裏面有格式。
2.Calendar是抽象類所以不能創建對象,要使用getInstance()方法
(此方法返回了Calendar的子類,然後以多態的形式返回給父類
(Calendar))
3.FileReader和FileWriter,InputStreamReader和
OutputStreamWriter,BufferedWriter和BufferedReader都是字
符流,FileInputStream和FileOutputStream是字節流
4.叠代器相當於集合的一個副本,如果叠代器在叠代過程中發現於集
合不同則會拋出並發修改異常
(ConcurrentModificationException),如果想要在叠代過程中添加
元素就要使用ListIterator
5.鏈表進行添加操作的時候可以移動下標地址也可以移動上標地址。
6.異常的註意事項
如果接口在定義方法的時候如果沒有拋出異常
那麽子類在處理父類的重寫方法的時候要等於或者小於父類方法拋出
的異常
因為父類沒有拋出異常所以子類也不能拋出異常,只能用try catch
7.線程能亂搶
8.西歷是以12月作為起始月,星期天作為每個星期第一天,
Calendar輸入的日期月份和星期都減一才是國歷
9.寫代碼從右往左寫,先寫具體實現類(子類)然後在寫左邊的父類或
者本類,學習使用ctrl+1,但是不是硬性規定,看使用的時間和方式
10.因為子類繼承了父類,所以子類會繼承父類所有的方法(除了私有)
,註意學習方法是學習頂層父類的所有方法和子類特有的或者重寫之
後的方法
11.多態之後可進行向下轉型,如果沒有進行多態的話,父類不能直
接向下轉成子類
=======================================
1.修改的路徑名不能是已經存在的,因為不能有重名的文件,可以加
個判斷然後改名
2.字節流讀寫文件的時候不需要flush,因為是直接寫到文件中(實時
傳輸)而不是輸入到緩沖區中
3.自己寫的復制文件夾的操作中,註意路徑的寫法,否則無法將子文
件夾中文件復制到父文件夾中
4.寫方法的步驟:1.註意方法需要的條件,2.方法的返回值參數類型
,最重要的是方法的使用場景與條件(審題)
5.一個問題,15分鐘寫不出來就跳,把註意事項或者小思路寫出來,
之後有時間或者想起來了再寫,浪費時間還低效
7.文件復制的步驟:
>確定目標文件夾是否存在
>確定路徑
>如果是文件就調用IO流方法讀寫
>如果是文件夾,就調用自己遞歸,註意路徑
8.遞歸可以使用void作為返回值,並且遞歸過程中不需要return,比
較方便
9.如果Eclipse處理的文件在占用中(在運行)中,那麽就會找不到這個
文件
10.同一時間同一個文件只能關聯一個流,如果有兩個以上的流的話
後面的流會把前面的流覆蓋
11.對象創建的步驟:
1.先加載對象的方法(class文件)
2.創建對象的靜態區域的方法和變量
3.創建對象的非靜態區域的方法和變量
=======================================
1.PrintWriter底層是轉換流
2.操作最好在服務器裏進行操作,客戶端只需要進行簡單的交互就行
3.根標簽只能有一個,根標簽裏括號裏不寫東西
4.瀏覽器也是一種XML解析工具
5.傳遞XML路徑名的時候,/和\\不一樣,只能用/
6.因為List允許重復,所以用List存儲elements的值,並且List沒有
精準獲取某個元素的位置的方法,但是有獲取元素首次出現和最後出
現的方法
7.刪除某個字節點的話,刪除節點的方法的位置是在它的父節點上,
僅僅是父節點 getParent()
8.XML解析後重新寫入的時候,寫入方法裏默認調用了能傳List的方
法,所以直接改變List裏的值會直接影響XML文件
9.Declared方法和普通方法的區別:
普通的方法只能返回被public修飾的方法,但是可以返回所有繼承來
的父類的方法
Declared方法可以返回所有類型的方法,但是不能返回繼承來的方
法
10.反射中,如果是單個聲明或者聲明特定值就需要寫參數,如果返
回的是數組就不需要寫參數(廢話)
=======================================
HTML章節
1.先創建大的框架然後再設置內部內容
2.仔細審圖
3.如果是要填充滿表格的話就將寬和高設置滿填充
4.style中,如果只有一個屬性可以不寫分號
5.js是種弱類型語言,所以可以亂賦值
6.外部引用引入方式都是用src
7.外部引用的時候,script標簽內禁止寫js代碼,因為寫了還是不會
執行
8.JavaScript沒有訪問系統文件的權限
9.JavaScript無需編譯,所以如果有重復性的多行分解性動作,就會
依次執行,進而運行效率就降低了。因為是一行一行的執行,所以允
許鏈式編程,建議寫在body體裏
10.JavaScript和Java沒有任何直接聯系!
11.放置位置隨意,開發規範規定寫在body體中
優點:優先加載HTML信息,然後再加載腳本,增強用戶的體驗
性
12.(float樣式)如果是多個一起浮動的話,浮動拼接不是上下,是左
右。浮動會影響原有的布局,浮動之後的布局會脫離原來的板式(模
塊),所以浮動之後要重新布局
13.選擇器的組合:只要滿足了組合條件,不管中間掛了多少層都能
使用
14.如果id選擇器被二次使用,那麽只是在html中是不會報錯,也會
產生效果,但是如果在後期操作的時候會出錯,所以這裏要人工的進
行保證id唯一
15.在js中,null:空,一個占位符,typeof返回的是object
這是ECMAScript的一個bug,null是基本數據類型,但是
typeof(null)返回的是object(引用數據類型)
16.因為js是弱類型語言,所以 /或% 可能和Java不同
17.對div進行大小設置和對圖片進行大小設置的區別:
div設置大小是對框架的設置,圖片設置大小是直接設置傳入的圖片
的大小
18.如果只是給框架設置大小的話就相當於限制最大值,這個最大值
只能用百分比能看出來,限制大小之後,比如給裏面的img標簽設置
大小,那麽設置的就是img圖片的大小
=======================================
web章節:
1.where後面不能跟聚合函數,如果想要使用帶有聚合函數的條件語
句,那麽就要用關鍵字having而不是where(使用方式同where)
2.值的數據類型要與列名的一致,值的順序要與插入列的順序一致,
值的最大長度不能超過列設置的最大長度(類型中的長度),值的類型是
字符串或者日期類型,要用單引號引起來
3.Select語句的寫法規則:
S(select)...F(from)...W(where)...G(group)...H
(having)...O(order)
=======================================
JDBC
1.單元測試需要在前面寫@Test,可以當做主方法運行
2.配置文件擴展名是properties,裏面存的內容都是key=value的鍵
值對,並且值不要添加雙引號,不要隨意加空格,不要加分號
3.預編譯,用?代表將要傳入的參數,將要傳入的參數作為一個普通
的字符串,其中的關鍵字也是作為字符串傳入
{ 不要輕易的使用字符串拼接,使用的話最好把可能出現的關鍵字解
決掉 }
4.and的優先級大於or
5.JDBC的註入漏洞:當輸入的第一個值為xxx‘ or ‘1=1 或者 xxx‘
-- 的時候,第二個值可以隨便輸,這個時候還是能夠登陸成功,因為
用Statement實現SQL語句的時候使用的是字符串的拼接,輸入以上
的字符串的時候,裏面的關鍵字不會被當成字符串處理,而是作為關
鍵字參與到運算中
6.DbUtils查詢一條數據(Bean方式)註意事項:
1.Bean中的屬性名和數據庫中字段名一樣
2.要有空參構造,因為要使用反射(.class),需要使用到空參構造
7.ScalerHandler封裝單個數據(一行或者一列),如果封裝的是個數
,那麽只能將結果強轉成long類型
8.開發的項目放在服務器中
9.web-inf,如果沒有動態頁面的話可以不需要
10.實際開發中不會實現Servlet接口,而是使用它的實現類然後重寫
方法
11.如果代碼一致的話可以相互調用來講簡化代碼
12.Servlet:響應從瀏覽器接收的數據
13.C3P0配置文件底層是XML而不是properties
14.對數據的操作方式:
☆BeanHandler:將數據庫與JavaBean聯動,查詢一條信息
☆BeanListHandler:查詢多條信息,並用List存儲JavaBean
ArrayHandler:將一條數據存儲到一個Object數組中
ArrayListHandler:將多條數據存儲到一個List中,List中存儲的是
多個Object數組
MapHandle:將一條數據存儲到Map中,以鍵值對的方式
MapListhandler:將多條數據存儲到List集合中,集合中存儲的是
Map
15.location.href BOM中的location對象,跳轉到某個界面
16.println使用的時候自己調用了write並加上了toString方法
17.Tomcat7以上都是以ISO-8859-1編碼
Tomcat8以下都是以UTF-8編碼\
項目根目錄下的單個文件是部署不到服務器上的
18.跳轉頁面的開頭要加/
19.跳轉的頁面要在本項目下(其他的項目怎麽同時加載不知道)
20.項目文件名不要亂改,因為xml文件不會自己修改成修改後的名字
將類中的成員設置私有的好處:
線程池
註意しろ!