• 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/

  • 相关阅读:
    状态压缩+枚举 UVA 11464 Even Parity
    数学/思维 UVA 11300 Spreading the Wealth
    贪心 UVA 11729 Commando War
    二分专题
    二分图判定+点染色/并查集 BestCoder Round #48 ($) 1002 wyh2000 and pupil
    数学 Codeforces Round #219 (Div. 2) B. Making Sequences is Fun
    贪心 Codeforces Round #191 (Div. 2) A. Flipping Game
    DP Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
    递推 Codeforces Round #186 (Div. 2) B. Ilya and Queries
    递推DP Codeforces Round #260 (Div. 1) A. Boredom
  • 原文地址:https://www.cnblogs.com/lulushen/p/8006536.html
Copyright © 2020-2023  润新知