0601 Java核心技术卷1

Posted alin002

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0601 Java核心技术卷1相关的知识,希望对你有一定的参考价值。

!

3.文件输入与输出         (?)

  需要一个file对象构造一个scanner对象,如

  Scanner in = new Scanner(Path.get("filename.txt"),"UTF-8");

如果文件名中包含反斜杠,就要在每个反斜杠之前再加一个额外的反斜杠

"c:\mydirectory\filename.txt"

3.8 控制流程

1.块作用域

  块是指由一对大括号括起来的若干条简单的Java语句

2.条件语句

 if (condition) {

statement;

}

else{

statement2

}

3.循环

  当条件为true时,while循环执行一条语句,一般格式为:

  while(true) statement

4.确定循环

  for循环是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数

  for语句的第一部分通常用于对计数器初始化;第二部分给出每次新一轮循环执行前要检测的循环条件,for语句的三个部分应该对同一个计数器变量进行初始化,检测和更新

  特别指出,如果在for语句内部定义一个变量,这个变量就不能在循环体之外使用

5.switch语句

switch(choice)
{
case 1:
...
break;
case 2:
...
break;
default:
...
break;
}

6.中断控制流程语句

int i =0;
int j = 0;
label:while(true){
            //我是第一层循环
            while(true){
                //我是第二层循环
                if(j*i == 81)
                break label; // continue label
                 j++;
            }
           i++;
        }

label: 就是标签 ,要终止的位置 

break label :终止结束到标签 ,结束语句

continue label: 终止本次循环 跳到标签位置进行接下来的循环

  continue语句将中断正常的控制流程,continue语句将控制转移到最内层循环的首部

  如果将continue语句用于for循环中,就可以跳到for循环的"更新"部分

3.9 大数值

  如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigIntegerBigDecimal,这两个类可以处理包含任意长度数字序列的数值,BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算

  使用静态的valueOf方法可以将普通的数值转换为大数值:

  BigInteger a =BigInteger.valueOf(100);

  遗憾的是,不能使用算术运算符处理大数值,而需要使用大数值类中的add和multiply方法

  BigInteger  c = a.add(b); // c=a+b 

  BigInteger d = c.multiply(b.add(BigInteger.valueOf(2))) // d=c*(b+2)

3.10 数组

  在声明数组变量时,需要指出数组类型和数组变量的名字

  int[] a;

  不过这条语句只声明了变量a,并没有将a初始化为一个真正的数组,应该使用new运算符创建数组

  int[] a = new int[100];

  要想获得数组中的元素个数,可以使用array.length

  一旦创建了数组,就不能再改变他的大小,如果经常需要在运行过程中扩展数组的大小,就应该使用另一种数据结构--数组列表(array list)

1.for each循环

  Java有一种功能很强的循环结构,可以用来一次处理数组中的每个元素,而不必为指定下标值而分心,这种语句格式为:

  for(variable : collection) statement

  例如:

   for(int element : a)

    System.out.println(element);

有个更简单的方式可以打印数组中的所有值,即利用Arrays的toString方法

2.数组初始化及匿名数组

  在Java中,提供了一种创建数组对象并同时赋予初始值的简化书写方式.

  int [] smallPrimes = {2,3,5,7,11,13};

3.数组拷贝

  在java中,允许将一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组

  如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法

  int[] copiedLuckyNumber = Array.copyOf(luckyNumber,luckyNumber.length);

  第二个参数是新数组的长度,这个方法通常用来增加数组的大小

5.数组排序

  要想对数值型数组进行排序,可以使用Arrays类中的sort方法

  int[] a=new int[10000]

  ....

  Array.sort(a);

6.多维数组

  在Java中,声明一个二维数组相当简单

  double[] balances;

  与一维数组一样,初始化之前不能使用他

  balances = new double[NYEARS][NRATES]

  如果知道数组元素,就可以不调用new,而直接使用简化的书写形式对多维数组进行初始化

  int[] magicSquare={

    {16,3,2,13},

    {5,10,11,8},

    {9,6,7,12},

    {4,15,14,1}

  };

  for each循环语句不能自动处理二维数组的每一个元素,它是按照行,也就是一维数组处理的,要想访问二维数组a的所有元素,需要使用两个嵌套的循环,如下所示:

  for( double[] row :a)

    for(double value : row)

      do something with value

  若想快速的打印一个二维数组的数据元素列表,可以调用Array.deepToString方法

四.对象与类

以上是关于0601 Java核心技术卷1的主要内容,如果未能解决你的问题,请参考以下文章

Java核心技术 卷Ⅰ 基础知识

Java核心技术卷1--抽彩游戏的数组快速排序

Java核心技术卷一 8. java并发

《Java核心技术 卷1 基础知识》一

《java核心技术 卷1 基础知识》二

Java核心技术·卷1