流程控制
1.順序結構
2.分支結構—if&switch
3.循環結構—while&for
循環結構
一.while
1.while
while(循環條件){
循環體
}
2.do-while —(相對於while循環來說,do-while不管判斷語句是否成立[……]
只講重點的設計教學,立刻學習網頁教學網誌!
1.while
while(循環條件){
循環體
}
2.do-while —(相對於while循環來說,do-while不管判斷語句是否成立[……]
1.yild禮讓線程。作用:讓多個線程的執行更和諧,但是不能靠它保證一人一次
。2.守護線程:
當主線程結束後,被標記被守護線程的線程也會結束
在線程啟動前調用線程.setDaemon();
3.中斷線程:打斷中單線程是把線程狀態終止如:sleep …
stop(已過時)讓線程停止,直接殺死。4[……]
JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意方法和屬性;這種動態獲取信息以及動態調用對象方法的功能稱為java語言的反射機制。
自己的理解:
java會在編譯時將類的信息保存到堆中,反射便是獲取的編譯時保存的類的信[……]
線程安全問題產生的原因:
1.多個線程在操作共享的數據
2. 操作共享數據的線程代碼有多條
用示例解釋如下:開啟瞭四條線程 ,同時操作共享的數據,並且有兩條操作共享數據的線程代碼
class Ticket implements Runnable//extends Thread { private[......]
一、網絡基礎
1、InetAddress
InetAddress構造器私有,可以通過多種方式獲得inetAddress對象
InetAddress ip = InetAddress.getLocalHost();//獲取本機IP
ip = InetAddress.getByName("10[……]
java語言調用底層語言的技術JNI解析。
Java代碼執行步驟
java native interface : java 本地接口
讓java語言調用底層語言的技術就叫JNI
規范,讓java語言和底層的c/c++語言可以互相訪問,互相調用。
適配器[……]
當處理諸如註釋處理或與元數據档案交互(例如,數據庫模式、協議格式)時,源档案生成可能非常有用。通過生成代碼,您消除瞭編寫樣板档案的需要,同時也保留瞭元數據的單一來源。
[......]
java設計模式之單例模式解析。
單例模式(Singleton Pattern):確保一個類隻有一個實例,並提供一個全局訪問點來訪問這個實例。
某些類,如id生成器等,隻能有一個,需要使用單例模式。 單例模式的要點:一個類隻能有一個實例、類必須自行創建這個實例、類必須自行向系統提供這個實例。
冒泡排序算法實例
/** * */ package com.sort; /** * @author lihai * @version 2018-5-6 下午7:25:29 * @類描述 冒泡排序 */ public class BubbleSort { /** * 特點:[......]
一、簡介:前面幾篇已經介紹瞭關於RxJAva的創建、轉換、功能等操作符,接下來本篇一起看看剩下的條件過濾的操作符
二、過濾操作符的作用:
過濾 / 篩選 被觀察者(Observable)發送的事件 & 觀察者 (Observer)接收的事件
三、過濾操作符的分類
四、操作符介紹
filte[……]
數組是同一數據類型的集合,數組其實就是一個容器。
數組自動的給數組中的元素從0開始編號,使得隻要提供下標索引,就可以高效的隨機讀取數組裡的元素。
Java語言使用new操作符來創建數組。建議使用 dataType[ ] var 而不是 dataType var[ ] 來創建數組,這樣可以將數據類型與[……]
Java的集合類隻要又兩個接口派生而出:Collection和Tree,Collection和Tree是Java集合框架的根接口,這兩個接口又包含瞭一些子接口的實現類。
Collection接口是List、Set和Queue接口的父接口,該接口裡定義的方法既可用於操作Set集合[……]
–class档案反匯編工具
–javap –verbose Calc
java 档案
public class Calc {
public int calc() {
int a = 500;
int b = 200;
int c = 50;
retur[……]
–在JVM中,有哪些內存區間?
堆
永久區
Java棧
直接內存
–堆溢出
public static void main(String args[]){ ArrayList list=new ArrayList(); for([......]
今天又寫瞭一個通過生成隨機數組來轉化為字母進行輸出的類,但是發現一個很神奇的現象:
當用戶輸入的隨機數組內元素數量較多時,例如56個元素,此時該數組最終輸出的數值和字母表現出來驚人的重復性,甚至是AAA-BBB-CCC這樣的結構!
於是我又研究瞭好久為什麼會這樣,最後發現。。。我在輸出數組之前對數組[……]
ACM日期計算(Java實現):輸入一個日期,格式如:2010 10 24 ,判斷這一天是這一年中的第幾天。
package algorithm; import java.util.Scanner; /*描述 描述 如題,輸入一個日期,格式如:2010 10 24 ,判斷這一天是這一年中的第幾[......]
賦值使用操作符“=”,它是將右邊的值賦值給左邊,右值可以是任何的常數、變量、表達式,但左值必須是一個明確、已命名的變量。
●基本類型存儲瞭實際的數值,在對其賦值時,是直接將一個地方的內容復制到另外一個地方,如下:
[......]
在Java多線程中,可以使用synchronized關鍵字來實現線程之間的同步互斥,但在JDK1.5中新增加的ReentranLock也能達到同樣的效果,並且在擴展功能上也更加強大。
一、使用lock方法和unlock方法實現同步
ReentranLock的lock方法用來獲取鎖,而調用unlock[……]
一,標識符
由字母,數字,下劃線,美元符組成,但必須以字母,下劃線或美元符開頭。Java語言使用Unicode國際標準字符集,故標識符中的字母可以還可能是漢字及其他國語。
漢字問題尚未解決
約定 的標識符命名風格:
(1)_和$不作為變量名,方法名的開頭,因為這兩個字符對於內部類具有特殊意義;
(2[……]
生產者-消費者(producer-consumer)問題,也稱作有界緩沖區(bounded-buffer)問題,兩個進程共享一個公共的固定大小的緩沖區。
其中一個是生產者,用於將消息放入緩沖區;另外一個是消費者,用於從緩沖區中取出消息。
問題出現在當緩沖區已經滿瞭,而此時生產者還想向其中放入一個新的[……]
大體上設計模式可以分為5大類,23種。
1. 創建型模式:涉及對象的實例化,特點是不讓用戶代碼依賴於對象的創建或排列方式,避免使用new創建對象。
創建型模式5種:工廠方法模式,抽象工廠方法模式,單例模式,建造者模式,原型模式。
2. 結構型模式:涉及如何組合類和對象以形成更大的結構,和類[……]
類ReentranLock具有完全互斥排他的效果,即同一時間隻有一個線程在執行ReentranLock.lock方法後面的任務。這樣做雖然保證瞭實例變量的線程安全性,但效率確是非常低下的。所以引入瞭一種讀寫鎖ReentranReadWriteLock類,使用它可以加快運行效率。
讀寫鎖表示也有兩個鎖[……]