1. 程式人生 > >僅僅是對自己滴知識做一個總結

僅僅是對自己滴知識做一個總結

----API概念:

API(Application Programming Interface)應用程式介面。

在java中的API就是JDK中提供的各種功能。如CreateWindow就是一個API函式,在應用程式中如果要呼叫這個函式那麼作業系統就會按該函式提供的引數資訊產生一個相應的視窗

如何學習程式設計:

1. 必須先學習該語言的語法

2.我們要像學習漢語一樣掌握成語一樣掌握大量的API

3.也要學會分析與解決問題。養成良好的程式設計習慣與風格

 java工具軟體的介紹與使用:

 sun公司沒有提供圖形化的開發環境,他把開發軟體讓給了合作伙伴。

Borland公司的Jbuilder        IBM 的 Visual Age  還有賽門鐵克的Visual cafe 這幾業是很給力的

String類和StringBuffer類:

一個字串就是一邊串的字元,java定義了String和StringBuffer兩個類 來封裝對字串的各種操作,它們都被放到了java.lang包中,

不需要用import java.lang這個語句匯入就可以直接使用他們了 

String類用於比較兩個字串,查詢和抽取串中的字元或子串、【字串與其他型別之間相互轉換等 String類中的內容一旦被初始化就不能再改變。 

 StringBuffer類用於內容 可以改變的字串,可以將其他各種型別的資料增加、插入到字串中,也可以翻轉字串原來的內容。一旦通過StringBuffer生成最終想要的字串,就應該使用StringBuffer.toString方法將其轉換成String類,隨後就可能 使用String類的各種方法操縱這個字串

java為字串提供了特別的連線操作符(+)可以把其他資料型別的資料轉換成字串。並前後接成新的字串。連線操作符的功能是通過StringBuffer類和它的append方法實現

String x="a"+"4"+"c";
編譯時等效於
String x=new StringBuffer().append("a").append("4").toString();

這裡是一個print鍵盤錄入的 資料。

class readline 
{
	public static void main(String[ ] args) 
	{
		byte buf[ ]=new byte[1024];
			String strInfo=null;
           int pos=0;
		    int ch=0;
		System.out.println("please enter info, input bye for exit:");
		while (true)
		{
			try
			{
				ch=System.in.read();
			}
			catch (Exception e)
			{
				System.out.println(e.getMessage());
			}
			switch (ch)
			{
			case '\r':
			break;
			case '\n':
				strInfo=new String(buf,0,pos);
			if(strInfo=="bye")//改為if(strInfo.equals("bye"))
			return;
			else
				System.out.println(strInfo);
			  pos=0;
			  break;
			  default:
				  buf[pos++]=(byte)ch;
			}
		}
	}
}

 String類的構造方法String(buf,0,pos)這個方法把陣列buf裡面的值 從0到pos取出,用來建立一個新的String類物件。

String類有幾個比較常用的函式,如equalsIgnoreCase、indexof、substring

equalsIgnoreCase(String anotherString)是在比較兩個字串時忽略大小寫,將if(strInfo=="bye")改成 if(strInfo.equalsIgnoreCase("bye"))這樣就會輸出bye就退出程式

indexOf(int ch)方法是用來返回一個字串中的首次出現的位置,如果沒有這個字元則返回-1.

它的另一種形式indexOf(int ch, int fro,Index)返回 的是從fromIndex指定的數值開始ch字元首次出現的位置該方法可以應用於檔案和資料庫內容的查詢等 功能。

String str="hello world";

System.out.println(str.indexof('o'));//列印結果是4

String str="hello world";
System.out.println(str.indexOf('o',6));//結果是7

indexOf還有其他幾種形式

indexOf(String str)

indexOf(String str,int fromIndex)

subString(int beginIndex)方法返回的是一個字串中從beginIndex指定數值到末尾的一個字串,如果beginIndex指定的數值超過當前字串的長度,則返回一個空字串

