Java 开发环境配置
这个地方不再多说了,网上有很多教程配置的资料可供参考。
Java 基本语法
在配置完 Java 开发环境,并下载 Java 开发工具(Eclipse、IDEA 等)后,就可以写 Java 代码了,因为本篇文章是从头梳理 Java 体系,所以有必要从基础的概念开始谈起。
数据类型
在 Java 中,数据类型只有四类八种
- 整数型:byte、short、int、long
byte 也就是字节,1 byte = 8 bits,byte 的默认值是 0 ;
short 占用两个字节,也就是 16 位,1 short = 16 bits,它的默认值也是 0 ;
int 占用四个字节,也就是 32 位,1 int = 32 bits,默认值是 0 ;
long 占用八个字节,也就是 64 位,1 long = 64 bits,默认值是 0L;
所以整数型的占用字节大小空间为 long > int > short > byte
- 浮点型
浮点型有两种数据类型:float 和 double
float 是单精度浮点型,占用 4 位,1 float = 32 bits,默认值是 0.0f;
double 是双精度浮点型,占用 8 位,1 double = 64 bits,默认值是 0.0d;
- 字符型
字符型就是 char,char 类型是一个单一的 16 位 Unicode 字符,最小值是 \u0000 (也就是 0 )
,最大值是 \uffff (即为 65535)
,char 数据类型可以存储任何字符,例如 char a = 'A'。
- 布尔型
布尔型指的就是 boolean,boolean 只有两种值,true 或者是 false,只表示 1 位,默认值是 false。
以上 x 位
都指的是在内存中的占用。
基础语法
- 大小写敏感:Java 是对大小写敏感的语言,例如 Hello 与 hello 是不同的,这其实就是 Java 的字符串表示方式
- 类名:对于所有的类来说,首字母应该大写,例如
MyFirstClass
- 包名:包名应该尽量保证小写,例如
my.first.package
- 方法名:方法名首字母需要小写,后面每个单词字母都需要大写,例如
myFirstMethod()
运算符
运算符不只 Java 中有,其他语言也有运算符,运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面,我们就以 Java 为例,来看一下运算符。
- 赋值运算符
赋值运算符使用操作符 =
来表示,它的意思是把 = 号右边的值复制给左边,右边的值可以是任何常数、变量或者表达式,但左边的值必须是一个明确的,已经定义的变量。比如 int a = 4
。
但是对于对象来说,复制的不是对象的值,而是对象的引用,所以如果说将一个对象复制给另一个对象,实际上是将一个对象的引用赋值给另一个对象。
- 算数运算符
算数运算符就和数学中的数值计算差不多,主要有
算数运算符需要注意的就是优先级问题
,当一个表达式中存在多个操作符时,操作符的优先级顺序就决定了计算顺序,最简单的规则就是先乘除后加减,()
的优先级最高,没必要记住所有的优先级顺序,不确定的直接用 () 就可以了。
- 自增、自减运算符
这个就不文字解释了,解释不如直接看例子明白
int a = 5; b = ++a; c = a++;
- 比较运算符
比较运算符用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。
比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算的结果为 true,否则为 false。比较运算符共有 6 个,通常作为判断的依据用于条件语句中。
- 逻辑运算符
逻辑运算符主要有三种,与、或、非
下面是逻辑运算符对应的 true/false 符号表
- 按位运算符
按位运算符用来操作整数基本类型中的每个比特
位,也就是二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
如果进行比较的双方是数字的话,那么进行比较就会变为按位运算。
按位与:按位进行与运算(AND),两个操作数中位都为1,结果才为1,否则结果为0。需要首先把比较双方转换成二进制再按每个位进行比较
按位或:按位进行或运算(OR),两个位只要有一个为1,那么结果就是1,否则就为0。
按位非:按位进行异或运算(XOR),如果位为0,结果是1,如果位为1,结果是0。
按位异或:按位进行取反运算(NOT),两个操作数的位中,相同则结果为0,不同则结果为1。
- 移位运算符
移位运算符用来将操作数向某个方向(向左或者右)移动指定的二进制位数。
- 三元运算符
三元运算符是类似 if...else...
这种的操作符,语法为:条件表达式?表达式 1:表达式 2。问号前面的位置是判断的条件,判断结果为布尔型,为 true 时调用表达式 1,为 false 时调用表达式 2。
Java 执行控制流程
Java 中的控制流程其实和 C 一样,在 Java 中,流程控制会涉及到包括 if-else、while、do-while、for、return、break 以及选择语句 switch
。下面以此进行分析
条件语句
条件语句可根据不同的条件执行不同的语句。包括 if 条件语句与 switch 多分支语句。
if 条件语句
if 语句可以单独判断表达式的结果,表示表达的执行结果,例如
int a = 10; if(a > 10){ return true; } return false;
if...else 条件语句
if 语句还可以与 else 连用,通常表现为 如果满足某种条件,就进行某种处理,否则就进行另一种处理。
int a = 10; int b = 11; if(a >= b){ System.out.println("a >= b"); }else{ System.out.println("a < b"); }
if 后的 () 内的表达式必须是 boolean 型的。如果为 true,则执行 if 后的复合语句;如果为 false,则执行 else 后的复合语句。
if...else if 多分支语句
上面中的 if...else 是单分支和两个分支的判断,如果有多个判断条件,就需要使用 if...else if
int x = 40; if(x > 60) { System.out.println("x的值大于60"); } else if (x > 30) { System.out.println("x的值大于30但小于60"); } else if (x > 0) { System.out.println("x的值大于0但小于30"); } else { System.out.println("x的值小于等于0"); }
switch 多分支语句
一种比 **if...else if ** 语句更优雅的方式是使用 switch
多分支语句,它的示例如下
switch (week) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; case 4: System.out.println("Thursday"); break; case 5: System.out.println("Friday"); break; case 6: System.out.println("Saturday"); break; case 7: System.out.println("Sunday"); break; default: System.out.println("No Else"); break; }
循环语句
循环语句就是在满足一定的条件下反复执行某一表达式的操作,直到满足循环语句的要求。使用的循环语句主要有 **for、do...while() 、 while **,
while 循环语句
while 循环语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句。while 循环语句的格式如下
while(布尔值){ 表达式 }
它的含义是,当 (布尔值) 为 true 的时候,执行下面的表达式,布尔值为 false 的时候,结束循环,布尔值其实也是一个表达式,比如
int a = 10; while(a > 5){ a--; }
do...while 循环
while 与 do...while 循环的唯一区别是 do...while 语句至少执行一次,即使第一次的表达式为 false。而在 while 循环中,如果第一次条件为 false,那么其中的语句根本不会执行。在实际应用中,while 要比 do...while 应用的更广。它的一般形式如下
int b = 10; // do···while循环语句 do { System.out.println("b == " + b); b--; } while(b == 1);
for 循环语句
for 循环是我们经常使用的循环方式,这种形式会在第一次迭代前进行初始化。它的形式如下
for(初始化; 布尔表达式; 步进){}
每次迭代前会测试布尔表达式。如果获得的结果是 false,就会执行 for 语句后面的代码;每次循环结束,会按照步进的值执行下一次循环。
逗号操作符
这里不可忽略的一个就是逗号操作符,Java 里唯一用到逗号操作符的就是 for 循环控制语句。在表达式的初始化部分,可以使用一系列的逗号分隔的语句;通过逗号操作符,可以在 for 语句内定义多个变量,但它们必须具有相同的类型
for(int i = 1;j = i + 10;i < 5;i++, j = j * 2){}
for-each 语句
在 Java JDK 1.5 中还引入了一种更加简洁的、方便对数组和集合进行遍历的方法,即 for-each
语句,例子如下
int array[] = {7, 8, 9}; for (int arr : array) { System.out.println(arr); }
跳转语句
Java 语言中,有三种跳转语句: break、continue 和 return