Java-基本语法

一、关键字

1. 定义

	被java语言赋予了特殊含义,用作专门用途的字符串

2. 特点

	关键字所有的字母都为小写

3. 保留字

	现有的java版本未使用,以后可能会使用

二、标识符

1. 定义

	Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符

2. 规则(必须遵守)

  1. 由26个英文字母大小写,0-9,或$组成
  2. 数字不可以开头
  3. 不可以使用关键字和保留字,但能够包含关键字和保留字
  4. Java中严格区别大小写,长度无限制(65535)
  5. 标识符不能包含空格

3. 规范(可以不遵守)

  1. 包名:多单词组成时,所有字母都小写 -> xxxyyyzzz
  2. 类名、接口名:多单词组成是,所有单词的首字母大写 -> XxxYyyZzz
  3. 变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个单词开始每个单词首字母大写 -> xxxYyyZzz
  4. 常量名:所有字母都大写,多单词时每个单词用下划线连接 -> XXX_YYY_ZZZ

三、变量

1. 概念

  1. 内存中的一个存储区域,且此空间中可以保存数据
  2. 该区域有自己的名称
  3. Java每个变量必须先声明,后使用
  4. 该区域的数据在同一类星星范围内不断变化

2. 注意

	1. 先声明再使用
	2. 必须初始化赋值之后再读取
	3. 必须存储定义时的数据类型的值
	4. 变量必须要有数据类型和变量值
	5. 变量有其作用范围,由它的声名语句所隶属的一对{}内使用
	6. 变量空间中值只能在其数据类型范围内变化

3. 使用

	声名:数据类型 变量名
	 -->String name;

四、数据类型

1. 基本数据类型

1.1 概念

  1. 决定空间大小和决定里面的数据可以做什么,保存的是数据的本身
  2. 整数字面量默认使用4字节的int型来保存
  3. 小数字面量默认使用8字节的double型来保存
  4. 范围大的量值给范围小的变量赋值时,需要进行强制类型转换
  5. 范围小的量值给范围大的变量赋值时,可以自动完成
  6. 兼容性最好的时double,最差的是byte
  7. 从范围大小来划分:byte < short < int < long < float < double
  8. 任意非long整数作运算,结果总是int型
  9. 如果有不同类型混合运算,结果总是范围最大的那个类型
  10. 字符型(char)的本质就是正整数,它可以直接使用整数赋值
  11. long类型赋值加后缀L -> long varLong = 5.6L;
  12. float类型赋值后缀加F -> float varFloat = 6.5F;

1.2 分类

1.2.1 布尔型:
	boolean -> 1字节
1.2.2 字符型:
	char -> 2字节
1.2.3 数值型
1.2.3.1 整型
  1. byte:1字节 -128 ~ 127
  2. short:2字节 -32768 ~ 32767
  3. int:4字节 -2^31 ~ 2 ^31-1
  4. long:8字节 -2^63 ~ 2 ^63-1
1.2.3.2 浮点型
  1. float:4字节 -10^38 ~ 10 ^38
  2. double 8字节 -10^308 ~ 10 ^308

2. 引用数据类型

	概念:内存中去保存的是别的数据的地址,例如String

3. 区别

	基本数据类型:基本数据类型的内存空间中存储的是数据的本身。
	引用数据类型:引用数据类型的内存空间中存储的是别的数据的地址

五、强制类型转换

1. 概念

	将容量大的数据类型转换为容量小的数据类型,可能造成精度降低或溢出

六、进制

1. 分类

  1. 二进制:0,1 -> 满2进1, 以0B或0b开头
  2. 十进制:0-9 -> 满10进1
  3. 八进制:0-7 -> 满8进1,以数字0开头表示
  4. 十六进制:0-9及A-F ->s满16进1,以0x或0X开头,且A-F可以用小写

2. 概念

  1. 计算机底层所有数据都是采用的二进制的补码形式保存
  2. 正数的补码就是本身
  3. 负数的补码就是它的相反数全部取反然后再加1得到
  4. 一个数是整数还是负数由符号位来决定,符号位总是哪个一个数的最高位
  5. 如果符号位为0表示这个数是一个正数
  6. 如果符号位为1表示这个数是一个负数

七、运算符

1. 位运算符

" << "(左移):空位补0,被移除的高位丢弃,空缺位补0(左移一位相当于乘以2)。
" >> "(右移):>>(右移):被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1(右移一位相当于除2)。
" >>> "(无符号右移):被移位二进制最高位无论是0或者1,空缺位都用0补。
" & “(与运算):二进制位进行” & "运算,只有1 & 1时结果为1,否则为0(结果总是小于等于运算符)。
" | “(或运算):二进制位进行” | "运算,只有0 | 0时结果时0,否则时1(结果总是大于等于运算数)。
" ^ "(异或运算):相同二进制位进行 ^ 运算,结果是0;1 ^ 1 = 0,0 ^ 0 = 0;不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1(结果不稳定,通常用于加密)。
" ~ "(取反):所有二进制取反,0变1,1变0(整数变负数,负数变正数,结果都是一个数的相反数减1)。