這個方法也有另一種形式substring(int beginIndex,int endIndex)返回 的是當前字串中從beginIndex開始 到endIndex-1結束的一個字串

String類中的replace和toUpperCase方法不能改變字串的內容?與String類物件的內容一旦被初始化就不能再改變不矛盾麼?

它們返回型別都是String類,即生成一個新的字串,而不是改變原來的字串內容。

基本資料型別的物件包裝類:

java對資料即提供基本資料的簡單型別,也提供了相應的包裝類使用基本簡單資料型別,可以改善系統的效能。

java中很多類引數型別都是object即這些方法接收的引數都 是物件 ,同時,當要使用這些方法來處理基本功資料型別的資料,【這就是包裝類

包裝類物件在進行基本資料型別的型別轉換時也特別有用。比如整數與字串之間的轉換

列印一個矩形

calss TestInteger
{
public static void main(String[] args)
{
int w=Integer.parseInt(arfs[0]);//第一種方法
int h=new Integer(args[1]).intValue();//第二種方法
//int h=Integer.valieof(args[1]).intValue();第三種方法
for(int i=0;i<h;i++)
{
sb.append('*');
}
System.out.println(sb.toString());
}
}
}
java中的八種基本資料型別與其對應的那個包裝類
Boolean         Boolean
Byte              Byte
Char              Character
short             Short
int                Integer
long               Long
float               Float
double            Double

字串轉換成基本資料型別都是用     Xxx包裝類.parseXxx方式 實現 (除了Boolean類用的是getBoolean方法)。要將包裝類轉換成基本資料

幾乎都是Xxx包裝類物件 xxxValue方式

集合類:

 在java程式設計中經常 用到Vector   Enumeration     ArrayList    Collection     Iterator   Set          List等 集合類

Vector類與Enumeration介面

Vector類是java語言提供的一種高階資料結構,可用於儲存一系列物件,java不支援動態陣列Vector類提供了一種 與動態 陣列類似的功能。在我們不能預先確定要儲存的物件 的數目或需要方便 獲得某個物件 的存在位置時,Vector是一個不錯的選擇

import java.util.*;//Vector和Enumeration都在這個包中
public class void main(String[] args)
{
int b=0;
Vector v=new Vector();
System.out,println("Please Enter Number:");
while(true)
{
try
{
b=System.in.read();
}
chtch(Exception e)
{
System.out.println(e.getMessage());
}
if(b=='\r'|| b=='\n')
break;
else
{
int num=b-'0';
v.addElement(new Integer(num));//這裡因為不能使用陣列儲存資料,所以只能取物件型別資料
}
}
int sum=0;
Enumeration e=v.elments();//訪問這個物件裡面的所有元素
while(e.hasMoreElements())
{
Integer intobj=(Integer)e.nextElment();//這裡是對資料型別進行轉換
sum+=intobj.intValue();//這裡就是一個簡單的求和的計數器。
}
System.out.println(sum);
}
}

Enumeration是一個介面類,它提供了一種訪問各種資料結構(Vector類只是其中一種)中的所有資料的抽象機制,就是我們要訪問各種資料結構物件 中所有的元素時都 可以使用同樣的方式
2.Collection介面Iterator介面

我們要取出儲存在實現 了Collection介面物件中的所有物件,我們也必須通過Coolection.iterator方法返回一個Iterator介面物件,Iterator介面的功能與使用同Enumeration介面非常相似,所以建立 了Iterator這個新介面,並縮短了方法名長度。

不能直接 用Collection介面類建立物件,而必須用實現 了Collection介面的類來建立物件,ArrayList類就是一個實現了Collection介面的類,我們將上面使用Vector和Enumeration的例子改為脾ArrayList和Iterator編寫

