Java学习笔记 [1] —— 基本结构、注释、数据类型、变量、运算符

Java应用程序的基本结构

public class FirstSample 
{
  public static void main(String[] args) 
   { 
     System.out.println("We will not use 'Hello, World!"'); 
   } 
}
  • Java区分大小写
  • public——访问修饰符(access modifier), 修饰符用于控制程序的其他部分对这段代码的访问级別。 根据 Java 语言规范,main 方法必须声明为 public 。
  • 关键字 class 表明 Java 程序中的全部内容都包含在类中。
  • 类名:类名的定义规则很宽松,必须以字母开头,后面接字母和数字的组合,长度没有限制,不能与Java的保留字相同。标准命名规则: 大写字母开头的名词,如果由几个单词组成则每个单词第一个字母都大写,例: FirstSample 。

输出:
System.out.println() 输出换行
System.out.print() 输出不换行

注释

  • // 单行注释。
  • /*开头 */结尾 可以将一段较长的注释括起来。
  • /**开头 */结尾 这种注释可以用来自动地生成文档。

数据类型

Java 是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在 Java 中,一共有 8 种基本类型(primitive type), 其中有 4 种整型、2 种浮点类型、 1 种用于表示 Unicode编码的字符 单元的字符类型 char 和 1 种用于表示真值的 boolean类型。

整型

类型储存需求取值范围
int4 字节-2 147 483 648 ~ 2 147483647 (正好超过 20亿)
short2 字节-32768 ~ 32767
long8 字节-9 223372 036 854 775 808 ~ 9 223372 036854 775 807
byte1 字节-128 ~ 127
  • 长整型数值有一个后缀 L 或 1 (如 4000000000L)。
  • 十六进制数值有一个前缀 0x 或 0X (如 0xCAFE)
  • 八进制有一个前缀 0, 例如,010 对应八进制中的 8。很显然,八进制表示法比较容易混淆,所以建议最好不要使用八进制常数。
  • 从 Java7 开始, 加上前缀 0b 或 0B 就可以写二进制数。例如,0b1001就是 9。
  • Java中没有任何无符号形式的 int、long、short 或 byte 类型。

浮点类型

类型储存需求取值范围
float4 字节大约 ± 3.402 82347E+38F (有效位数为 6 ~ 7 位)
double8 字节大约 ± 1.797693 134862315 70E+308 (有效位数为 15 位)
  • double 表示这种类型的数值精度是 float 类型的两倍。

  • 绝大部分应用程序都采用double 类型。

  • 下面是用于表示溢出和出错情况的三个特殊的浮点数值:
    1.正无穷大
    2.负无穷大
    3.NaN (不是一个数字)
    例如,一正整数除以 0 的结果为正无穷大。计算 0/0 或者负数的平方根结果为 NaN。

    常量 Double_POSITIVE_INFINITY、Double.NEGATIVEJNFINITY 和 Double.NaN 分别表示这三个特殊的值。

    !不能这样检测一个特定值是否等于 Double.NaN:

    if (x = Double.NaN)  // is never true 
    

    所有“ 非数值” 的值都认为是不相同的。然而,可以使用 Double.isNaN 方法:

    if (Double.isNaN(x)) // check whether x is "not a number"
    

char 类型

由于 Unicode 编码机制的复杂性,强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。
常见的转义序列

boolean 类型

boolean (布尔)类型有两个值:false 和 true, 用来判定逻辑条件。

  • 整型值和布尔值之间不能进行相互转换。

变量

