java基本概念和语法
语法
与自然语言相似,编程语言也有自己的类似字、词、句的语法
- 字母-符号
- 单词-标识符
- 语句-指令语句
- 文章-整个程序
学习编程语言就是学习
- 编程语言中的字符
- 字符组成的词,也就是关键字
- 完整程序的程序结构
- 利用写好的工具类、工具库
标识符
标识符分为两大类:
- 语言内置(关键字)
- 开发者自定义
标识符:帮助识别的符号,要遵循一些规则
规则:
-
软性要求(行业约束)
- 变量(容器)名字见名知意
- 驼峰命名(topBox)
- 蛇形命名(top_box),css里叫BEM命名法
- 首字母大写 帕斯卡命名法(Java常用)
- 不应该改变的量或不能改变的量,叫做常量,名字全大写
MAIN - 方法(函数)取名,从函数名能够知道其功能
-
硬性要求
- 不能是关键字、保留字
- 包含数字、字母、下划线、美元符
- 数字不可作为开头
- 严格区分大小写
关键字
关键字:Java语言内置好的,有自己含义的单词,不可修改
注:类名可自定义,首字母大写。主函数main不可自定义
注释
注释分三类
- 单行注释(//)
- 多行注释(/* */)
- 文档注释(/** */)
数据类型
计算机存储单位:
- 位(计算机最小存储单位),只能存储0或1
- 字节(8位等于1字节)
- KB 1KB=1024字节
- MB 1MB=1024KB
- GB 1GB=1024MB
- TB 1TB=1024GB
| 单位 | 换算 |
|---|---|
| bit | |
| Byte | 1Byte=8bit |
| Kb | 1KB=1024Byte |
| Mb | 1MB=1024KB |
| Gb | 1GB=1024MB |
| Tb | 1TB=1024GB |
数据类型分类:
-
基本数据类型(Java里有4类8种)
- 整型
- 浮点型
- 字符型,区分字符和字符串,字符是一个字
abc,字符串是ab - 布尔型(对错,TRUE或FALSE)
-
引用数据类型
基本数据类型
整型
| 类型 | 关键字 | 字节(空间) | 范围 |
|---|---|---|---|
| 字节 | Byte | 1 | -2^7-2^7-1 |
| 整型 | int(常用) | 2 | -2^15-2^15-1 |
| 短整型 | short | 4 | -2^31-2^31-1 |
| 长整型 | long | 8 | -2^63-2^63-1 |
存储字节数并不是越大越好,适合自己的项目去分配合理的空间
浮点型(小数)
| 类型 | 关键字 | 空间(字节) |
|---|---|---|
| 单精度浮点数 | float | 4 |
| 双精度浮点数 | double(默认) | 8 |
因为小数保存在计算机中都是转为二进制,存在除不尽的情况,所以天生存在一些精度问题
字符型
注意:区分字符和字符串
| 类型 | 关键字 | 空间(字节) |
|---|---|---|
| 字符 | char | 2 |
键盘上字母、标点,所有按键都在字符编码表上ASCII码(美国标准信息交换码)
重要:A对应数字为65,a对应数字为97
布尔型
布尔型只有一种,取值有两个
| 类型 | 关键字 |
|---|---|
| 布尔型boolean | true(真) |
| 布尔型boolean | false(假) |
引用数据类型
十进制 二进制转换
十进制转二进制: 采用除2取余,逆序排列
二进制转十进制: 将一个二进制数字每一位取出设置位权(从0开始),每位数字乘以2的位权次方,求和得到对应的十进制
变量
有了数据类型就能将各种类型的数据放进到容器(变量),使用声明指令让计算机在内存里开辟一块空间去存数据
变量允许被修改,常量(名字全大写)不可修改
语法:
//语法:数据类型 变量名称;
// 第一种写法 先声明 告诉计算机开辟 4个字节的空间 未来会去存放数据
int number;
// 再赋值 将数据 3 放进变量number中
number=3;
//第二种写法 声明后立马赋值
int number = 3;
- 声明后赋值称为变量的初始化
- 赋给变量的值必须跟数据类型匹配
- 变量未赋值时不允许使用
- 作用域,变量所能生效的范围
常量
常量分两类:
- 字面常量
- 符号常量
通过关键字final来定义常量,例:final double PI = 3.14;常量不可被修改
将业务含义带入常量值中,使用时即好识别,又不会改错,未来修改时就可一处改处处变
(之前版本中声明常量立马就要赋值)
运算符
分类:
- 算术运算符 +、 -、 *、 /、 取余%(读作模)
- 赋值运算符 += -= = * /
- 关系比较运算符 >、 <、 >=、 <=、 ==(相等) 、 !=(不等)
- 三目运算符(判断)
- 逻辑运算符 [与
&&或||非!]
算术运算符
int a = 5;
int b = 6;
int sum = a+b;
注意:/除法是得到商,%取余是得到余数
运算过程中可能存在类型提升,整数+小数 会得到小数类型,小数有精度问题
例:
int a = 3;
double b = 3.14
double sum = a+b
赋值运算符
+=、- =、=、*、/=
例:
int a = 5;
int b = 6;
a += b; //意思是a=a+b,a+b的和重新赋值给了a
i++; //在i的基础之上 +1 ,i = i+1;同理i--就是在i的基础上 -1 ,i = i-1
区别:i++ 和 ++i
//先使用值后加减,a++是先使用a的值进行加减得到最终结果
int a = 5;
int sum = a++ +10; //sum = a +10;
System.out.print("sum");//值为15
//自身自增后进行加减,++a是先让a自身加1后再进行加减得到最终值
int a = 5;
int sum = ++a +10; // sum = a+1 + 10;
System.out.print("sum");//值为16
//综合运用
int a = 10;
int b = a++; // b 先拿到的是当前a=10的值
System.out.print("a:" +a); //a自身在增加,11
System.out.print("a:" +b);//10
int a = 10;
int b = ++a; //b 先拿到的是a自增1后的值,此时b=a+1=10+1
System.out.print("a:" +a); //11
System.out.print("a:" +b); //11
关系(比较)运算符
关系比较运算符 >、 <、 >=、 <=、 ==(相等) 、 !=(不等)
例:5>6 错 得到的是一个bollean类型的结果(TRUE或FALSE)
//数学
4<5<6
// 不能像数学写连续比较,可以通过一些逻辑运算符做连接 && 读作 并且
4<5 && 5<6 //得到的值是boolean类型
三目运算符
语法
表达式1 ? 表达式2 : 表达式3;
//例
int age = 20;
boolean result = age >18 ? true:false; //拿age的值与18比较,20>18吗?为真执行表达式2,为假执行表达式3,即把表达式2 或 表达式3 的值赋给result
System.out.print(result);
逻辑运算符
&&与 ||或 !非,&位与|位或
- &&:同时满足
- ||:n选
- !:取反,假的变为真的,真的变为假的
int i = 10,j = 15;
boolean result =i>20 && (j = 20)>15;
System.out.print("result:" +result);
System.out.print("j:" +j);
&&存在短路运算符,表达式1&& 表达式2,当表达式为1已经为假时,则不会再判断表达式2,直接整体为假
||也是短路运算符,n选1,选中了一个就不会再去判断后面的表达式,如果为假则全部为假
"一真全真,一假全假" 一真全真:||,一假全假:&&
\