import java.util.*;//ArrayList類和Iterator介面都在此包中
public class TestCollection
{
public static void main(String[] args)
{
int b=0;
ArrayList a1=new ArrayList();
System.out.println("Please Enter Number:");
while(true)
{
try
{
b=System.in.read();
}
catch(Exception e)
{
System.our,println(e.getMessage());
}
if(b=='\r'| b=='\n')
break;
else
{
int num=b-'0';
a1.add(new Integer(num));
}
}
int sum=0;
Iterator itr=a1.iterator();
while(itr.hasNext())
{
Integer intobj=(Integer)itr.next();
sum+=intobj.inValue();
}
}
System.out.println(sum);
}

與上面的一樣都是儲存產輸入 的資料的和只是這裡換成了Iteratora介面ArrayLIst類中的所有方法 是非同步的,所以沒有多執行緒安全問題時,最好用的就是ArrayList

3.集合類介面的比較

另外 還有幾個集合介面Set   List    Collection

Collection ——物件 之間沒有指定 的順序允許重複元素

Set——物件 之間沒有的順序,不允許 重複元素

List——物件之間有指定 的順序允許 重複元素 
我們還 可以利用List介面中物件 之間有指定的順序對List介面中的物件進行排序。

import java.util.*;
public
{
public static void main(String[] args)
ArrayList a1=new ArrayList();
a1.add(new Integer(1));
a1.add(new Integer(2));
a1.add(new Integer(2));
System.out,.println(a1.toString());//排序前
Collectlions.sort(a1);//排序方法
System.out.println(a1.toString());//排序後
}
}

Hashtable和Properties類

 Hasgutable是一種高階資料結構,用於快速檢索資料,除了可以動態的儲存物件 。而且 對每個儲存物件都會安排另一個物件與之關聯

向Hashtable中儲存資料,使用的是Hashtable.put(Object key,Object value)方法從Hashtable中檢索資料,

使用Hashtable.get(Object key)方法值和關鍵字都可以是任何型別的非空物件

Hashtable numbers=new Hashtable();
number.put("one",new Integer(1));
number.put("two",new Integer(2));
numbers.put("three"new Integer(3));
要檢索其中的"two"關鍵字對應的資料
Integer  n=(Integer)numbers.get("two");
if(n!=null)
{
System.out,println("two=  "+n);
}

想要成功地從Hashtable中檢索資料,用作關鍵字的物件必須正確覆蓋Object.hashCode方法Object.equals方法。覆蓋Object.equals檢索資料時判斷是否相等檢索不可能正確。Object.hashCode會返回一個叫雜湊碼的值。這個值是以物件的地址以某種方式轉換來的,如果是兩個內容想同的物件。地址值也不可能一樣,所以Object.hashCode的返回值也不一樣。想要讓兩個內容相同的Object返回一樣的雜湊碼那麼子類必須覆蓋Object.hashCode方法。用於關鍵字的類

StringBuffer類不會按照關鍵字類的要求覆蓋hashCode方法,因為物件內容即使相等,但是地址值不等 ,所以我不能使用StringBuffer作為關鍵字類。
關於equals和hashCode兩個方法 的實現

class MyKey
{
private String neme;
private int agep;
public MyKey(String name, int age)
{
this.name=name;
this.age=age;
}
publblic String toString()
{
return new String(name+","+age);
}
public boolean equals(Object obj)
{
if(name.equals(obj.name)&&age==obj.age)
return true;
else
return false;
}
public int hashCode()
{
return name.hashCode()+age;
}
}
//如果兩個人年齡和姓名都相同那麼我們就說他們是同一個人,。也可以再加上身高什麼的

使用MyKey類做為關鍵字,取出所有關鍵字的集合和取出所有值的集合

Systrm類與Runtime類

System類:

 java不支援全域性函式和變數。但是在設計 時候將一些系統相關的重要函式主變數收集到了一個統一 的類中這個類就是System類。

System類中的所有成員都是靜態的,當我們需要引用 這些變數和方法時,直接使System類名作為字首

System類中幾個方法

