Java学习 第三章 java基础(四)

相关知识点:if、Switch、循环结构语句,java数组,String,异常处理

一、if判断语句

1、if语句用于判断不同的条件,根据判断的结果执行不同的代码。

2、if语句判断的条件可以是关系运算、逻辑运算,if语句根据逻辑值true、false来决定执行不同的代码。

3、if语句在开发中使用极为广泛。

if语句的格式

  //条件表达式可以是关系运算、逻辑运算、甚至是逻辑变量,还可以是逻辑值true或false

  if(条件表达式){

    条件表达式结果是true时,执行本代码块

  }else{ 

    条件表达式结果是false时,执行本代码块

  }

if嵌套语句

  if(条件表达式1){

    条件表达式1结果是true时,执行本代码块

  }else if(……){

  …..

  }else if(条件表达式n){

    条件表达式n结果是true时,执行本代码块

  }

  else{ 

    条件表达式n结果都是false时,执行本代码块

  }

二、Switch语句

1、switch语句称为情况选择语句,又称开关语句。

2、switch是分支语句的一种,用于对多种情况进行不同处理的语句。

3、JDK1.7之前的switch语句限定对整形数据进行判断。JDK1.7开始提供对String类型判断。

switch 语句格式

  switch(表达式){

    case 常量值1:

      代码块1;

      break;

    case 常量值2:

      代码块2;

      break;

      ……  

    default:

      以上常量值均不是时,执行本代码。

  }

不用break会出现“贯穿”问题,直接执行下一步。

三、循环结构语句

1、while循环

格式:

  while(循环继续的条件表达式){

    循环体(循环内容)

  }

2、do while语句

格式:

  do{

    循环内容

  }while(循环继续的条件表达式);

3、for循环语句

格式:

  for(循环变量初始化;循环继续的条件表达式;循环变量值变更){

    循环内容

  }

初始化可以定义多个循环变量

eg : 

  for(int i=1.j=1;i<=20&&j<=30;i++,j+=2){

    循环内容

  }

四、java数组

1、数组的定义

数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来做唯一标识;

2、数组的分类

一维数组、二维数组、多维数组;

3、数组的声明和内存分配

      • 声明方式一:type arrayName[];
      • 声明方式二:type[] arrayName;

为数组分配内存空间,如果不分配内存,将不能访问它的任何元素。我们将使用new关键字来为数组分配内存空间;

eg : int score[];

score = new int[3];//实例化,内存分配

4、数组的静态初始化

数组初始化分为两种方式:

      • 动态初始化
      • 静态初始化

静态初始化是指:在数组创建之初直接指定其内容;

eg : int score[] = {2,3,4,5};

5、冒泡排序

eg : int score[] = {10,53,67,24,30};

  for(int i = 0; i < score.length-1; i++){

    for(int j = i+1;j < score.length; j++){

      if(score[i] < score[j]){

        int temp = score[i];

        score[i] = score[j];

        score[j] = temp;

      }

    }

  }

6、二维数组

如果把一维数组看成线性图形,那么二维数组就是一个平面图形

二维数组的声明和一维数组类似,内存分配也是使用new关键字。

声明与分配内存:

      • 声明: type arrayName[][];
      • 初始化: arrayName = new type[行][列];

二维数组静态初始化:

type arrayName[][] = {{value},{value},{value}};

eg : int score[][] = {{10,20},{21,22},{30,31,45}};

五、Java String字符串

1、实例化String对象:

      • 直接赋值
      • 使用关键字new,内存分配图如下图,会多分配一个,所以直接赋值的方式比较多

2、String的内容比较  

使用equals()方法比较字符串;

eg : String str = “hello”;

String str1 = new String(“hello”);

比较 str.equals(str1)

“==” 比较的是地址,“equlas”比较的内容;

3、字符串内容不可更改 

eg : String str = “hello”;

String str1 = str + “world”;

地址指向图:

 

3、String字符串常用方法

      • 字符串长度:length()方法
      • 字符串转换成数组: toCharArray()方法
      • 从字符串中取出指定位置的字符: charAt()
      • 字符串与byte数组的转换:getBytes()
      • 过滤字符串中存在的字符:indexOf()
      • 去掉字符串的前后空格: trim()
      • 从字符串中取出子字符串: subString()
      • 大小写转换:toLowerCase() toUpperCase()
      • 判断字符串的开头结尾字符:endWith() startWith()
      • 替换String字符串中的一个字符: replace() 

4、StringBuffer

缓冲区,本身也是操作字符串,但是与String不同,StringBuffer是可以更改到.StringBuffer是一个操作类,所以必须通过实例化进行操作。

eg :

  StringBuffer sb = new StringBuffer();

  sb.append(“hello”);

  tell (sb)

  System.out.println(sb.toString());

public static void tell(StringBuffer s){

  s.append(“world”);

}

如果StringBuffer 换成String,打印s不会改变

StringBuffer常用方法

      • append() 追加
      • insert() 添加
      • replace() 替换
      • indexOf()  过滤字符串中存在的字符

StringBuffer类的应用:

eg :  String str = “hello”;

  for(int i = 0; i < 100; i++){

    str = str +i;// 开辟很多空间,耗费资源

  }

 eg :  StringBuffer str = “hello”;

  for(int i = 0; i < 100; i++){

    str.append(i);// 比String快很多

  }

5、StringBuilder

一个可变的字符序列,该类被设计作用StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,建议优先考虑该类,速度比StringBuffer要快。

但是如果设计到线程安全方面,建议使用StringBuffer。

常用方法:

      • append()
      • insert()

六、java 异常处理

1、异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,测可能导致程序的中断执行,造成不必要的损失。

eg : java.lang.NullPointerException 空指针异常

异常格式:

  try{

    异常语句

  }catch(Exception e){

 

  }finally{

    一定会执行的代码

  }

catch语句可以是多个

2、常见异常

      • 数组越界异常:ArrayIndexOutOfBoundsException
      • 数字化异常:NumberFormatException
      • 算数异常:ArithmeticException
      • 空指针异常:NullPointerException

等等

3、throws关键字

在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用者处理, 如果是主方法抛出异常,则交给JVM处理。

格式:

 public void tell() throws Exception{}

eg :

4、throw关键字

throw关键字抛出一个异常,抛出的时候直接抛出异常类的实例化对象即可;

5、自定义异常

自定义异常直接继承Exception就可以完成自定义异常类;

 

 

 

 参考:极客学院课程 http://ke.jikexueyuan.com/zhiye/javaweb/

原文地址:https://www.cnblogs.com/lulushen/p/8006536.html