day04_Java基础_数据类型
d04 Java基础(p21-p32)
1.注释
(1)新建一个空项目,进去后再new一个module,重命名之后得到包含src文件的目录。
(2)因为一开始新建的是一个空的项目,所以需要设置项目结构
一定要将上述步骤设置完,因为Java的运行需要配置好环境。
-
单行注释://
- 多行注释 /* 注释 */
- 文档注释 JavaDoc /** 文档注释内容 */
2.标识符和关键字
代码中自动高亮的是Java中的关键字,系统已经预先定义好了,用于区分实现不同具体功能
标识符注意点
3.数据类型讲解
强类型语言:强类型定义语言,要求十分严格,使得代码规范化,安全性高,但是速度会慢
Java、C++定义了某个变量是某种数据类型,不经过转换的话,它就永远是那种类型
--- 数据类型中除了基本类型(整数 -27~27 - 1、浮点数、字符类型、布尔值)外,都是引用类型。
int 对应了Integer这个类 ;byte 对应了Byte这个类。
float类型的后面要加上F, long类型的后面要加上L
--- 什么是字节?
位 是存储数据的最小单位 b
字节 是处理数据的基本单位 B
32位的扩内存只能扩到4GB,64位的可以扩到128GB;二者的寻址能力有很大差别。
4.数据类型及面试题(重要)
1)整数扩展
-- 整数拓展 进制表示问题 使用了前缀来进行区分
-
二进制 0b 0b10 对应十进制的2
-
十进制 正常表示即可 10
-
八进制 0 010 对应十进制的8
-
十六进制 0x 0x10 对应十进制的16
2)浮点数扩展
-- 浮点数拓展 银行业务怎么表示?
此种应用场景下使用float 和 double 是有问题的
float 能表现的字长是有限的 离散的,但是有些除法做完之后结果是无限的,故一般会存在舍入误差
所以结果是一个大约的结果,接近真实值但不等于真实值;所以最好避免浮点数之间的比较
-- BigDecimal 是一个Java写好的数学工具类,专门用于表示银行业务的数据表达
3)字符扩展
强制转化可以将字符变成数字,因为所有的字符本质上还是数字。
char类型数据会涉及到编码问题Unicode
Unicode可以处理各种语言的文字,占用两个字节,最多可以表示65536个字符 0-65536
最早的Excel表格的长度就是2^16=65536
因为Unicode对应了一个编码表,每个不同的字符对应了相应的一个数字,表示范围U0000——UFFFF
4)转义字符
\ 反斜杠表示转义
-
\t t是tab,表示制表符
-
\n 换行
这里需要从内存地址的角度去分析
5)布尔值扩展
布尔值进行判断时,默认是去判断是否为真。
5.类型转换
由于Java是强类型语言,所以进行某些运算的时候,需要用到类型转换
常用数据类型的字节容量从低到高的顺序如下
注意这里的long是64位,float是32位,小数的优先级一定大于整数
运算中,不同类型的数据先转化为同一类型,然后再进行运算。
-
强制类型转换 (高——>低) 工资由高变低员工被强制执行
格式:(类型)变量名
-
自动类型转换 (低——>高) 工资由低变高员工被自愿执行
注意事项:
-- 1.不能对布尔值进行转换:因为布尔值是以 位(bit) 作为单位的,而上述的这些数据类型的单位是字节(byte)
-- 2.不能把对象类型转化为不相关的类型
-- 3.将高容量转化为低容量时,强制转化;反之不需要动
-- 4.转化的过程中可能会存在内存溢出 或者 精度问题(小数)
操作比较大的数的时候,尤其要注意内存溢出问题
- Java中,数字之间可以使用下划线分割,同时这个下划线并不会被输出
6.变量、常量、作用域
1)变量
变量:可以变化的量,用于操作内存中的数据;变量本质还是内存中的一块物理空间,但是该空间中放些什么东西是不确定的,虽然说这个内存的位置是定死的,但其中放些什么未知。电脑中的内存是天然存在的,也就是说物理地址是现实有的,但是我们人为地划分了其中的某些区域(并给它命了名),存放某些东西罢了。
-
Java是强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
-
不建议在一行中定义多个值,会很麻烦!尽量一行只定义一个变量,保持较好的程序可读性。
2)变量作用域
-
类变量:和实例变量差不多,只是多加一个关键字 static,从属于类,随着类一起出现一起消失;为了避免麻烦,暂时可以在类变量前加上static这样方便调用,就不用去new(对象中学)
-
实例变量:在方法外面,类的里面;从属于对象(类),通过这个类,才能去使用这个变量;声明该变量即可,不用初始化,就可以使用
//实例变量:从属于对象;在方法体的外面,在类的里面;直接声明即可不用初始化,不进行初始化时输出的是这个数据类型的默认值 int--0 boolean--false String--null除了基本类型,其余的默认值基本上都是null 空 public class Demo01{ String name; int age; public static void main(String[] args){ //局部变量:必须声明和初始化,可以直接在方法体中使用 int i = 10; System.out.println(i); // new Demo01() new一个Demo01(),相当于拿到了Demo01这个类;然后再返回 // 变量类型就是Demo01,因为除了基本类型,类型也可以是自定义的类型 // 变量名demo01,变量名字有一个值,叫做new Demo01 Demo01 demo01 = new Demo01(); System.out.println(demo01.age);//拿到了Demo01就可以使用它了 } }局部变量:写在方法体里面的,有效期也只在该方法体{ }中,使用之前必须声明和初始化值
-
类中可以定义 方法 属性(就是一种变量)
-
注意事项:
- 每个变量都有类型,可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明都必须以分号结束
3)常量
常量(Constant):初始化后就不能再改变的值,不会变动的量;可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变;常量名一般使用大写字符。关键字final,起到修饰符的作用。
//final 常量名 = 值;
final doouble PI = 3.14;

浙公网安备 33010602011771号