进制转换、Java数据类型、变量、运算符
十进制与其他进制的转换:
十进制:由0-9组成,满十进一。
二进制:由0或1组成,满二进一。
八进制:由0-7组成,满八进一。
十六进制:由0-9、a、b、c、d、e、f,满十六进一
java中的数据类型:
一、基本数据类型:8个。
1.整型:默认类型为int
byte 字节 一个字节 8个比特位 -128 ~ 127
short 短整型 2个字节 16位 -2(15) ~ 2(15)-1
int 默认整型 4个字节 32位 -2(31) ~ 2(31)-1
long 长整型 8个字节 64位 -2(63) ~ 2(63)-1
2.浮点型:默认类型double
float 4个字节 单精度 有效数字7~8位
double 8个字节 双精度 有效数字15~16位
3.字符型:
char 2个字节
' '来进行标识,单个的英文字母、中文、数字、符号等。
'中' '1'
Unicode编码 0~65535
由于计算机无法直接存储字符,使用Unicode编码,
存储字符在Unicode编码中对应的编号。
'a'--->97
'A'--->65
4.布尔型:
boolean 只有两个值:true(真、对)、false(假、错)
二、引用数据类型:4种,无数个。
类、
类有无数个,我们今天只讲其中的一个:String
String:字符串。需要使用""进行标识。
数组、
接口、
枚举
Java中有几种数据类型?
两种。基本数据类型和引用数据类型。
Java中有几个基本数据类型?
8个,分别是 byte、short、int、long、float、double、boolean、char
定义变量:
1.声明:
数据类型 变量名;
byte b;
2.赋值:
变量名 = 值;
b = 50;
通常: 数据类型 变量名 = 值;
byte b2 = 90;
注意:
1>我们目前定义在主函数中的变量都为局部变量。
2>不可以重复命名,无论数据类型。
3>局部变量必须初始化。(赋初始值)
4>使用long类型的时候,如果该整型的值大于int的取值范围,需要
在整数值后加L或l,来声明该整型为长整型。
5>使用float类型的时候,需要在浮点型值后加F或f,来声明该浮点型
为单精度浮点型。
6>类型的自动提升:
byte、short、char 在进行运算的时候会自动提升int类型
byte、short、char--->int ---> long ----> float ---->double
7>类型的强制转换:
小类型 变量名 = (小类型)大类型值;
类型的强制转换存在风险,谨慎使用。
运算符:
1.算术运算符:byte、short、char在进行运算的时候会自动提升int类型
小类型与大类型进行运算,结果为大类型。
+:
1>进行加法运算
2>拼接字符串
-:减法运算
*:乘法运算
/:除法运算
%:模,取余。 结果与被模数(前面的)符号相同。
++:自增,自己增加1
++可以写在前面,也可以写在后面。
区别:
1>写在后面,先进行其他运算,后自增。
2>写在前面,先自增,后进行其他运算。
--:自减,自己减1
--可以写在前面,也可以写在后面。
区别:
1>写在后面,先进行其他运算,后自减。
2>写在前面,先自减,后进行其他运算。
2.赋值运算符
类型的隐式转换功能
=:从右边赋值给左边
+=: x += 3 ---> x = x + 3
short s1 = 10; s1 += 6; // s1 = s1 + 6; 类型的隐式转换功能 //s1 = (short)(s1 + 6); -=: x -= 3 ---> x = x - 3 *=: x *= 3 ---> x = x * 3 /=: x /= 3 ---> x = x / 3 %=: x %= 3 ---> x = x % 3
3.比较运算符:结果为布尔值
==:比较等号两边是否相等。
==比较的是符号两边的地址是否相同。
八个基本数据类型可以使用==比较内容是否相同。
String 不可以使用==比较内容是否相同。
String s1 = "abc";
String s2 = "abc";
s1.equals(s2)--->结果为boolean
!= :不等于,与== 结果相反
> :大于
< :小于
>= :大于等于
<= :小于等于
4.逻辑运算符
------------------------------------------------------------------------
1>与 且 &、&& 都为真,结果才为真,否则为假
&和&&的区别:
1)&不仅是逻辑运算符,还是位运算符。&&只是逻辑运算符。
2)&&具有短路效应,而&没有。
&&效率高,使用&&
2>或 |、|| 只要有一个为真,结果就为真,否则为假。
|和||的区别:
1)|不仅是逻辑运算符,还是位运算符。||只是逻辑运算符。
2)||具有短路效应,|没有。
||效率高,使用||
------------------------------------------------------------------------
3>非,! 取对立面。
4>异或 ^ 相同为假,不同为真。
true ^ true--->false false ^ false ---> false true ^ false ---> true
5.位运算符:需要转换为二进制进行运算。 byte、short、char会
自动提升为int进行计算。
1>移位运算符
>> 右移 :
一个数无符号右移n位,相当于该数除以2的n次幂。
10 >> 3 a >> b --->a向右移动b位
0000-0000 0000-0000 0000-0000 0000-1010
0000000-0000 0000-0000 0000-0000 0000-1 --->1
10/2(3)
<< 左移:
一个数左移n位,相当于该数乘以2的n次幂。
10<<1
0000-0000 0000-0000 0000-0000 0000-1010
000-0000 0000-0000 0000-0000 0000-10100 ---> 20
>>> 无符号右移:
8>>>2
0000-0000 0000-0000 0000-0000 0000-1000
000000-0000 0000-0000 0000-0000 0000-10
-8>>>2
1000-0000 0000-0000 0000-0000 0000-1000
001000-0000 0000-0000 0000-0000 0000-10
2>逻辑位运算符
1)& 都为1结果才为1,否则为0
10&8
1010 -->10
1000 -->8
1000 -------->8
2)| 只要有一个为1结果为1,否则为0
10|9
1010
1001
1011---->11
3)^ 相同为0,不同为1
10^9
1010
1001
0011 --->3
3>取反 ~
相当于取该数字的相反数-1
如:
~7 --->取7的相反数-1===>-7-1=-8
~-7 ===>7-1=6
6.三元运算符:该运算符有结果,必须有变量接收结果,否则编译 报错。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
int a = 60; int b = 97; //求a和b的最大值 int max = a > b ? a : b; System.out.println("max = " + max);