exit(int status)方法,提前終止虛擬機器執行對於在發生了異常的情況下想終止 虛擬機器執行,只需要傳遞一個非零的值作為引數,對於正常情況下傳遞一個為0的引數終止

CurrenTimeMills方法返回自1970年1月1日0點0分0秒起至今的時候以毫秒為單位,這是一個long的最大值,其實在計算機內部只有數值,沒有日期及其他各種型別也就是說

我們平常用到的日期本質上就是一個數值,但是通過這個數值,能夠推算出具體的時間單位

平還可以用CurrentTimeMillis方法檢測一段程式碼執行時所花的時間。

Long startTime=System.currentTimeMills();
...程式碼斷
Long endTime=System.currentTimeMills();
System.out.println("tota1 time expended is"+(starttime-endTime)+"milliseconds");

getProperties方法與java的環境變數

getProperties方法獲取當前虛擬機器的環境變數,path和classpath就是其中的兩個環境變數,第一個屬性都 是變數與值 成對的形式出現的

同樣的道理:java做為一個虛擬的作業系統,它也有自己的環境屬性。Properties是Hashtable的子類,正好可以用於環境變數屬性中的多個變數/值對格式 的資料,getProperties方法返回值是包含了當前虛擬機器的所有環境屬性的Properties型別的物件,

import java.util.*;
public class SystemInfo
{
public static void main(String[] args)
{
properties sp=System.getProperties();
Enumeration e=sp.propertyNames();
while(e.hasMoreElments())
{
String key=(String)e.nextElement();
System.out.println(key+"  ="+sp.getProperth(key));
}
}
}

 Runtime類

Runtime類封裝了java命令本身的執行程序,其中很多方法 與System中方法 相重複,我們不能直接 建立Runtime例項,但是可以通過靜態方法 Runtime.getRuntime獲得正在執行Runtime物件引用。

Exce方法,java命令執行後,本身 是多途徑作業系統 上的一個程序,在這個程序 中啟動一個新的程序 ,即執行其他程式時使用exce方法 .exec方法返回 一個代表子程序 Process類物件 這個物件 java程序 可以與子程序互動

public class TestRuntime
{
public static void main(String[] args)
{
process p=null;
try
{
p=Runtime.getRuntime().exec("notepad.exe TestRuntime.java");
Thread.sleep(5000);
}
catch(Exception e)
{
Systrm.out,println(e.getMessage());
}
p.destroy();
}
}

程式是不能直接建立Runtime的例項。所以只會產生一個Runtime的例項 物件,而不能產生多個例項物件,這種情況就是單例設計模式

Date與Calendar、DateFformat類:

 Date類用於表示日期和時間。最為簡單的建構函式就是Date()但是由於沒有考慮到國際化所以又設計了兩個新的類一個是Calendar類另一個是DateFormat類

Calendar類是一個抽象類,主要用於完成日期欄位之間的相互操作的功能。如Calendar.add方法可以實現在某一日期的基礎上增加若干天后的新日期

Calendar.get方法可以取出日期物件 中的日期欄位的值,Calendar.set方法修改日期物件中的年月日日期欄位的值。Calendar.getImstance方法可以返回 一個Calendar型別的物件 例項,GregorianCalendar類是JDK目前提供的唯一一個Calendar的子類

import java.util.*;
class TestCalendar
{
public static void main(String[]args)
{
Calendar c1=Calendar.getInstance();//下面列印當前時間
System.out,println()c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+c1.get(c1.MINTH)+"日"+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+get(c1.SECOND));
c1.add(c1.dDAY-OF-YEAR,315);//增加315天
//下面我們來列印的是315天后的時間
System.out,println()c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+c1.get(c1.MINTH)+"日"+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+get(c1.SECOND));
}
}

 java.text.DateFpr,at就是實現一個將Date物件表示 的日期用指定格式輸出和將特定格式的日期字串轉換成Date物件這樣一個功能的抽象基類

