javase 基本语法

2018-07-08

HelloWorld

public class HelloWorld{
	public static void main(String[] args) {
			System.out.println("Hello World!");
	}
}

标识符

  • 允许的字符
    • 英文大小写字母(a-zA-Z)
    • 数字字符(0-9)
    • $_
  • 限制条件
    • 数字不能开头
    • 不可以使用关键字
    • 严格区分大小写,不限制长度

数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型。

  • 基本数据类型
    • 整数类型: byte、short、int、long
    • 小数类型: float、double
    • 字符类型: char
    • 布尔类型: boolean
四类 八种 字节数 数据表示范围
整型 byte 1 -128~127
- short 2 -32768~32767
- int 4 -2147483648~2147483648
- long 8 -2^63~2^63-1
浮点型 float 4 -3.403E38~3.403E38
- double 8 -1.798E308~1.798E308
字符型 char 2 表示一个字符,如(‘a’,’A’,’0’,’家’)
布尔型 boolean 1 只有两个值true与false
  • 引用数据类型
    • 类库中类对象
    • 自定义对象

常量

  • 整数类型
    • 十进制表示方式:正常数字,如1325
    • 二进制表示方式:以0b(0B)开头,如0b10110B1001
    • 十六进制表示方式:以0x(0X)开头,数字以0-9A-F组成,如0x23A20xa0x10
    • 八进制表示方式:以0开头,如01070721
  • 小数类型
    • 1.0-3.153.168
  • 布尔类型
    • truefalse
  • 字符类型
    • 'a''A''0''家'
  • 字符串类型
    • “我爱Java”“0123”“”“null”

注意

  • 整形常量默认是int类型
  • 小数常量默认是double类型
  • 定义长整形数据如果值超过int取值范围后面要加L
  • 定义float类型的数据后面要加f 否则默认是double

数据类型转换

  • 表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换
  • 表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

运算符

常用运算符

运算符 运算规则 范例 结果  
+ 正号 +3 3  
+ 2+3 5  
+ 连接字符串 “中”+“国” “中国”  
- 负号 int a=3;-a -3  
- 3-1 2  
* 2*3 6  
/ 5/2 2  
% 取模 5/2 1  
++ 自增 int a=1;a++/++a 2  
自减 int b=3;a–/–a 2  
= 赋值 int a=2 2  
+= 加后赋值 int a=2,a+=2 4  
-= 减后赋值 int a=2,a-=2 0  
*= 乘后赋值 int a=2,a*=2 4  
/= 整除后赋值 int a=2,a/=2 1  
%= 取模后赋值 int a=2,a%=2 0  
== 相等于 4==3 False  
!= 不等于 4!=3 True  
< 小于 4<3 False  
> 大于 4>3 True  
<= 小于等于 4<=3 False  
>= 大于等于 4>=3 True  
& false&true False  
| false true True
^ 异或 true^flase True  
! !true Flase  
&& 短路与 false&&true False  
|| 短路或 false||true True  
?: 三元运算符 1>2?3:4 4  

注意事项

  • 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
  • 除法/当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
  • %为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
  • 整数做被除数,0不能做除数,否则报错。
  • 小数做被除数,整除0结果为Infinity,对0取模结果为NaN
  • 短路与&&:参与运算的两边数据,有false,则运算结果为false
  • 短路或||:参与运算的两边数据,有true,则运算结果为true
  • 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true

运算符优先级

优先级 描述 运算符
1 括号 ()、[]
2 正负号 +、-
3 自增自减,非 ++、–、!
4 乘除,取余 *、/、%
5 加减 +、-
6 移位运算 «、»、»>
7 大小关系 >、>=、<、<=
8 相等关系 ==、!=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ?:
15 赋值运算 =、+=、-=、*=、/=、%=
16 位赋值运算 &=、|=、«=、»=、»>=

流程控制

流程控制方面JavaC语言基本一致,支持:

  • 分支:if(else)switch
  • 循环:whiledo...whilefor,循环语句支持breakcontinue

数组

  • 一维数组定义
    • 方式一(静态初始化)
        类型[] 数组名 = new 类型[长度];
      
    • 方式二(动态初始化)
        类型[] 数组名 = new 类型[]{元素,元素,……};
      
    • 方式三(动态初始化)
        类型[] 数组名 = {元素,元素,元素,……};	 
      
  • 二维数组的定义
    • 第一种定义格式
      • int[][] arr = new int[3][4];
      • 上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组
    • 第二种定义格式(不推荐)
      • int[][] arr = new int[3][];
      • 第二种方式和第一种类似,只是数组中每个元素的长度不确定
    • 第三种定义格式
      • int[][] arr = { {1,2},{3,4,5,6},{7,8,9}};
      • 二维数组中定义了三个元素,这三个元素都是数组,分别为{1,2}{3,4,5,6}{7,8,9}

(本文完)

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。