Java 陣列 異常 exception 及其練習
學習心得
一、專業課
1、陣列
1.1、陣列可以看成是多個相同資料型別資料的組合,對這些資料的統一管理。
1.2、陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變量。
1.3、陣列中的元素可以是任何型別,包括基本型別和引用型別
2.一維陣列
//陣列
int[]arr = {1,2};
//引用型別物件
//==比較堆地址
/**
* equals 來自Object預設也是比較
* public boolean equals(Object obj) {
return (this ==obj);
}
但我們可以重寫hashCode與equals,使得equals可以比較數組裡的內容
hashCode相等不一定equals返回TRUE
equals不相等,hashCode不一定相等,因為重寫之後我們可以讓它們一方返回固定的值這麼狡猾
*/
Personperson = new Person("dd", 12);
Personperson2 = new Person("dd", 12);
System.out.println(person== person2);
System.out.println(person.equals(person2));
Objectobject = new Object();
Objectobject2 = new Object();
System
System.out.println(person.hashCode());
System.out.println(person2.hashCode());
之下結果為重寫了hashCode與equals
false
true
false
4533
4533
3.二維陣列
3.1arr.clone();可以實現陣列克隆但是值得注意的是
int[][]arr = new int[2][];
int[]a= arr[1].clone();
這時一維陣列需要先宣告空間
不然NullPointerException
-
Arrays.
-
Arrays.equals(a,a2);當兩個都是一維陣列時,才能準確比較出陣列內容是否相同
-
System.arraycopy(src,srcPos,dest,destPos,length);可以實現陣列拷貝
-
4.異常
4.1Throwable:有兩個重要的子類:Exception(異常)和Error(錯誤)
-
Error(錯誤):是程式無法處理的錯誤,表示執行應用程式中較嚴重問題。
-
Exception(異常):是程式本身可以處理的異常。
-
Java的異常(包括Exception和Error)分為可查的異常(checkedexceptions)和不可查的異常(uncheckedexceptions)
-
執行時異常:都是RuntimeException類及其子類異常
-
5.捕獲異常
try{
//可能會發生異常的程式程式碼
}catch(Type1id1){
/捕獲並處置try丟擲的異常型別Type1
}
catch(Type2id2){
//捕獲並處置try丟擲的異常型別Type2
}
一旦某個catch捕獲到匹配的異常型別,將進入異常處理程式碼。一經處理結束,就意味著整個try-catch語句結束。其他的catch子句不再有匹配和捕獲異常型別的機會
上方的異常型別不能比上方的異常
try-catch-finally語句
try{
//可能會發生異常的程式程式碼
}catch(Type1id1){
/捕獲並處置try丟擲的異常型別Type1
}
catch(Type2id2){
//捕獲並處置try丟擲的異常型別Type2
}finally{
//無論是否發生異常,都將執行的語句塊
}
二、小組PK
1.我方題目
1.以下程式碼若能執行,請輸出執行結果,若不能執行,請說明原因:
publicclass Demo01 {
publicstatic void main(String[] args) {
Demo02demo = new Demo02(3);
Demo03demo1 = new Demo03(3);
demo.method();
demo1.method();
demo1.method(3);
System.out.println(demo.a);
System.out.println(demo1.a);
}
}
classDemo02{
inta;
publicDemo02(int a){ this.a = a;}
finalvoid method(){
for(inti=0;i<10;i++){
a=i;
}
}
}
classDemo03 extends Demo02{
inta;
publicDemo03(int a){ this.a = a;}
finalvoid method(int i){
for(intj=0;j<i;j++){
a+=j;
}
}
}
答案:編譯報錯,Demo03在例項化物件時,在它自身的構造方法的第一條語句預設呼叫super();
這裡父類Demo02已經定義了帶引數的構造方法,不會自動生成無參構造方法,編譯報錯。
2.若能執行,請輸出執行結果,若不能執行,請說明原因
importjava.util.Arrays;
publicclass Test1 {
publicstatic void main(String[] args) {
int[]is = {1,2,3,4,5};
int[]is1 = is.clone();
is[1]= 10;
System.out.println(Arrays.deepEquals(is,is1));
Bugb = new Asd();
Asdc = new Asd();
b.fun1(2);
try{
c.fun("c");
}catch (Exception e) {
e.printStackTrace();
}
}
}
classBug{
Stringname;
intid;
privatevoid fun(String name) throws RuntimeException{
System.out.println("time:"+ this.name);
}
publicvoid fun1(int a){
System.out.println(a++);
}
}
classAsd extends Bug{
privateint a;
publicvoid fun1(int c){
System.out.println(c+a);
}
voidfun(String name) throws Exception{
System.out.println("time:"+ this.name);
}
}
答案:編譯錯誤,deepEquals方法的引數是二維陣列所以編譯錯誤,父類的fun()方法是私有的,所以子類的fun()方法不算重寫不會報錯
3、以下程式碼若能執行,請輸出執行結果,若不能執行,請說明原因:
publicclass Test {
staticFloat f;
publicTest(Float f){
this.f= f++;
}
static{
f= 3.0f;
}
publicstatic void main(String[] args) {
Stringstr = "ABCDCDG";
char[]ch = str.toCharArray();
inti = 0;
for(;i >= 0.0 && i<(ch.length/2);i++){
if(ch[i]!= ch[ch.length-1-i]){
System.out.print(ch[i]);
continue;
}else{
System.out.print(ch[ch.length-2-i]);
break;
}
}
Testt1 = new Test(3.3f);
Testt2 = new Test(4.3f);
System.out.println(ch[i++]);
System.out.println(f);
}
}
答案:
ABDC
4.3
解析:0在計算機中和0.0相等,計算機中輸出float型別的值不會輸出字尾f。
4.以下程式能否執行
如果不能請指出錯在那裡,
如果可以請輸出程式結果:
publicclass TestA {
TestAbA = new TestA();
static{
System.out.println("static");
}
publicTestA() {
System.out.println("TestA");
}
publicstatic void main(String[] args) {
System.out.println("main");
TestAa = new TestA();
}
}
答案:
static
main
《程式死迴圈》//然後程式進入死迴圈,因為TestA的成員變數TestA bA =new TestA();從新再生成的類中又有成員變數TestAbA = new TestA();再次生成新的TestA,如此迴圈
5.程式是否能夠執行,如果能執行結果是什麼?不能請說明理由
注意輸出格式
publicclass Test04 {
staticint a;
publicstatic void main(String[] args) {
try{
System.out.println(fun(a));
}catch (Exception e) {
System.out.println(9);
}
}
static{
System.out.println(a);
}
publicstatic int fun(int a) throws Exception{
int[]arr = {1,2};
try{
for(inti=0;true;i+=3){
arr[i]/=i;
}
}catch (ArithmeticException e) {
System.out.println(2);
return3;
}catch(NullPointerException e) {
System.out.println(4);
return5;
}catch (ArrayIndexOutOfBoundsException e) {
System.out.println(6);
return7;
}finally{
System.out.println(8);
for(inti=0; i<arr.length;i++){
System.out.print(arr[i]);
}
}
}
}
答案:
0
2
8
123
2、對方題目
1、packagecom.day12;
publicclass Test extends Subject{
publicint b;
publicstatic void main(String arg[]){
Subjects = new Subject();
Testt = new Test();
Subjects1 = new Subject(1, 2);
int K;
//在此處插入選項中的的程式碼
}
}
classSubject {
privateint a;
int b=100;
public Subject(int a, int b) {
super();
this.a= a;
this.b= b;
}
publicSubject() {
super();
}
publicint test(int m){return m;}
}
//下面哪些放在“在此處插入選項中的的程式碼?”行是正確的?BC E
//A,K= s.a;
//B,K = s1.b;
//C,K = s.test(30);
//D,K = m;
//E,K = t.b;
答案:BCE
2、classE1 extends Exception{}
classE2 extends E1{}
classTestParent{
publicvoid fun(boolean f) throws E1{}
}
public class Testzi extends TestParent{
//here
}
不定項選擇
以下方法可以放在“//here”位置,而且通過編譯的是(AD)
A:publicvoid fun(boolean f) {}
B:publicvoid fun(boolean f) throws Exception{}
C:publicvoid fun(boolean f) throws E1{}
D:publicvoid fun(boolean f) throws E1,E2{}
E:publicvoid fun(boolean f) throws E2{}
正確答案
ACDE
3.publicclass Demo03 {
publicstatic void main(String[] args) {
intn = 9;
int[][]arr = new int[n][n];
for(int i = 0; i < n-1; i++) {
arr[i][0]= 1;
1. System.out.print(_arr[i][0]_+" "_______________);
2. for (int _j=0_______;___j<i_&& if(i == j){ arr[i][j] =1;System.out.print(arr[i][j] + " ");}___ ;j++ ) {
arr[i][j]= arr[i-1][j-1] + arr[i-1][j];
System.out.print(arr[i][j]+ " ");
}
System.out.println();
學習心得
一、專業課
1、陣列
1.1、陣列可以看成是多個相同資料型別資料的組合,對這些資料的統一管理。
1.2、陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變量。
1.3、陣列中的元素可以是任何型別,包括基本型別和引用型別
2.一維陣列
異常層次結構:
編譯(checked)異常:指的是,程式碼在編譯的時候,JVM就檢查程式碼的正確性,從而丟擲編譯時就已能發現的異常
執行(unchecked)異常:指的是,程式碼在執行的過程中有可能丟擲的異常,我們自定義異常時都是繼承RuntimeException
自定義異常
1、什麼是異常? 程式開發和執行過程中會出現編譯錯誤和執行錯誤。編譯錯誤容易被發現並排除,而執行錯誤(邏輯錯誤和異常)很難預料。因此為了程式的穩定性和可靠性,就需要對程式異常處理和保護。 告訴 ted 所有 lib string vm虛擬機 例子 nts 判斷 作為一位初學者, 本屌也沒有能力對異常談得很深入. 只不過Java裏關於Exception的東西實在是很多. 所以這篇文章很長就是了..
一, 什麽是java裏的異常
由於java是c\c 你在 這也 一點 io操作 www. 新手 公司 manager other 淺談java異常[Exception]
一. 異常的定義
在《java編程思想》中這樣定義 異常:阻止當前方法或作用域繼續執行的問題。雖然java中有異常處理機制,但是要明確一點,決不應該 程序 區別 出錯 error cep eclipse 通過 要去 編寫 所有異常類型都是 Throwable 類的子類,它包含Exception類和Error類,Exception又包括checked exception和unchecked exception。
unche use 詳情 put 視頻下載 ati itl url index ring 1.異常(Exception)的定義,意義和用法 (視頻下載) (全部書籍)
我們先給出一個例子,看看異常有什麽用?
例:1.1-本章源碼
public class Test { publi 之間的部落格,承上啟下:
Java基礎 String/StringBuff 常用操作方法複習/記憶體分析
Java陣列直接選擇排序、sort()排序
Java基礎 String 演算法 - 五個練習題目要求:
/**
1.模擬一個trim方法,去除
java異常(Exception)處理機制詳解
目錄
一. 異常的定義
二. 異常掃盲行動
三. 異常的使用
例1. 這個例子主要通過兩個方法對比來演示一下有了異常以後程式碼的執行流程。
例2. 重新丟擲異常
例3. 異常鏈的使用及異常丟失
例 1.一維陣列
陣列概念:陣列是儲存同一種資料型別多個元素的集合。也可以看成是一個容器。它既可以儲存基本資料型別,也可以儲存引用資料型別(後面介紹)。
定義格式1: 資料型別[] 陣列名; 格式2: 資料型別 陣列名[];
陣列的初始化動態初始化 陣列的初始化:陣列必須先初始化,然後才能使用
基於Java語言的案例,實現陣列的反轉、擷取、拼接,求陣列的最大、最小值,求陣列元素之和。
public class ArrayUtils{
// //1.計算陣列中最大值 public stat //maven
org.apache.avr
下載不完全 ,去maven
If you are using maven to build your jar, you need to add the following depende
陣列在每個程式語言中都有著很重要的地位,以下是陣列在Java語言中的一些簡單練習題: 1.計算陣列中最大值 2.計算陣列中最小值 3.計算陣列值之和 4.陣列拼接 5.陣列擷取 6.陣列列印 7.反轉陣列 程式碼展示:
public class ArrayUtils{
//1.
執行打好的jar包,出現如下異常
首先開啟打好的jar包,出現如下目錄
開啟META-INF目錄,中的MANIFEST.MF檔案,如下
中是否有如下的路徑,Start-Class,如果有,確保是全限定名+啟動類嘛
例如我異常時的Start-Class路徑為
18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject at
寫了一個多執行緒方法,呼叫一個單執行緒不報錯的方法,一直在拋Exception in thread "AsyncTask2" Exception in thread "AsyncTask1" java.
1.計算陣列中最大值 2.計算陣列中最小值 3.計算陣列值之和 4.陣列拼接 5.陣列拼接 6.陣列列印 7.陣列反轉
public class ArrayUtils{
//1.計算陣列中最大值
public static int arrayM unable event stc .config configure rect spring conf version java 編譯異常及其解決辦法(持續更新)
1.解決辦法:將jar版本降低適配 低版本的jdk或tomcat
1 嚴重: ContainerBase
學習心得
一、專業課
1、內部類
1.內部類
1.1
是指在一個外部類的內部再定義一個類,類名不需要和文件夾相同
1.2內部類可以是靜態static的,也可用public,default,protected和private修飾(而外部類只能使用 public和default
下面的三個方法都是獲取異常的詳細資訊,或許的異常詳細資訊以字串的形式返回,保持棧堆載的風格
方法一:
public static String getExceptionAllinformation(Exception ex){
String sOut 相關推薦
Java 陣列 異常 exception 及其練習
Java基礎 -- 異常Exception
Java的異常Exception----(最簡單明瞭的總結)
Java 裏的異常(Exception)詳解
淺談java異常[Exception]
Java 檢查異常(checked exception)和未檢查異常(unchecked exception)區別理解
java中異常(Exception)的定義,意義和用法。舉例
Java基礎 String 裸暴力演算法- 五個小練習 Java陣列直接選擇排序、sort()排序
java異常(Exception)處理機制詳解
Java陣列及其在記憶體中的分配
Java陣列的練習
Hadoop-異常-Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/io/DatumReader
Java陣列小練習
本地執行springboot專案的jar包或阿里雲伺服器上導致,no main異常Exception in thread "main" java.lang.ClassNotFoundException
Sqoop異常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
多執行緒空指標異常 Exception in thread "AsyncTask2" Exception in thread "AsyncTask1" java.lang.NullPointerExce
Java陣列章節練習
java 編譯異常及其解決辦法(持續更新)
Java 內部類詳解及其練習
java的異常(Exception)資訊的詳細記錄