进制转换、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.三元运算符:该运算符有结果,必须有变量接收结果,否则编译 报错。

int a = 60;
int b = 97;
//求a和b的最大值
int max = a > b ? a : b;
System.out.println("max = " + max);
View Code

 

posted on 2019-04-16 19:31  weixg_p  阅读(179)  评论(0编辑  收藏  举报