重学java「二」

来源:互联网 发布:游戏视频制作软件 编辑:程序博客网 时间:2024/06/04 18:17

1.Java StringBuffer 和 StringBuilder 类

  • 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
  • StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
  • StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类
  • 在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
public class Test{  public static void main(String args[]){    StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");    sBuffer.append("www");    sBuffer.append(".runoob");    sBuffer.append(".com");    System.out.println(sBuffer);    }}

结果:

菜鸟教程官网:www.runoob.com

2foreach循环与数组:
能在不使用下标的情况下遍历数组。

public class TestArray {   public static void main(String[] args) {      double[] myList = {1.9, 2.9, 3.4, 3.5};      // 打印所有数组元素      for (double element: myList) {         System.out.println(element);      }   }}

*Arrays 类
java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:

  • 给数组赋值:通过 fill 方法。
  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

2.finalize() 方法
Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用finalize() 方法。

3.Scanner 类
1)next方法:

import java.util.Scanner; public class ScannerDemo {      public static void main(String[] args) {          Scanner scan = new Scanner(System.in);     // 从键盘接收数据      //next方式接收字符串        System.out.println("next方式接收:");        // 判断是否还有输入        if(scan.hasNext()){             String str1 = scan.next();          System.out.println("输入的数据为:"+str1);          }      }  }

结果:

next方式接收:runoob com输入的数据为:runoob

2)nextLine方法:

import java.util.Scanner; public class ScannerDemo {      public static void main(String[] args) {          Scanner scan = new Scanner(System.in);     // 从键盘接收数据      //nextLine方式接收字符串        System.out.println("nextLine方式接收:");        // 判断是否还有输入        if(scan.hasNextLine()){             String str2 = scan.nextLine();          System.out.println("输入的数据为:"+str2);          }      }  }

结果:

nextLine方式接收:runoob com输入的数据为:runoob com

3)区别:
next():

  • 一定要读取到有效字符后才可以结束输入
  • 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

nextLine():

  • 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 可以获得空白。

4.异常处理
4.1异常分类:

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

4.2异常捕获
1)使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。
try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:

try{   // 程序代码}catch(ExceptionName e1){   //Catch 块}

例:

import java.io.*;public class ExcepTest{   public static void main(String args[]){      try{         int a[] = new int[2];         System.out.println("Access element three :" + a[3]);      }catch(ArrayIndexOutOfBoundsException e){         System.out.println("Exception thrown  :" + e);      }      System.out.println("Out of the block");   }}

2)throws/throw 关键字:
3)finally关键字:finally 关键字用来创建在 try 代码块后面执行的代码块。
无论是否发生异常,finally 代码块中的代码总会被执行。
在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

0 0
原创粉丝点击