2. 算数运算符

  1. " + "(正号):-> +3 -> 3
  2. " - "(负号):-> b=4;-b -> -4
  3. " + "(加): -> 5+5 -> 10
  4. " - "(减):-> 6-4 -> 2
  5. " * "(乘):-> 3*4 -> 12
  6. " / "(除):-> 5/3 -> 1
  7. " % "(取模):-> 7%5 -> 2
  8. " ++ "(自增(前):先运算后取值):-> a=2;b=++a; -> a=3;b=3
  9. " ++ "(自增(后):先取值后运算):-> a=2;b=a++; -> a=3;b=2
  10. " – "(自减(前):先运算后取值):-> a=2;b=–a; -> a=1;b=1
  11. " – "(自减(后):先取值后运算):-> a=2;b=a–; -> a=1;b=2
  12. " + "(字符串相加): -> “He” + “llo” -> “Hello”

注意

  1. 如果是两个整数相除,结果总是整数,并且不会四舍> 五入,而是直接把小数丢弃 n % m
  2. 如果n % m 结果为 0,说明能被m整除
  3. 如果n % 2 结果为 0,说明是偶数,结果不为0,说明n是奇数
  4. n = i++; 先开辟一个临时空间,将i的值存到临时空间,然后i自己存储的空间里面的值+1,然后再将临时空间的值赋值给n
  5. 后++ 是先用后加, 必须要有一个临时空间 效率低.
  6. 前++ 是先加后用, 不需要临时空间, 效率高

3. 赋值运算符

  1. 符号 : " = "
  2. 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
  3. java支持连续赋值, 例如 : a = b = c = 100; 结果是a,b,c三个变量中的值都是100
  4. 扩展赋值运算符: +=, -=, *=, /=, %=
  5. 例如 : int n = 10; n += 30; 效果相当于 n = n + 30, 但是不会引起数据类型的变化

4. 比较运算符

  1. " == "(相等于):-> 4==3 -> false
  2. " != "(不等于): -> 4!=3 -> true
  3. " < "(小于):-> 4<3 -> false
  4. " > "(大于):-> 4>3 -> true
  5. " <= "(小于等于):-> 4<=3 -> false
  6. " >= "(大于等于):-> 4>=3 -> true
  7. " instanceof "(检查是否是类的对象):-> “Hello” instanceof String -> true

  1. 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  2. 比较是否相等或不等, 可以适用所有数据类型(==、!=)
  3. 比较大小的操作只适用于基本型中的数值型(>、>=、<、<=)

5. 逻辑运算符

aba&ba|b!aa^ba&&ba||b
truetruetruetruefalsefalsetruetrue
truefalsefalsetruefalsetruefalsetrue
falsetruefalsetruetruetruefalsetrue
falsefalsefalsefalsetruefalsefalsefalse
  1. &—逻辑与
  2. | —逻辑或
  3. !—逻辑非
  4. && —短路与
  5. || —短路或
  6. ^ —逻辑异或

  1. 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
  2. “&”和“&&”的区别:
    单&时,左边无论真假,右边都进行运算;
    双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
  3. “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
  4. 异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
  5. 理解:异或,追求的是“异”!

6. 三元运算符

  1. (条件表达式)?表达式1:表达式2;
    表达式位true,运算后的结果是表达式1;
    表达式为false,运算后的结果是表达式2;
  2. 表达式1和表达式2为同种类型
  3. 三元运算符与if-else的联系和区别:
    1) 三元运算符可简化if-else语句
    2)三元运算符要求必须返回一个结果
    3)if后的代码块可有多个语句

7. 运算符的优先级

  1. 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
  2. 只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
    在这里插入图片描述

八、程序流程控制

1. 顺序结构

	概念:程序从上到下逐行地执行,中间没有任何判断和跳转(Java中定义成员变量时采用合法的前向引用)

2. 分支结构

  1. 概念:根据条件,选择性地执行某段代码
  2. 分类:有if…else和switch两种分支语句
  3. switch后面跟自变量(数据类型必须是非long整数,字符串,枚举)
  4. case后面跟常量
  5. default子句是可任选的,当没有匹配的case时i,执行default
  6. 如果判断的具体数值不多,而且符合byte、short、int、char这四种类型。虽然两个语句都可以使用,建议使用switch。因为效率高
  7. 其他情况:对区别判断,对结果为boolean类型判断,使用if,if的使用过范围更广

3. 循环结构

  1. 循环语句功能:在某些条件满足的情况下,反复执行特定代码的功能
  2. 循环语句的四个组成部分:初始化部分,循环条件部分,循环体部分,迭代部分
  3. 循环次数,右边的值减初始值,如果有=则加1

3.1 do/while循环

[初始化语句]
do{
语句或语句块;
[更改语句;]
}while(布尔值测试表达式);

3.2 while循环

[初始化语句]
while( 布尔值测试表达式){
语句或语句块;
[更改语句;]
}

3.3 for循环

for (初始化表达式①; 布尔值测试表达式②⑤⑦; 更改表达式){
语句或语句块③⑥ ;

3.4 嵌套循环

	将一个循环放在另一个循环体内,就形成了嵌套循环。
	其中,for ,while ,do…while均可以作为外层循环和内层循环
	实质上,嵌套循环就是把内层循环当成外层循环的循环体。
	当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
	设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m * n次。

4. 特殊流程控制语句

  1. break只能用于switch语句和循环语句中。
  2. continue 只能用于循环语句中。
  3. 二者功能类似,但continue是终止本次循环,break是终止本层循环。
  4. break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
  5. 标号语句必须紧接在循环的头部。

4.1 break

  1. break语句用于终止某个语句块的执行
  2. break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块

4.2 continue

  1. continue语句用于跳过某个循环语句块的一次执行
  2. continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

4.3 return

  1. 并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。
  2. 与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

五、Life

	“真正想给你的从来都不会问你要不要”

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值