Java - Java语言基础

152 阅读4分钟

Java语言基础

Java的语言基础包括,变量的命名规则和惯例、基础的数据类型(原始类型、字符串、数组)、默认值、常量、运算符、控制流。

1. 变量

1.1 实例变量

实例,指的是类创建的对象实例。对象实例的属性(变量)是非静态属性,是在类中未用static关键字声明的属性(变量)。

1.2 类变量

在类中用关键字static声明的变量是类变量,用static关键字声明的意义在于告诉编译器,不管这个类被实例化了多少次,static修饰的变量只有一个副本存在。

关键字final(不可改变的),用来修饰一个变量是不可被修改的。

static int numGears = 6; //声明一个类变量,类变量只有一个副本存在
static final int numGears = 6; //声明一个类变量,并且用final来表示这个变量是不可被实例修改的

1.3 局部变量

在类中,使用类变量和实例变量来存储类的属性,在方法中可以使用局部变量存储暂时的状态。局部变量的作用域是声明这个变量的方法,不会被其他的类访问到。

1.4 参数

参数也是变量,通过参数传递给方法一个确切的值,让方法能够根据参数来计算最终的结果。

1.5 变量的命名规则

  1. 变量的命名区分大小写
  2. 允许无限长度的unicode字符和数字、美元符号、下划线作为变量的开头。但是一般不使用$或者_来作为变量的开头,一些情况下自动生成的变量会用$作为变量的开头,而下划线变量也拥有类似的惯例存在,所以一般不使用$或者_来作为变量的开头。
  3. 变量除了开头之外的其他字符,可以使用$,_或者其他可见字符来定义。变量应该具有较强的可读性,不应该是一个神秘的缩写哈哈哈。
  4. 变量不能是关键字或者保留字,比如不能是final,int,staic等等已经被Java用作关键字或者保留字的字符序列。
  5. 驼峰式变量命名法:numGears, currentGear等都是驼峰式命名法,如果一个变量是由一个单词命名,则这个单词小写,如果是多个单词命名,则第一个单词的首字母小写,其他单词的首字母大写。(这只是一种命名规范,并不是Java语言的强制要求)
  6. 常量的命名规范:如果一个属性值是一个常量,其变量中的单词都应该大写,并且单词与单词之间用下划线连接,如:static final int NUM_GEARS = 6;

2. 运算符

操作数使用运算符来作运算,并且返回结果。
运算符具有优先级,在表格中顶部的运算符优先级最高,在一个运算中,优先作优先级较高的运算。

OperatorsPrecedence
postfixexpr++ expr--
unary++expr --expr +expr -expr ~ !
multiplicative* / %
additive+ -
shift<< >> >>>
relational< > <= >= instanceof
equality== !=
bitwise AND&
bitwise exclusive OR^
bitwise inclusive OR``
logical AND&&
logical OR``
ternary? :
assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=

3. 表达式,语句和块

运算符可以用来构建表达式,表达式用来计算值。表达式是语句的核心组成部分,而语句可以被分组为块。

3.1 表达式

表达式是由变量、运算符和方法调用组成的构造。

int cadence = 0;
anArray[0] = 100;
System.out.println( "Element 1 at index 0: " + anArray[0] );

int result = 1 + 2; // result is now 3
if (value1 == value2) 
    System.out.println( "value1 == value2" );

表达式返回值的类型取决于表达式使用的变量的数据类型。

3.2 语句

编程语言的语句相当于自然语言的语句,一条语句构成一个完整的执行单元。下列表达式通过以;结束来组成语句。

  • 赋值表达式
  • ++ 、-- 表达式
  • 方法调用表达式
  • 对象创建表达式

下面代码是 表达式语句 的示例:

// assignment statement
aValue = 8933.234;
// increment statement
aValue++;
// method invocation statement
System.out.println("Hello World!");
// object creation statement
Bicycle myBike = new Bicycle();

除了表达式语句之外,还有声明语句、控制流程语句。
声明语句声明一个变量:

// declaration statement
double aValue = 8933.234;

控制流程语句调节语句的执行顺序

int aValue = 2;
if (aValue > 1){
    System.out.println("aValue 大于 1");
}else{
    System.out.println("aValue 不小于 1");
}

3.3 块

块是用花括号包含的零个或多个语句,可以在允许单个语句的任何地方使用。

class BlockDemo {
     public static void main(String[] args) {
          boolean condition = true;
          if (condition) { // begin block 1
               System.out.println("Condition is true.");
          } // end block one
          else { // begin block 2
               System.out.println("Condition is false.");
          } // end block 2
     }
}

4. 控制流程

控制流程语句包含条件语句(if-then,if-then-else,switch),循环语句(for,while,do-while),分支语句(break,continue,return),这些流程控制语句根据情况用来决策程序执行的顺序。