當我們要將一個字串轉換成Date類時,字串中代表字元必須在模板中YYYY的位置 y的個數為指定了年的位數

Math與Random類:

Math類包含了所有用於幾何和三角浮點運算函式,。這些都是靜態的

Random類就是一個偽隨機數產生器,隨機數是按照某種演算法產生的,一旦用一個初值建立Random物件就可以得到一系列的

隨機數相同的初值建立的Random物件隨機數序列是相同的,Random類的Random()構造方法中使用當前的時間 來初始化Random物件

相關推薦

僅僅自己知識一個總結

----API概念: API(Application Programming Interface)應用程式介面。 在java中的API就是JDK中提供的各種功能。如CreateWindow就是一個API函式,在應用程式中如果要呼叫這個函式那麼作業系統就會按該函式提供的引數資

幾種線性表一個總結

       學完幾種線性表後發現自己常常會搞錯,原因還是沒有總結區分牢記。今天趁著有時間趕緊寫下來讓記憶更加牢固。   =========================================分界線================

算是這段時間的一個總結

人總是吃一塹長一智,這句話說的一點都不錯,還有一句話叫做衝動是魔鬼,這話說的也不錯 這兩天一直都被一件事所困擾,到這一刻算是真正釋懷了 其實很多事情沒必要糾結,你犯了錯就該為你犯的錯付出代價,這也是我放下的原因 現在更重要的是學習,是狂擼演算法,是看基礎知識 準備過年來個專案上手,這樣來年才能真正準備

自己訓練好的caffemodel來自己的圖片分類