  • Java不区分声明和定义。

变量初始化

要想对一个已经声明过的变量进行赋值, 就需要将变量名放在等号(=) 左侧, 相应取值 的 Java 表达式放在等号的右侧。

int vacationDays;
vacationDays=12; 

也可以将变量的声明和初始化放在同一行中。例如:

int vacationDays = 12;

常量

在 Java中, 利用关键字 final 指示常量。例如:

public class Constants 
{ 
  public static void main(String[] args) 
  { 
    final double CM_PER_INCH = 2.54; 
    double paperWidth = 8.5; 
    double paperHeight = 11; 
    System,out.println("Paper size in centimeters: " + paperWidth * CM PER INCH + " by " + paperHeight * CM.PER.INCH); 
  } 
} 

关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。习惯上, 常量名使用全大写。
在Java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字 static final 设置一个类常量。下面是使用类常量的示例:

public class Constants2 
{ 
  public static final double CM_PER_INCH = 2.54; 
  public static void main(String[] args) 
  { 
    double paperWidth = 8.5; 
    double paperHeight = 11; 
    System.out.println("Paper size in centimeters: " + paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH); 
  } 
} 

需要注意,类常量的定义位于 main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为 public,那么其他类的方法也可以使用这个常量。在这个示例中,Constants2.CM_PER-INCH 就是这样一个常量。

运算符

  • 在 Java中,使用算术运算符 +、- 、* 、/ 表示加、减、乘、除运算。
  • 当参与 / 运算的两个 操作数都是整数时,表示整数除法;否则,表示浮点除法。
  • 整数的求余操作(有时称为取模) 用 % 表示。
  • 需要注意,整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或 NaN结果。
  • 对于使用strictfp关键字标记的方法必须使用严格的浮点计算来生成可再生的结果。例如,可以把 main 方法标记为
      public static strictfp void main(String[] args) 

于是,在 main 方法中的所有指令都将使用严格的浮点计算。

数学函数与常量

在 Math类中,包含了各种各样的数学函数。

平方根
Math.sqrt( )
幂运算
Math.pow( , )
三角函数
Math.sin( )
Math.cos( )
Math.tan( )
Math.atan( )
Math.atan2( )
指数函数和对数函数
Math.exp( )
Math.log( )
Math.log10( )
最后,Java还提供了两个用于表示 π 和 e 常量的近似值:
Math.PI
Math.E

  • 提示:不必在数学方法名和常量名前添加前缀" Math ",只要在源文件的顶部加上下面这行代码就可以了(类似于C++的头文件)。
        import static java.1ang.Math.*;

数值类型之间的转换

当使用两个数值进行二元操作时(例如 n + f,n 是整数,f 是浮点数), 先要将两个操作数转换为同一种类型,然后再进行计算。

  • 如果两个操作数中有一个是 double 类型,另一个操作数就会转换为 double 类型。
  • 否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。
  • 否则,如果其中一个操作数是 long 类型,另一个操作数将会转换为 long 类型。
  • 否则,两个操作数都将被转换为 int 类型。

强制类型转换

需要通过强制类型转换(cast) 实现这个操作。
强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如:

double x * 9.997; 
int nx = (int) x; 

这样,变量 nx 的值为 9。
强制类型转换通过截断小数部分将浮点值转换为整型。如果想对浮点数进行舍人运算,以便得到最接近的整数(在很多情况下,这种操作更有用),那就需要使用 Math.round 方法:

double x = 9.997; 
int nx = (int) Math.round(x); 

现在,变量 nx 的值为 10。

结合赋值和运算符

x+=4 等价于 x=x+4。

自增与自减运算符

自增自减运算符有两种形式:“ 后缀 ” 形式:n++,“ 前缀 ” 形式:++n。
后缀和前缀形式都会使变量值加 1 或减 1。
前缀形式会先完成加 1; 而后缀形式会使用变量原来的值。

int m = 7; 
int n = 7; 
int a = 2 * ++m; // now a is 16, m is 8 
int b = 2 * n++; // now b is 14, n is 8

关系和 boolean 运算符

==、!=、<、>、<=、>=、&&、||、? : 与C++用法相同。

位运算符??

运算符优先级

在这里插入图片描述
在这里插入图片描述

枚举类型

有时候,变量的取值只在一个有限的集合内。这种情况可以自定义枚举类型。枚举类型包括有限个命名的值。 例如,

enum Size {SMALL, MEDIUM, LARGE, EXTRA.LARCE}; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值