JAVA的基本程序设计结构(上)

  • 一个简单的Java应用程序
    • public class FirstSample {
          public static void main(String[] args) {
              System.out.println("We will not use 'Hello,World!'");
          }
      }
    • 访问修饰符 public ,用于控制程序的其他部分对这段代码的访问级别。
    • 类名以大写字母开头,每个单词的第一个首字母都应该大写,称为骆驼命名法。
    • Java虚拟机总是从指定类中的main方法的代码块开始执行,因此,类的源文件中必须包含一个main方法。
    • 使用System.out对象并调用了它的println方法。点号(.)用于调用方法。
    • System.out还有一个print方法,它不在输出之后增加换行符。
  • 注释
    • 最常用的方式是使用 //,其注释内容从 // 开始到本行结尾。
    • 多行注释,/* ... */
    • 自动生成文档,/** 开始,*/ 结束
  • 数据类型

    • Java是一种强类型语言,必须为每一个变量声明一种类型。

      • 共有8种基本类型,其中4种整型,2种浮点类型,1种字符类型 char 和 1种用于表示真值的boolean类型。

      • Java有一个能表示任意精度的算数包,称为“大数”。它并不是一种基本Java类型,而是一个Java对象。

    • 整型(用于表示没有小数部分的数值,允许是负数)

      • int 类型,long 类型,short 类型,byte 类型

      • 最常用 int类型,数字较大用long类型:长整型数值有一个后缀L或l

      • byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵时的大数组。

      • 在Java中,整型的范围与运行Java代码的机器无关。这就解决软件从一个平台移植得到另一个平台所带来的诸多问题。

    • 浮点类型(用于表示有小数部分的数值)

      • float 类型和 double 类型

      • float 类型的数值有一个后缀 F 或 f (例如,3.14F)。实际上,只有很少的情况适合使用 float 类型,例如,需要单精度数的库,或者需要存储大量数据时。

      • double 双精度数值 

      • 用于表示溢出和出错情况的三个特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数字)。

        • 例如,一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。

        • 判断是否为非数值,使用Double.isNaN方法。如下:

          if(Double.isNaN(x))
    • char 类型(用于表示单个字符)  
      • 如今,用于表示Unicode编码的代码单元。字面量值要用单引号括起来。例如:‘A’ 是编码值为65的字符常量。
      • 强烈建议不要在程序中使用 char 类型。
    • boolean 类型
      • 有两个值:false 和 true ,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换
  • 变量与常量
    • 与所有程序设计语言一样,Java也使用变量来存储值。常量就是值不变的变量
    • 声明变量(不能使用Java保留字作为变量名)
      • int a;   //变量的类型 变量名
    • 变量初始化

      • 声明变量之后,必须用赋值语句对变量进行显示初始化。不能使用未初始化的变量的值。

      • int a=12;
    • 从Java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不需要声明类型。

      • var a=12;                //只需要使用关键字var
        var b="Hello";               //而无须指定类型
    • 常量(关键字 final 指示常量)

      • final double CM_INCH=2.51;    //关键字final表示这个变量只能被赋值一次。被赋值之后,就不能再更改了。习惯上,常量名使用全大写。
      • Java中,经常希望某个常量可以在一个类的多个方法中使用,将这些常量称为类常量。

        • public static final double CM_INCH=2.51;  //关键字 static final 设置一个类常量    
    • 枚举类型(变量的取值在一个有限的集合内)

      • enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};   //自定义枚举类型
        Size s=Size.MEDIUM;     //Size类型的变量只能存储这个类型声明中给定的某个枚举值。或者特殊值null,表示这个变量没有设置任何值。
  • 运算符

    • 算术运算符(+、-、*、/)

      • 当参与 / 运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法。整数的求余操作(有时称为取模)用%表示。

        • 例如,15/2等于7,15%2等于1,15.0/2等于7.5

      • 注意:整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。

    • 数学函数与常量

      • Math类中,计算一个数值的平方根,使用sqrt方法

        • double a=3;
          double b=Math.sqrt(a);
          System.out.println(b);
      • 幂运算,Math类的pow方法

        • double c=Math.pow(a, b);
      • Math类提供了一些常用的三角函数

        • Math.sin     Math.cos      Math.tan    Math.atan       Math.atan2

      • 指数函数以及它的反函数——自然对数以及以10为底的对数

        • Math.exp      Math.log     Math.log10

      • Java还提供了两个用于表示 π 和 e 常量的最接近的近似值              

        • Math.PI       Math.E  
      • 不必在数学方法名和常量名前添加前缀“Math”,只要在源文件的顶部加上下面这些代码就行了

        • import static java.lang.Math.*;
          System.out.println(E);
    • 数值类型之间的转换

      • 上图数值类型之间的合法转换中,有6个黑色箭头,表示无信息丢失的转换;另外3个红色箭头,表示可能有精度损失的转换。

      • 当用一个二元运算符连接两个值时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型。

        • 如果两个操作数中有一个是double / float / long 类型,另一个操作数将会转换为 double / float / long 类型。

        • 否则,两个操作数都将转换为 int 类型

    • 强制类型转换

      • double x=9.997;
        int nx=(int)x;     //double类型强制转换为int类型
        int nx=(int) Math.round(x);    //long类型强制转换为int类型     Math.round()四舍五入,返回结果为long类型   
    • 结合赋值和运算符

      • x += 4;  等价于  x = x + 4;    (运算符放在 = 号左边,如 *= 或 %=)

      • 如果运算符两边操作数类型不同,就会强制类型转换。例如,int x;  x += 3.5;   是合法语句,将会把x设置为 (int)(x+3.5)

    • 自增与自减运算符

      • n++ 或 n--   将变量n的当前值加1或减1

      • ++n 或 --n   表达式中,会先完成加1                --建议不要在表达式中使用  

    • 关系和boolean运算符

      • 相等  3 == 7 值为false        不相等  3 != 7 值为true

      • && 逻辑“与”运算符         || 逻辑“或”运算符         按照“短路”方法求值,如果第一个操作数能够确定了表达式的值,第二个操作数就不必计算了

      • 三元操作符

        • 表达式?true 时执行的语句:false 时执行的语句;

    • 位运算符

      • & 和 | 运算符不采用“短路”方式来求值,得到计算结果之前两个操作数都需要计算。

    • 括号与运算符级别

      • 因  += 是右结合运算符,a += b += c  等价于  a += (b +=c)    也就是将 b += c 的结果(加上 c 之后的 b )加到 a                      

  

 

  ——引用书籍《Java 核心技术 卷I》基础知识(原书第11版)

                                 

        

    

    

    

                

posted @ 2020-08-02 18:42  菜鸟CM  阅读(234)  评论(0)    收藏  举报