首先是deploy.prototxt檔案的生成,deploy.prototxt和train_val.prototxt檔案類似,只是頭尾有些區別而已。沒有了第一層的資料層,也沒有最後的accuracy層(用於反向傳播),但最後多了一個Softmax概率層(Softmax直接

自己動手從頭一個react路由

本案例用的是create-react-app腳手架生產的demo,在建立好後需要安裝history模組和prop-types模組。 npm install history --save npm install prop-types history主要是需要來製作前進後退

onclick傳多個引數,為什麼函式接收不到,一個引數可以的問題一個總結

今天遇到js onclick傳兩個引數 函式接收不到,如果onclick事件裡的值是死值傳多少個都沒問題,一個活參也沒問題,問題是多個活參就不可以;還是老規矩先上圖錯誤的傳參方式:如果是這樣傳參的同學及時糾正正確的傳參方式:在這時使用反斜槓進行了轉義,如果你是使用的超連結就須

一個走過太多坑的老弟面向物件知識總結:世上無難事,有的真不行

/*程式設計思想 在寫程式碼前首先要做的事情是分析問題,然後寫出步驟。最後是寫程式碼,按照步驟進行填寫程式碼。 1.問題 2.分析 3.步驟 4.程式碼 / //當你在開發過程遇到多次使用同一功能時要看看前面是否有問題及時修正,以便優化程式碼。 //為了提高程式碼的複用性,將功能封裝在類裡,

Java 月薪25K的爬蟲工程師爬蟲的流程一個非常全面的總結

爬蟲是一個比較容易上手的技術,也許花5分鐘看一篇文件就能爬取單個網頁上的資料。但對於深度爬蟲,完全就是另一回事,並不是1*n這麼簡單,還會衍生出許多別的問題。 這裡雙手奉上業內爬蟲流程圖一份 很拉風的樣子 先檢查是否有API API是網站官方提供的資料介面,如果通

是時候自己個交代了

環境 自己 社會 分界線 我不 生活 博客園 註冊 長時間 自2011年7月,參加工作。從工作、生活中逐漸認識了社會和人。 算是悠悠7載,真是嘗遍了酸甜苦辣。 也算是折騰了7年! 這7年,我覺得的是經歷了太多,也失去了很多。唯一欣慰的是,我不後悔這些年所做的事情,問心無愧!

一個總結吧,把別人的經驗拿來總結一下

spa range 簡單的 pan att 切片 XML append filter 構造一個1, 3, 5, 7, ..., 99的列表,可以通過循環實現: 取list的前一半的元素,也可以通過循環實現: 1. L = [] n = 1 while n <= 9

【項目總結】:怎樣一個牛逼的Team leader?

又一 技術分享 什麽 spa 是什麽 jenkins集成 方法 模塊開發 div 隨著ITOO高校雲平臺3.1項目的結束,我們各種各樣的總結也被提上了日程。Java版本號的全部開發者和Donet版本號的全部開發者坐在一起進行了關於

Location象常用知識總結

spa 第一個 虛擬 如果 int 開發 沒有 區分 服務器程序 產品終於上線,後期主要是優化了。在開發過程中用到了很多location對象的知識,趁現在有時間先整理一下。 Location 對象存儲在 Window 對象的 Location 屬性中,可通過wi

[js高手之路]html5 canvas動畫教程 - 自己動手一個類似windows的畫圖軟件

箭頭 erb 寬度 pow(x type row center shape htm 這個繪圖工具,我還沒有做完,不過已經實現了總架構,以及常見的簡易圖形繪制功能: 1,可以繪制直線,圓,矩形,正多邊形【已完成】 2,填充顏色和描邊顏色的選擇【已完成】 3,描邊和填充功

html5 canvas動畫教程 - 自己動手一個類似windows的畫圖軟件

.cn pic 箭頭 uid .com 教程 amp 設置 一個 制直線,圓,矩形,正多邊形【已完成】 2,填充顏色和描邊顏色的選擇【已完成】 3,描邊和填充功能的選擇【已完成】 後續版本: 橡皮擦,坐標系,線形設置,箭頭,其他流程圖形,裁剪與調整圖形。。。。。 終極目標:

JavaScript 面向象開發知識基礎總結

{} 生存 fin 未定義 分配 編譯期 內部 有序列表 java JavaScript 面向對象開發知識基礎總結 最近看了兩本書,書中有些內容對自己還是很新的,有些內容是之前自己理解不夠深的,所以拿出來總結一下,這兩本書的名字如下: JavaScript 面向對象精

企業為什麽要一個屬於自己的營銷網站?

itl 方式 營銷推廣 理由 沒有 適用於 才會 欲望 項目 做網站優化是不區分行業的,也就是說SEO適用於所有行業。有人認為隔行如隔山,這句話沒錯,但吖七認為,SEO不只是一種技術而應該是一種思維,換句話講做SEO是做營銷,而營銷思維主導著一家企業的生死。服務行業seo策

PC端網頁和移動端網頁,自己總結

lbs 流式布局 移動端開發 動畫 配置 流量 幀率 資源 str 1.PC考慮的是瀏覽器的兼容性,而移動端開發考慮的更多的是手機兼容性,因為目前不管是android手機還是ios手機,一般瀏覽器使用的都是webkit內核,所以說做移動端開發,更多考慮的應該是手機分辨率的適

如何一個賬系統

讀寫分離 偏差 管理系統 images 重復 聯網 sset 數據庫服務器 接收 在互聯網行業中只要涉及到支付,必然就會有對賬的需求,幾乎所有互聯網公司的業務中多多少少的都會涉及到支付,大一點的公司甚至都標配有了自己的第三方支付公司,因此對賬具有普遍性。對賬系統是支付體系中

第二天:給自己一個在線簡歷吧!

7月 負責 移動客戶端 AI 平面設計 2015年 cli 實現 ffice <!doctype HTML><html> <head> <title>楊雄的簡歷</title> </head>

html5本地存儲(僅僅記錄自己已經用到的知識

local 知識 記錄 本地 storage 自己 tor get TE    存儲數據: window.localStorage.setItem(‘key‘, score1); window.localStorage.setI