• 移动平台开发第一周作业20189203


    《Java和Android开发学习指南》第一、二、三章学习

    一、Java的优点

    • 1 跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快
    • 2 纯面向对象。Java 所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特点?
    • 3 Java提供很多内置的类库,例如支撑多线程和GC
    • 4 Java由JVM自动进行内存分配与回收,c++需要开发人员管理内存。
    • 5 简洁。去除了C++的指针,多重继承等
    • 6 Java不支持多继承,但是可以实现多个接口来做到。C++支持多继承
    • 7 Java不支持运算符重载
    • 8 Java不支持自动类型转换,必须开发人员显式转换,C++支持自动转换

    二、数据类型:

    • (1)基本数据类型(4类8种):
      整数类型:byte、short、int、long
      浮点数类型:float、double
      字符类型:char
      布尔类型:boolean(ture false)
    • (2)引用数据类型:

      接口
      数组
      类型转换
      精度从高到低 double float long int short(char) byte
      (1)自动类型转换 将一个低精度---高精度
      (2)强制类型转换 将一个高精度---低精度(精度会下降)

    三、基本语句

    • 1、表达式语句
      一些表达式除了计算表达式的值以外,还有“副作用”,这些表达式可以直接做语句(后面加分号)。
      什么叫“副作用”?一个表达式有“副作用”,是指:在对该表达式计值时,会改变Java程序的状态,以致再次对该表达式计值时,可能会得出不同的结果。有“副作用”的表达式包括:赋值、自增、自减、方法调用、对象建立。
      例如:
      a = 1; // Assignment
      x *= 2; // Assignment with operation
      i++; // Post-increment
      --c; // Pre-decrement
      System.out.println("statement"); // Method invocation
    • 2、复合语句:用一对大括号括起来的一组语句(在Delphi里,是用begin/end对包含)
      凡是可以出现语句的地方,都可以出现复合语句。
    • 3、空语句:单个分号
    • 4、带标号的语句:语句前面加上标识符(作为语句的标号)和冒号,break语句和continue语句可能会使用标号
      例如:
      rowLoop: for(int r = 0; r < rows.length; r++) { // A labeled loop
      colLoop: for(int c = 0; c < columns.length; c++) { // Another one
      break rowLoop; // Use a label
      }
      }
    • 5、局部变量声明语句 [final] type name [= value] [, name [= value]] ...;
      局部变量(简称变量),是存储值的位置的符号名,定义在方法中或复合语句中;所有变量在使用前必须先声明---这就是变量声明语句;
      Java是强类型语言,变量声明规定了变量的类型,只有该类型的值可以存储在该变量中;
      注:Pascal、C#是强类型语言,C、C++不是
      1)最简单形式:只规定变量类型和变量名;比如
      int counter;
      2)在变量声明中包含初始化,即:等号后面的表达式规定了变量的初始值;例如:
      int i = 0;
      String s = readLine( );
      int[] data = {x+1, x+2, x+3}; // Array initializers
      3)单个变量声明语句可以声明并且初始化多个变量,条件是这些变量必须有相同的类型;变量之间用逗号隔开。例如:
      int i, j, k;
      float x = 1.0, y = 1.0;
      String question = "Really Quit?", response;
      4)Java1.1以后,变量声明语句可以用final关键字开头,表示:一旦变量的初始值被规定了,以后就不允许改变了
      注:和C++的const相似
      例如:
      final String greeting = getLocalLanguageGreeting( );
      5)局部变量声明可以出现在代码的任何地方,不一定非要在方法或代码块的开头;甚至可以出现在for循环的初始化部分;
      6)局部变量只可以在定义它们的方法或代码块中使用,这称为该变量的作用域(scope)
    • 6、if/else语句:if ( expr ) statement [ else statement]
      1)条件表达式的值是boolean类型;在Java5.0中,这个值可以是boolean的包装类Boolean;
      2)Delphi中,else之前的语句末尾不能加分号!
      3)如果if语句里是另一个if语句,后面的else与哪个if搭配?
      答案是:与最近的if搭配。
    • 7、switch语句:switch ( expr ) { [ case expr : statements ] ... [ default: statements ] }
      1)switch表达式可以是int、short、byte、char;
      在Java5.0以后,也可以是这些类型对应的包装类;enum类型也是允许的;
      2)其他和C/C++相同,不再赘述
    • 8、while语句:while ( expr ) statement
    • 9、do语句:do statement while ( expr );
    • 10、for语句:for ( init ; test ; update ) statement
      在for语句的init和update中,可以有用逗号分隔开的多个语句(这是Java中唯一可以用逗号分隔语句的地方!),这些语句顺序执行
    • 11、for/in语句(见语句(二))
    • 12、break语句:break [ label ] ;
      1)简单的break:直接退出包含break的最内层的while、do、for、switch语句;
      2)break后面带语句标号:立即退出被标记的块,这个块可以是任何类型的语句,不限于循环或switch。例如:
      testfornull: if (data != null) { // If the array is defined,
      for(int row = 0; row < numrows; row++) { // loop through one dimension,
      for(int col = 0; col < numcols; col++) { // then loop through the other.
      if (data[row][col] = = null) // If the array is missing data,
      break testfornull; // treat the array as undefined.
      }
      }
      } // Java interpreter goes here after executing break testfornull
    • 13、continue语句:continue [ label ] ;
      break语句是推出一个循环,而continue是退出循环的当前迭代,开始下一次迭代;
      continue,无论后面有没有语句标号,都只能用于while、do、for循环中
      当不使用语句标号时,continue使最内层的循环开始下一次迭代;当使用语句标号(该标号标记一个包含这个continue的循环语句),continue使得被标记的循环开始下一次迭代。例如:
      while、do、for在处理continue时稍有不同:
    • while循环,简单地返回到循环顶部,再次测试循环条件,如果条件满足,再次执行循环体; * do循环,跳到循环底部,在那儿测试循环条件,以决定是否进行下一次迭代;
    • for循环,跳到循环顶部,在那儿先执行update(比如增量)表达式,然后评估循环条件,决定是否进行下一次迭代;
    • 14、return语句:return [ expr ] 。
  • 相关阅读:
    Atcoder Grand Contest 003 题解
    Atcoder Grand Contest 002 题解
    Atcoder Grand Contest 001 题解
    网络流24题
    AGC005D ~K Perm Counting
    loj6089 小Y的背包计数问题
    CF932E Team Work
    组合数学相关
    SPOJ REPEATS
    [SDOI2008]Sandy的卡片
  • 原文地址:https://www.cnblogs.com/23du/p/10467666.html
Copyright © 2020-2023  润新知