學習筆記1-常用類與異常處理
JDK常見包
⑴java.lang ——包含一些Java語言的核心類,如String、Math、Integer、System、Exception和Thread,提供常用功能。在java.lang包中還有一個子包:java.lang.reflect用於實現java類的反射機制。這個包是JVM在程式中自動匯入的包
⑵ java.awt —— 包含了構成抽象視窗工具集(abstract window toolkits)的多個類,這些類被用來構建和管理應用程式的圖形使用者介面(GUI)。
⑶ avax.swing——此包用於建立圖形使用者介面,此包中的元件相對於java.awt
⑴java.applet——包含applet執行所需的一些類。
⑵java.net——包含與網路相關的類。如Socket、URL
⑶java.io —— 包含能提供多種輸入/輸出功能的類。
⑷java.util——包含一些實用工具類,如日期類、集合類。
⑸JDK中還有很多其他的包,如用於資料庫程式設計的java.sql包,用於編寫網路程式的java.rmi包(Remote Method Invocation)。另外,javax.*包是對基本包的擴充套件,包括用於編寫GUI程式的javax. swing包,以及用於編寫聲音程式的javax. sound包等·
⑹JDK的所有包中的類構成了
Object
equals():
Ø僅當被比較的兩個引用變數指向同一物件時,equals()方法才返fpl true。
Ø許多Java類都覆蓋了這個方法,如java.io.File, .java.util.Date,java.lang.String、包裝類等。比較規則為:如果兩個物件的型別一致,並且內容一致,則返回true。
hashCode():
Ø返回物件的雜湊碼值
ØHashTable和HashMap會根據物件的雜湊碼值來決定它的存放位置
Ø為了使程式更健壯,在編寫Java類時要養成以下程式設計習慣
q如果Java類重定義了equals()方法,那麼這個類也必須重定義hashCode()方法,並且保證當兩個物件用equals()方法比較的結果為true時,這兩個物件的hashCode()方法的返回值也相等。
q如果Java類實現了Comparable介面,那麼應重定義compareTo(), equals()和hashCode()方法,保證compareTo ()和equals()方法採用相同的比較規則來比較兩個物件是否相等,並且保證當兩個物件用equals()方法比較的結果為true時,這兩個物件的hashCade()方法的返回值相等。
toString():
Ø返回當前物件的字串表示,格式為“完整類名@物件的十六進位制雜湊碼”
Ø許多類,如String、StringBuffer和包裝類都覆蓋了toString()方法,返回具有實際意義的內容
finalize():
Ø對於一個已經不被任何引用變數引用的物件,當垃圾回收器準備回收該物件所佔用的記憶體時,將自動呼叫該物件的finalize()方法。
String
ØString類用來操作字串,可以把任意物件和陣列轉化成字串
ØString是字串常量。對String的操作都是改變賦值地址而不是改變值操作。
“==”與equals的區別:“==”對於兩個物件的地址值作比較是否相等,Equals 判斷兩個物件的內容是否相等
String類的方法:
1,獲取:
1,獲取字串的長度:length();
2,指定位置的字元。Char charAt(int index);
3,獲取指定字元的位置。索引不存在返回-1,所以通過返回值-1來判斷一個字元在不在的情況。
int indexOf(int ch);int indexOf(int ch,int fromIndex);
int indexOf(String str);int indexOf(String str,int fromIndex);
int lastIndexOf(int ch);int lastIndexOf(int ch,int fromIndex);
int lastIndexOf(String str);int lastIndexOf(String str,int fromIndex);
4,獲取子串。
String substring(int start);//從start位開始,到length()-1為止。
String substring(int start,int end);//從start開始到end為止。//包含start不包含end
獲取整串 substring(0,str.length());
2,判斷
1,字串中包含指定的字串嗎?Booleancontains(String substring);
2,字串是否以指定字串開頭?BooleanstartsWith(string);
3,字串是否以指定字串結尾啊?boolean endsWith(string);
4,判斷字串是否相同boolean equals(string);覆蓋了Object中的方法,判斷字串內容是否相同。
5,判斷字串內容是否相同,忽略大小寫。boolean equalsIgnoreCase(string):
3 轉換:
1,通過建構函式可以將字元陣列或者位元組陣列轉成字串。
2,可以通過字串中的靜態方法,將字元陣列轉成字串。
static String copyValueOf(char[] );static String copyValueOf(char[],int offset,int count);
static String valueOf(char[]);static String valueOf(char[],int offset,int count);
3,將基本資料型別或者物件轉成字串。
static String valueOf(char);
static String valueOf(boolean);
static String valueOf(double);
static String valueOf(float);
static String valueOf(int);
static String valueOf(long);
static String valueOf(Object);
4,將字串轉成大小寫。
String toLowerCase();String toUpperCase();
5,將字串轉成陣列。
轉成字元陣列。char[] toCharArray();
轉成位元組陣列。byte[] getBytes();//可以加入編碼表。
6,將字串轉成字串陣列。切割方法。String[] split(分割的規則-字串);
7,將字串進行內容替換。變成新字串。
String replace(oldChar,newChar);
String replace(oldstring,newstring);
8,對字串進行追加。String concat(string);
String s = new String(“a”)與String s = “a”;的區別
Java為String型別提供了緩衝池機制,當使用雙引號定義物件時,java環境首先去字串常量池中尋找相同內容的字串,如存在就直接拿來應用,如不存在則建立一個新字串放入常量池。
String a=”tom”;
String b=”tom”;
上述程式碼中,變數a和b使用的是字串常量池中同一個儲存物件
當使用建構函式定義物件時,每次呼叫都會建立一個新物件。
//建立了二個“物件”,一個由jvm隱含地建立,放入字串常量池裡,還有一個通過new語句顯式建立,在堆裡
String a= new String(”tom”);
String b=new String(”tom”);
上述程式碼中,變數a和b使用的是兩個不同的儲存物件,只是物件中的內容相同。
正則表示式
StringBuffer
1,新增。
StringBuffer append(data):在緩衝區中追加資料。追加到尾部。
StringBuffer insert(index,data):在指定位置插入資料。
2,刪除。
StringBuffer delete(start,end);
StringBuffer deleteCharAt(index);
3,修改。
StringBuffer replace(start,end,string);
void setCharAt(index,char);
void setLength(len);
4,查詢。
int indexOf(string);
int indexOf(string,int fromIndex);
int lastIndexOf(string);
int lastIndexOf(string,int fromIndex);
5,獲取子串
string substring(start);
string substring(start,end);
6,反轉。
StringBuffer reverse()
String、StringBuffer和StringBuilder詳解?
nString是字串常量,String在編譯後是final的,所以是定長,內容不可變;StringBuffer和StringBuilder可變。
n不可變類有一些優點,比如因為它的物件是隻讀的,所以多執行緒併發訪問不會有任何問題。當然也有一些缺點,比如每個不同的狀態都要一個物件來代表,可能會造成效能上的問題。所以Java標準類庫還提供了可變版本,即StringBuffer和StringBuilder。
nStringBuffer是JDK1.5以前的,StringBuilder是升級以後的,二者方法都一樣,是緩衝區,,容器長度可變。StringBuilder更高效,因為不考慮執行緒同步Synchronized問題。如果需要同步,則使用 StringBuffer
n因為String物件建立後不能改變,所以對於每一個不同的字串(使用內容相同的字串,不必每次都new一個String),都需要一個String物件來表示,所以經常對字串進行修改會引起很大的記憶體開銷。而StringBuffer和StringBuilder類可以只修改一個字串物件,而不用每個不同的字串都要生成一個新的物件。
nString a = "123";a = a + "456"細節;在用String類物件直接+操作時,JVM會建立一個臨時的StringBuffer類物件,並呼叫其append()方法完成字串的拼接,這是因為String類是不可變的,拼接操作不得不使用StringBuffer類(並且JVM會將"Hello"和" world!"建立為兩個新的String物件)。之後,再將這個臨時StringBuffer物件轉型為一個String,記憶體開銷不菲
n操作字串一般使用String。但經常改變內容的字串最好不要用 String ,因為每次生成物件都會對系統性能產生影響。當你需要使用字串來處理大量資料的時候,建議使用StringBuilder而不是String。
基本資料型別的包裝類
Ø包裝類中提供了一系列實用的方法,比如Integer類的靜態方法parseInt(String s)能把字串轉換為整數,在java集合中不能存放基本型別資料,如果要存放數字,應使用包裝型別
Ø所有的包裝類都是final的,因此沒有子類。
關於自動裝箱與拆箱的小問題:
Integer a = new Integer(127);
Integer b = new Integer(127);
System.out.println(a == b);//false
System.out.println(a.equals(b));//ture
Integer x = 127;
Integer y = 127;
System.out.println(x == y);//ture
System.out.println(x.equals(y));//ture
// JDK1.5後,如果兩次自動裝箱的int型數值在1個位元組範圍內( -128到127),那麼第二次將不會重新開闢記憶體空間,而會共享第一次建立空間的值。原因在於在Integer類裡有個內部類IntegerCache,存放-128~127範圍內的對應Integer類物件,而該類的靜態方法valueOf的實現是當數在 -128到127之內時直接返回內部類IntegerCache中存放的對應的Integer類物件,否則new一個新物件。這是設計模式中的享元模式。
Math、Random
java.util.Math類
ØMath是fina類,沒有子類。Math類的構造方法是private的,因此Math類不能被例項化。
Ø包含了所有用於幾何和三角的浮點運算方法,這些方法都是靜態的
qabs(X x):返回不同型別的絕對值。
qmax(兩個引數):返回兩個數中的最大值。
qmin(兩個引數):返回最小值。
qrandom():返回大於等於0小於1的隨機數。
qpow(double a, double b):a的b次冪
qround(double a):四捨五入
qceil(double a):返回大於A的最小整數。
qfloor(double a):返回小於A的最大整數。
java. util.Random類
提供了一系列用於生成隨機數的方法。
ØnextInt():返回下一個int型別的隨機數,隨機數的值大於或等於0
ØnextInt(int n):返回下一個int型別的隨機數,隨機數的值大於或等於0且小於引數n
ØnextLang();返回下一個long型別的隨機數,隨機數的值位於long型別的取值範圍內
ØnextFioat():返回下一個float型別的隨機數,隨機數的值大於或等於0且小於1.0
ØnextDouble():返回下一個double型別的隨機數,隨機數的值大於或等於0且小於1.0
ØnextBoolean(}:返回下一個boolean型別的隨機數,隨機數的值為true或false
BigDecimal
Ø能作用於int或float的操作,也同樣能作用於BigInteger或BigDecimal。只不過必須以方法呼叫方式取代運算子方式來實現。這樣犧牲了速度,但換來了精度。
ØBigDecimal支援任意精度的整數。在運算中,可以淮確地表示任何大小的整數,而不會丟失任何資訊。而BigDecimal支援任何精度的定點數,例如,可以用它進行精確的貨幣計算。
Date、Calendar、DateFormat類
java.util.Date
Ø包裝了一個long型別資料,表示與1970年1月1日00:00:00這一刻所相距的毫秒數。Date類用於表示日期和時間
Ø由於開始設計Date時沒有考慮到國際化,所以後來又設計了DateFormat類和Calendar類來解決Date類中的問題
ØDate類的預設構造方法呼叫System_currentTimeMillis{)方法獲取當前時間,
new Date()語句等價於:new Date(System.currentTimeMillis())
ØDate.getTime():日期物件轉成毫秒值。
setTime():毫秒值轉成日期物件。
java. text.DateFormat抽象類
Ø用於定製日期的格式,它有一個具體子類為java.text.SimpleDateFormat
1,format(Date date):將Date格式轉化為日期或者時間的字串
2,DateFormat getDateInstance():獲取日期,按照預設的格式。
3,Date parse(String source,ParsePosition pos):根據給定的規則生成日期和時間字串
4,// 設定日期格式, new Date()為獲取當前系統時間
String strTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date());
java.util.Calendar
1,Calendar getInstance():使用靜態方法,返回這個類物件
2,Add(int field,int amount):增加或減去指定的時間。
3,Int get(int field):返回給定的欄位的值。
4,Set(int year, int month, int date):設定時間
System、Runtime類
ØJava不支援全域性方法和變數,Java設計者將一些系統相關的重要方法和變數收集到了一個統一的類中,這就是System類
ØLang型中System類裡面都是靜態方法,要使用直接用類名.方法就可以呼叫了。
1,currentTimeMillis():返回以毫秒為單位的當前時間。
2,exit():終止java虛擬機器
3,getProperties():返回Properties確定當前系統屬性。
4,setProperty(String key, String value):自定義鍵值的系統屬性。
ØRuntime類封裝了
JDK常見包
⑴java.lang ——包含一些Java語言的核心類,如String、Math、Integer、System、Exception和Thread,提供常用功能。在java.lang包中還有一個子包:java.lang.reflect用於實現java類的
一:異常處理
在前面的學習中,所有的異常全部都是使用throws方法解決的,現在嘗試將異常在程式內部進行處理。
為什麼要在程式內部處理異常?
因為採用throws方法,一旦產生異常,程式會停止執行,並將異常丟擲,但是此時程式內的資源並沒有釋放出來,而Con 實現 單繼承 父類 成對 數據類型 itl 同時 屬性 子類 反射
__import__()函數用於加載類和函數
__import__(name[, globals[, locals[, fromlist[, level]]]])
參數說明:
n for this ble action 1.7 turn yiq targe cts hibernate框架屬於dao層,類似dbutils的作用,是一款ORM(對象關系映射)操作
使用hibernate框架好處是:操作數據庫不需要寫SQL語句,使用面向對象的方式完成
關鍵字 .exe strip support 異常 解析器 輸入 rod () python解析器去執行程序,檢測到了一個錯誤時,觸發異常,異常觸發後且沒被處理的情況下,程序就在當前異常處終止,後面的代碼不會運行,所以你必須提供一種異常處理機制來增強你程序的健壯性與容錯性 finall 沒有 class cond col pytho span try 學習 python的異常處理,與其它語言的異常一樣,當錯誤發生的時候,能捕獲到發生的錯誤,不會導致程序crash。
一、try except
1、 try except Exception, 1.2 對象 bject 行數 ren str 學習 語言 基本 1.Object類
Object類是java語言中所有類的根,所有的類都繼承了Object類,擁有Object類的屬性和方法。
1.1 clone()
返回對象的拷貝(克隆),對於基本類型會進行數值拷貝,對於
Java異常類是對於程式中可能出現的錯誤或者異常的一種處理方式。在設計程式的過程中,對於可能出現的異常錯誤,比如說使用者輸入錯誤,裝置錯誤,磁碟滿了或者程式碼錯誤等等,通常採用異常處理的方式來進行處理可能的錯誤。 JAVA的異常處理機制:如果某個方法不能按照正常的途徑完成任務,就可以通過另一 時間類 案例 執行 技術分享 form 格式 時間 mage edate
Random,String,Math
1.Random
Random() 創建一個新的隨機數生成器
案例:產生3個5-10的隨機數
運行結果
註意:
2.StingBuffer,
預設異常處理機制
1、Whitelabel Error Page
當客戶端訪問頁面不存在,或服務端處理髮生異常,一般瀏覽器客戶端傳送的請求頭中為:Accept:text/html;所以就返回一個html文件。
這裡有一個很重要的類:BasicErrorContr
第二天---python類與物件
Python中類是抽象的模板
Class 類名 (繼承的類):縮排塊中寫類的語句
類的例項化 變數名=類名()
類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義一個特殊的_init方法,在建立
1、抽象類的實際應用 — 定義模板
假設有這樣的場景,將人分為工人和學生,兩者都能說話,只是說話的內容不一樣,換句話說,說話這個功能應該是一個具體功能,說話的內容由學生和工人決定,我們可以用抽象類實現這個場景
abstract class Person2{
private S
廢話不多說啦,我們直接學習Android中最常使用的網路技術。
在請求網路之前,我們需要在AndroidManifest中宣告訪問網路的許可權:
uses-permission android:name="android.permission.INTER
閱讀的第一篇詞向量相關的文獻是Tomas Mikolov 2013年的論文,其中提到了Bengio在2003的經典文章。經過一番努力,粗略的學習了這兩篇文獻,並查閱了相關的資料,現簡單整理如下:
1、詞向量
作為NLP的初學者,遇到的第一個難以理解的概念就是
類與物件的屬性
物件屬性與類屬性
class Person(object):
# 這裡的屬性實際上屬於類屬性(用類名來呼叫)
name = "person"
def __init__(self, name):
pass
#物件屬
# -*- coding: utf-8 -*-
"""
@xiaowuyi:http://www.cnblogs.com/xiaowuyi
"""
import cv2
img=cv2.imread('1.jpg',cv2.IMREAD_COLOR)# 讀入彩色圖片
cv2.imsho 一、Hadoop的發展歷史
說到Hadoop的起源,不得不說到一個傳奇的IT公司—全球IT技術的引領者Google。Google(自稱)為雲端計算概念的提出者,在自身多年的搜尋引擎業務中構建了突破性的GFS(Google File System),從此檔案系統進入分散式時代。除此之外,Google在
windows下caffe的安裝有些麻煩,我折騰了一天終於安裝好caffe並且成功測試了mnist,在此期間遇到了不少坑,特此記錄一下。
安裝caffe
caffe的安裝方式一直在變化,我安裝的時候發現不少部落格寫的東西已經有些過時了,所以建議大家在安裝的時
Linux系統下怎麼安裝.deb檔案?
deb 是 ubuntu 、debian 的格式。
.deb是solaris系統下的安裝包字尾名。安裝方法如下
cd 到安裝包的目錄
dpkg(空格)-i
請解釋字串比較之中“==”和equals()的區別?
==:比較的是兩個字串記憶體地址的數值是否相等,屬於數值比較;
equals():比較的是兩個字串的內容,屬於內容比較。
以後進行字串相等判斷的時候都使用equals() 相關推薦
學習筆記1-常用類與異常處理
MySQL學習筆記(4)-- jdbc異常處理和工具類抽取
Python學習筆記之面對象與錯誤處理
hibernate框架學習筆記1:搭建與測試
python學習筆記(十五)異常處理
python學習筆記-day8-2-【python 異常處理 try except】
Java學習筆記_180711_常用類
Java 常用類之異常處理
Java學習筆記之——常用類
Spring Boot 學習筆記(十三)——全域性異常處理
Python學習筆記4---PYTHON類與物件
Java學習筆記之抽象類與介面的應用
學習筆記(六) 網路程式設計與資料處理
NLP學習筆記(1)-詞向量與語言模型
python學習筆記21(類與物件的屬性)
opencv-python 學習筆記1:簡單的圖片處理
Hadoop學習筆記—1.基本介紹與環境配置
caffe學習筆記1-win10安裝與測試mnist
Linux系統學習筆記(安裝軟體和異常處理)
java學習筆記五--String類與String例子