您的位置:首页 > 职场人生

黑马程序员_java基础学习笔记01_变量,数据类型,运算符

2015-05-21 17:52 1006 查看
------- android培训java培训、期待与您交流!
----------

一 变量

(1)在程序的运行过程中,其值在指定范围内变化的值

(2)是内存中一个区域,用于存储数据

(3)变量的定义格式:

A:数据类型 变量名 = 初始化值;

(4)变量在使用的时候

A:第一种,在声明的时候,就初始化值

数据类型 变量名 = 初始化值;

举例:byte b = 100; System.out.println(b);

B:第二种 在使用前,赋值

声明

赋值

使用

举例 byte b2;

// b2 = 100;

System.out.println(b2);

二 数据类型

(1)java语言分为两种数据类型

A:基本数据类型

B:引用数据类型(类,接口,数组)

(2)基本数据类型

A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同

B:4类8种

整数

byte 占1个字节//8个开关,8个二进制位 1byte = 8bit

short 占2个字节

int 占4个字节0

long 占8个字节 其后加L或l标识

浮点数

float 占4个字节 其后加F或f标识3.3f 2^63

32个二进制位

1位符号位

8位代表指数位

23位尾数位0.9999999

0000000000 - 111111111 0 - 255

double 占8个字节

字符

char 占2个字节

布尔型

这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西.

返回类型为:true,false

C:默认情况下:

整数是int类型

浮点数是double类型

(3)数据参与运算

A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则

容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:

byte,short,char->int->long->float->double

byte 和 short不能和char之间互相转换,byte可以直接赋值给short,但是

他们三者在计算时首先会转换为int类型

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,

但可能造成精度降低或溢出;使用时要格外注意。

有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,

然后再进行计算。

B:强制转换符

格式:(数据类型)(要被转换的数据) byte b = (byte)(300);

C:字符型参与运算

首先会去找对应字符的unicode码值。然后运算。

char 类型取值范围0~2(16)-1,我就有了一个问题?能不能把整数直接赋值给char类型的变量

D:布尔型参与运算char ch = 10;byte b = 10;char ch = '';

不能参与运算

E:字符串参与运算

它是和参与运算的数据相连接组成了一个新的字符串。

三 运算符

(1)算术运算符 +,-,*,/,%,++,--

A:%

当左边的绝对值小于右边:结果是左边

当左边的绝对值等于右边或者是右边倍数的时候:结果是0

当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号

取余的正负号取决于左边,右边忽略不记

用途:任意正整数%2 结果是要么0,要么1。用于切换条件

B:++,--

int a = 3;

int b = a++; //当++在变量的后面,会先从变量中把值取出来,进行运算,赋值,输出

System.out.println(a);

System.out.println(b);

递增,递减运算符。就是加1或者减1

单独存在,放在操作数的前面或者后面,结果一样

参与运算时:

放在操作数的前面,先自身加或者减1,然后再参与运算

放在操作数的后面,先参与运算,然后再自身加或者减1

C:+

作为数据的符号(正号)

做加法运算

字符串连接符"5 + 5 =" + (5 + 5);

(2)赋值运算符

A:=:赋值运算符 把右边的值赋给左边

举例:int x = 3; 把3赋给int类型变量x

int a,b,c;

a = b = c = 5;

B:+=:加赋值运算符 把左边和右边的和赋给左边

举例:int x = 3; x+=2;等同于 x = x + 2;

问个问题 byte b = 5;

b = b + 2;

b += 2; b = (byte)(b + 2);

System.out.println(b);会不会报错?

+=运算符在给b赋值时,自动完成了强转操作。

(3)比较运算符

A:==,!=,>,<,>=,<=

B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

(4)逻辑运算符

逻辑与运算符 &

int x = 10;

x == 5 & x == 20

第一个条件 第二个条件 结果

true truetrue

false true false

true false false

false false false

简单记:左右两边同时为true,结果为true。

逻辑或运算符 |

第一个条件 第二个条件 结果

true true true

false true true

true false true

false false false

简单记:左右两边只要有一个结果是true,结果为true。

逻辑异或运算符 ^

第一个条件 第二个条件 结果

true truefalse

false true true

true false true

false false false

简单记:左右两边相同,结果为false。

逻辑非运算符 !

!true false

!false true

!!true true

短路与:

&:左边无论什么结果,右边都执行。

&&:左边为false,右边不执行,结果为false。

int x = 10;

x > 11 && x < 15

短路或:

|:左边无论什么结果,右边都执行。

||:左边为true,右边不执行,结果为true。

(5)位运算符2<<3 2 * 8 == 2 * 2^3

<<一个整数向左移动几位就乘以2的几次幂

>>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1

>>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0

(6)三元运算符

A :(条件表达式)?表达式1:表达式2;

**如果条件为true,运算后的结果是表达式1;

**如果条件为false,运算后的结果是表达式2;

B:条件运算符运算完之后一定有一个结果

int x,y,z;

x = 5;

y = 10;

z = x > y ? x : y;

if(x > y) {

//z = x;

}else {

//z = y;

}

总结

*记清楚数据类型之间的转换
*知道逻辑运算符如何运算,&和&&,|和||的区别
*必须记清楚类型转换中的损失精度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