Java学习笔记 day2

数据类型

1 基本数据类型

1 byte = 8 bit 计算机最小的存储单位

数值型 byte[1] short[2] int[4] long[8] 存放整数

字符型 char[2] 存放单个字符

必须使用单引号

字符串使用双引号

char的本质是一个整数,在输出时,是unicode码对应的字符

可以对char直接赋值一个整数,输出的是对应字符

Char类型是可以进行运算的,相当于一个整数

字符编码表

ASCII

Unicode

Utf-8

gbk

Gb2312

一个字节表示,一个128字符,实际上也可以表示256个字符

固定大小的编码,使用两个字节表示字符,字母和汉字统一占用两个字节

大小可变的编码,字母使用一个字节,汉字使用三个字节

可以表示汉字,字母使用一个字节,汉字使用两个字节

感觉….不如gbk

浮点型 float[4] double[8]

浮点数 = 符号位 + 指数位 + 尾数位

尾数部分可能损失,造成精度损失

java浮点型常量默认为double型 声明为float常量 后加'f'或'F'

两种表示形式

十进制数形式

5.12

512.0f

.512(必须有小数点)

科学计数法形式

5.12e2 (5.12*10的2次方)

5.12E-2 (5.12/10的2次方)

通常情况应使用double,因为他比float更精确

Num1 = 8.1/3 = 2.69999999…..

Num2 = 2.7

运算结果为小数进行相等判断时,应该以两数的差值的绝对值,在某个精度范围内判断

If(Math.abs(num1-num2) < 0.00000001{Sout 相等}

布尔型 boolean[1] 存放true false

只占一个字节

不可以用0或非0来代替true和false,与C语言不同

基本数据类型转换

当java程序进行赋值或者运算时,精度小的类型自动转化为精度大的数据类型

数据类型按精度(容量)大小排序

Char -> int -> long -> float -> double

Byte -> short -> int -> long -> float -> double

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

Byte short 和 char 之间不会互相自动转换

强制类型转换

使用时加上强制转换符() 会造成精度降低或者溢出

Int I = (int) 1.9;

强转符号只对于最近的操作数有效,往往使用小括号提升优先级

byte和short类型进行运算时,当作int类型处理

基本数据类型和String类型的转换

基本类型转为String类型

将基本类型加 + ""即可

String str1 = n1 + ""

String类型转为基本数据类型

调用parseXX方法

Integer.parseInt("123")

Double.parseDouble("123.1")

……

2 引用数据类型

类 class

接口 interface

数组 []

3 运算符

算术运算符

10 % -3 == 1

-10 % -3 == -1

A % b == a - a / b * b

逻辑运算符

短路与 && 短路或 || 取反!

逻辑与 & 逻辑或 | 逻辑异或 ^

赋值运算符

复合赋值运算符会进行类型转换

三元运算符

条件表达式 ? 表达式1 : 表达式2;

如果条件表达式为True 运算后结果为表达式1

如果条件表达式为False 运算后结果为表达式2

关系运算符

位运算符

4 标识符

自己起名字

5 关键字 保留字(goto,var等不能用!)

6 键盘输入语句

需要一个扫描器(对象)Scanner(Scanner类表示 简单文本扫描器)

导入该类所在的包 java.util.*

创建该类对线(声明变量)

调用里面的功能

7 进制

二进制 0 1 以0b或0B开头

十进制

八进制 以0开头

十六进制 以0x或0X开头 A-F不区分大小写

二进制转十进制

从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和

八进制转十进制

从最低位开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和

十六进制转十进制

从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和

十进制转二进制

除以2直到商为0,倒序输出余数

十进制转八进制

除以8直到商为0,倒序输出余数

十进制转十六进制

除以16直到商为0,倒序输出余数

二进制转八进制

先转十进制,再转八进制

二进制转十六进制

先转十进制,再转十六进制

八进制转二进制

十六进制转二进制

8 原码 反码 补码

二进制的最高位是符号位:0表示正数 1表示负数

正数的原码 反码 补码都一样

负数的反码 == 它原码符号位不变,其他位取反

负数的补码 = 它的反码+1

负数的反码 = 负数的补码 - 1

0的反码,补码都是0

java没有无符号数,即所有的数都是有符号的

计算机运算的时候,都是以补码的方式来运算的

看运算结果时,要看它的原码

9 位运算符

直接进行一个略过

10 控制结构

顺序控制

java中定义变量时采用合法的向前引用

单分支 双分支 多分支

分支控制 if-else:让程序有选择地执行

Switch(){

Case 常量1:执行语句块1; break;

Case 常量2:执行语句块2; break;

Default:default语句块; break;

}

Switch 表达式数据类型,应该和case后面的常量类型一致 或者是可以自动转换成相互比较的类型

default子句是可选的,当没有匹配的case,执行default

break语句用来在执行完一个case分支后使程序跳出switch语句块,如果没有写break,程序会顺序执行到switch末尾

循环控制

Break

Continue

Return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值