Java笔记(一)变量,数据类型,逻辑运算符

1.java变量

1.在jvm内存中开辟了一块空间,用来存储数据

2.变量使用前:
1)声明/定义: 类型 + 变量
int a;
2)初始化: 第一次赋值
a = 10;
a = 20;//再次赋值

2.类型: 基本数据类型 + 引用数据类型

进制:二进制/十进制/八进制/十六进制 
	超过10 用小写字母小时 a表示10 f表示15
	二进制(符号位):二进制中只能存放数字的0和1
		最高位表示符号位:
			0表示正数,正1表示负数

	原码:符号位0表示正数,正1表示负数,剩下数字位表示数字本身
	反码:正数的反码和原码相同,负数的反码符号位不变,其他位按位取反
	补码:正数的补码和原码相同,反码+1[负数的补码符号位不变,其他位按位取反再+1]

	原码		补码		反码
	正数    正数     正数    正数
	负数    负数     反码+1  符号位不变,其他位按位取反

	补码:1 000 0000
	反码:借位减1 -> 1 1000 0000 -> 1 111 1111
	原码:1 111 1111 -> 1 1000 0000 -> -128

基本数据类型:8种
整型:byte/short/int/long
浮点型:double/float
字符型:char
布尔类型:boolean
返回 true 或 false

-1
原码: 1 000 0001 
反码: 1 111 1110
补码: 1 111 1111

-2:
原码: 1 000 0010
反码: 1 111 1101
补码: 1 111 1110

-3:
原码: 1 000 0011
反码: 1 111 1100
补码: 1 111 1101

-4
原码: 1 000 0100
反码: 1 111 1011
补码: 1 111 1100

最小值推算:

补码:1 000 0000
反码:借位减1 -> 1 1000 0000 -> 1 111 1111
原码:1 111 1111 -> 1 1000 0000 -> -128

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

整型:

整型的默认直面量/直接量是int类型

byte: 1字节 = 8位
byte的最大值: 0 111 1111 -> 2^7-1 = 127
btye的最小值: 1 000 0000 -> 2^7
取值范围: -128 ~ 127
		  -1 ~ -128   0~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
	使用long类型:必须用L/l标记
	long = 0时,格林威治时间的 1970年1月1日 00:00:00

浮点型:

浮点型的默认字面量/直接量就是double
float: 32位
	符号位   指数位    尾数位
	   1      8(^127)   23
	必须使用f/F标记是float类型  
double: 64位
	符号位   指数位    尾数位
	  1       11(^1023) 52

客观存在问题:
	精度缺失,两个浮点型就不能用来判断是否相等

字符型: 32位

取值范围: 0 ~ 2^32-1 = 65535
		'\u0000' ~ '\uffff'
		ASCII码中特殊的值:
			48 = 字符0
			97 = a
			65 = A
			0 = 表示空字符

运算符

1.算数运算符
+ - * \ %(取余)
2.赋值运算符
+= -= *= = =
3.逻辑运算符

& | ! ^ && || 

& &&: 一假即假 -> 只要出现一个结果是false那就是false
| ||: 一真即真 -> 只要出现一个结果是.true那么就是true

&& 表示短路操作:
	一旦出现结果,就不再继续执行下去

4.比较运算符

>= <= == != > <
结果返回的是: boolean类型(要么是ture要么是false)

5.位运算符 -> 二进制的计算有关

&: 0 和 1 &上,全是0
|: 0 和 1 |上,全是1
^: 相同为0,不同为1

6.位移运算符 -> 二进制的计算有关

<<  >>  >>>
>>: 补符号位,符号位是正则补0,符号位是负则补1
>>>: 永远只补0,所以得到的永远都是正数,并且是一个正大数

7.三目(三元)运算符

boolean类型表达式[结果返回ture或false] ?  值1 : 值2
	结果返回ture,则得到结果 值1
	结果返回false,则得到结果 值2
	作用:做比较判断

逻辑控制语句

1.顺序结构

2.条件分支结构

 如果xxx 就xxx : if
 如果xxx 就xxx, 否则 就xxx : if .. else
 如果xxx 就xxx, 否则如果xx 就xx, 否则如果.....否则 if - else if - else if .... - else

 switch() - case:仅适用于判断是否相等的情况int\char\short\byte
 	JDK1.7之后,也支持字符串 String "" ;

3.循环结构

 for: 有规律,或者知道次数
 while(条件): 当...的时候, 就...
    特点: 不确定循环次数
       先随机生成一个1~1000的整数, 用户猜数字[控制台输入]
       打印结果:大了还是小了
 do-while(条件): 做.. 直到...
    在一定程度上,两种循环可以互相替换
    特殊: 在第一次循环条件就不满足的时候
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值