Java基础语法
一、数值型的表现形式
1.整型
进制:满几进一,一般默认十进制
进制 | 组成 | 标识 |
---|---|---|
二进制 | 0或1 | 通过0b|0B开头 |
八进制 | 0~7 | 通过0开头 |
十六进制 | 0~9,a,b,c,d,e,f(不区分大小写) | 通过0x|0X开头 |
进制转换:
其他进制转换为十进制:
从右往左,每一位的数值*进制数^次方从0开始,每次+1 ,最后求和就是对应的十进制数据
m进制转换为十进制:
Rn*m(n-1)+Rn-1*m(n-2)+…+R4*m3+R3*m2+R2*m1+R1*m0
Rn表示从右到左的第n个数,m表示该数是几进制数,m^n-1表示m的n-1次幂
十进制转换为其他进制:
以二进制为例:“除2取余,逆序排列”
即:使用当前 的十进制数据,不停的除以要转为的进制数,得到结果为0就不除了,得到最终的余数,从下往上看结果
2.浮点型
大于0小于1的小数,0可以省略 如0.5可以写为.5
科学计数法表示:
e|E-> 10
1.2E3 ->1.2*10^3
1.2E-3 ->1.2/10^3
二、java中的常量
定义:
java程序执行过程中,值不会发生改变的量
自定义常量:
final关键字修饰的变量为常量,注意: 驼峰命名规范
int final a = 10;
字面值常量:
整数常量 : 1 -5 100…
小数常量 : 1.1 -0.5 …
布尔常量 : false true
字符常量 : ‘a’ ‘1’ ‘中’ ’ ’
字符串常量 : " " “abc”
三、数据类型转换:
注意:Boolean类型不参与类型转换。
1.自动类型提升:
即自动转换。byte-short-int-long-float-double(升序)
基本语法:
大范围数据类型 变量 = 小范围类型的数据;
2.强制类型转换:
基本语法:
小范围数据类型 变量 = (小范围数据类型)大范围数据数据;
3.注意:
1.对应类型的数据赋值给对应类型的变量,强制转型发生在赋值之前
2.如果多种数据类型的数据参与运算,最终的结果为参与运算中的最大数据类型
3.如果运算后最大的类型小于int类型,会自动提升成为int
4.如果为byte,short,char类型赋值的时候,只要在其范围内的常量就能成功赋值
四、运算符
1.分类:
算数运算符,赋值运算符,比较(关系)运算符,逻辑运算符,条件运算符,位运算符
或者按照操作数分类:单目(一元)运算符,双目(二元)运算符,三目(三元)运算符
操作数:运算符左右两边的数据
表达式:运算符连接操作数整体称之为表达式
语句:分号(;)代表一个语句的结尾
2.算术运算符(a,b表示两个数)
操作符 | 描述 | 案例 |
---|---|---|
+ | 加法 | a+b |
- | 减法 | a-b |
* | 乘法 | a*b |
/ | 除法 | a/b |
% | 求余数 | a%b |
++ | 自增 | a++,++a |
– | 自减 | a–,--a |
自增自减运算符
相关使用:
只影响自己,不影响其他结果
++放在操作数的前面或者后面,都是自身+1
–放在操作数的前面或者后面,都是自身-1
影响自己,也影响其他结果 (输出,赋值,运算)
++或者–放在操作数的前面,先自身+1|-1,然后再去参与运算
++或者–放在操作数的后面,先再去参与运算,然后自身+1|-1
3.赋值运算符
操作符 | 描述 | 例子 |
---|---|---|
= | 基础赋值运算符 | a=10 |
+= | 扩展赋值运算符,加和赋值操作符 | a+=10等价于a=a+10 |
-= | 加和赋值操作符,减和赋值操作符 | a-=10等价于a=a-10 |
*= | 加和赋值操作符,乘和赋值操作符 | a*=10等价于a=a*10 |
/= | 加和赋值操作符,除和赋值操作符 | a/=10等价于a=a/10 |
%= | 加和赋值操作符,取模和赋值操作符 | a%=10等价于a=a%10 |
推荐使用扩展运算符
优点:1.提高执行效率 (编译期间,编译器会自动编译成扩展赋值运算符)
2.自动做强制类型转换
4.关系赋值运算符
> < >= <= == !=
> < >= <=
byte,short,int,long,char,float,double
== !=
任意类型的数据
关系运算符运算的结果是一个boolean类型的结果
5.逻辑运算符
两边的操作数都为boolean类型->值|表达式
& 与 : 两变都为true结果才为true,一个为false就是false
| 或 : 两边都为false才是false,一个为true就是true
! 非 : 取反 !true->false !false->true
^ 异或 :相同为false,不同为true
短路: 左边的操作数已经能够决定最终的结果,右边的操作数不在执行
&&:短路与
||:短路或
推荐使用短路&& 与 短路||
6.条件运算符
条件表达式 ? 值1 : 值2 ;
条件表达式 : 值为boolean类型的表达式
执行流程:
1.计算条件表达式,得到一个boolean结果
2.如果条件表达式的结果为true,最终的结果为值1
2.如果条件表达式的结果为false,最终的结果为值2
条件运算符最终肯定能够得到一个执行结果,不是值1就是值2
7.优先级
口诀:单目算数位关系,逻辑三目后赋值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rfkzC06K-1622204249062)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\1622203781814.png)]
五、引用数据类型
引用数据类型步骤:
1)导包
指定要使用的引用数据类型的位置
mport 包名.类名;
位置: 类的上面
2)创建引用数据类型的引用
引用数据类型 变量名|引用 = new 引用数据类型();
3)使用功能
引用.功能名字();
1.Scanner输入
Scanner : 接收用户键盘输入的内容
1)导包: import java.util.Scanner;
2)创建一个Scanner类型的引用
Scanner sc = new Scanner(System.in);
3)使用功能
sc.nextInt() 接收用户键盘输入的int类型的数据
sc.nextByte() 接收用户键盘输入的byte类型的数据
sc.nextShort() 接收用户键盘输入的short类型的数据
sc.nextLong() 接收用户键盘输入的long类型的数据
sc.nextDouble() 接收用户键盘输入的double类型的数据
sc.nextFloat() 接收用户键盘输入的float类型的数据 sc.next() 接收用户收入的字符串类型的数据
2.Random随机数
1.导包 import java.util.Random;
2.创建类型的引用 Random ran = new Random();
3.使用功能
ran.nextInt() 生成一个int类型范围内的随机数
ran.nextInt(整数n) 生成一个 [0,n) 之间的随机整数
ran.nextDouble() 生成一个 double 类型的随机小数->[0.0,1.0)
总结公式:
[min,max) 随机整数 ran.nextInt(max-min)+min
ran.nextInt(max)->[0,max)
ran.nextInt(max)+min ->[0,max) + min -> [min,max+min)
ran.nextInt(max-min)+min ->[0,max-min) + min -> [min,max)
[min,max] 随机整数 ran.nextInt(max-min+1)+min