Unit3 Java数据类型 2021-10-25 周一
一、Java标识符?identifiers
- 标识符就是名字。类名、属性名、方法名、变量名。
- 标识符的命名规则:
- 首字符:_、$、字母(大小写都算)
- 其他:_、$、字母、数字(0-9)
- 面试题:以下合法的标识符是哪些?ABCEDJ
A. Test B. String C. True D. _ E. $ F. 12Test G. Hello World J. 学生 - 补充:符合标识符命名规则且不是关键字,就可以当名字。
- 补充:Java标识符长度有要求吗?最少一个字符,长度不限。
- 补充:Java语言可以使用汉字当名字。因为Java语言采用的编码是Unicode编码,一个字符占2个字节,恰好能表示一个汉字。
一个汉字占两个字节。
二、关键字 Keywords
- 被编程语言本身保留的,有特殊含义
- 我们不能用它做标识符
- java关键字全小写
- 面试题:goto和const是不是关键字?是,但不能使用。
- true、false、null不在关键字列表里,是字面量,但也不能当名字。
- 面试题:以下哪些是java语言关键字?DFG
A. For B. System C. String D. false E. NULL F. goto G. const
三、变量
- java中变量的分类:成员变量和局部变量
- 变量:值是可以变的
- 如何区分成员变量和局部变量?看定义的位置
- 成员变量:直接放在类里面,也就是属性。
- 局部变量:定义在方法的内部、形参、游离语句块。
- 局部变量没有默认值,使用时必须明确赋值。
- 当局部变量和属性同名,局部变量使用时会优先使用。
四、数据类型
- java中数据类型分两类
- 基本类型(简单类型)8种
- 引用类型(复合类型)3种
- 为什么编程语言提供多种数据类型?
各种场景下需求不一样。 - 基本类型
- boolean(布尔型),取值:true,false;
在Java种不能使用非0数字和0表示布尔型。
问题:长度多少?(一个字节是8位,二进制的)
boolean长度不确定。
主要用于:条件判断。 - byte(字节型)
- 占内存长度?占一个字节,8位
- 表示十进制数范围: -128 ~ 127
byte age = 150;//错!
- short(短整形)
- 占内存长度?2个字节,16位。
- 表示的十进制数的范围: -32768 ~32767
- int(整型数)
- 占内存长度?4个字节,32位。
- 表示的十进制数的范围:
- 整数常量默认类型是int,如:300、23等
- long(长整型)
- 占内存长度?8个字节,64位。
- 长整型加上L和l都可以,不加也可,但如果数值超出int的最大值了,L是必须的
- char(字符型)
- 长度:2个字节,16位。
- java使用的编码方式是:Unicode(在这种编码里,一个字符是两个字节,也就是16位)
- 表示的数的范围是:0 ~ 65535、字符型数全是正数
- 字符型数的本质是:整型数。A - 65 a - 97
- float(浮点数,小数)
- 长度?4个字节,32位。
- float型数末尾必加F或f。
- double(浮点数,小数)
- 长度?8个字节,64位。
- 常量小数默认类型:double:3.14、90.0等
五、引用类型(复合类型)
共有三种:类、数组、接口
六、基本数据类型转换
- 由低级到高级:自动转换
- 由高级到低级:强制转换
byte -- short -- int -- long -- float -- double
char
double x = 98;//98是int型,相比double是低级类型,自动转换
int y = 9.8;//错!
int y = (int) 9.8;//强制类型转换,会造成精度的损失
//因此不要在财务系统中,银行系统中使用
七、IDEA插件安装方式
- 阿里巴巴代码规范插件
八、面试题
- goto和const是不是关键字?答:是
- 局部变量使用注意什么?答:局部变量的使用必须给它赋值,不然编译不通过
- 局部变量有没有默认值?答:没有,成员变量才有默认值
- java中能否用汉字当变量方法的名字?答:可以但是不推荐使用
- float数据的f或F能不能省去?答:不能省去
- java基本类型的转换规则是什么?答:低级类型转换成高级类型
byte-short-int-long-float-double
char- 简述java的GC机制 GC机制是java的垃圾回收机制,它能把在内存中的对象清除掉
- 能否用System.gc()强迫JVM进行垃圾回收?答:不能
- 内存的逻辑划分是哪些?各存贮什么? 答:栈内存和堆内存 它们分别存贮对象的内容存在的地址,和对象的内容
- 基本类型和引用类型值传递的特点是什么? 答:基本类型传递的是值本身,引用类型传递的是该引用的地址