一.Java中常量的含义:在程序执行过程中不发生改变的量称为常量。
二.常量的分类
字面值常量 | 自定义常量 |
字符串常量(使用双引号包裹起来的内 容:称为"字符串常量" 举例: "HelloWorld") | 关键字 |
字符常量(使用单引号包裹起来的内容 例:'a','A','0', '我', 'abc' 非法数据(只能单引号括起 来的单个内容) | final |
整数常量(100 , 包含"进制" 整数---- 默认十进制) | 状态修饰符 |
小数常量(3.14,12.56) | |
布尔常量(true,false) | |
空常量(null) |
三.Java中变量的含义:在程序执行过程中,其值发生改变的量。
四.变量的三要素:
数据类型
变量名称
初始化值
五.数据类型 :在Java中,数据类型分为两大类型:
基本数据类型:
整数类型:byte (字节型)——占1个字节
short (短整型)——占2个字节
int (默认整数类型)——占4个字节
long (长整型)——占8个字节
浮点类型:float (单精度浮点)——占4个字节
double (双精度浮点)——占8个字节
字符类型:char (单引号括起来的内容)——占2个字节
布尔类型:boolean (不会参与类型转换:仅仅表示真,假)——占1个字节
引用数据类型:数组,类,接口
**************************************************************************************************************
注意:字符串 + 任何数据 ="新的字符串"
六.定义变量的注意事项:
(1)在java语言(强类型语言:语法结构很严谨)中,同一个变量不能重复定义
(javascript语言:弱类型语言:可以去重复定义变量)
(2)一行就写一个变量, 一行结束之后分号;(代码规范风格)
(3)一行也可以定义多个变量(在面试题/笔试题中)
(4)变量要么直接初始化,要么先定义,但是必须在使用之前对其进行初始化
_____________________________________________________________________________七.变量要进行运算,必须保证数据类型一致
byte b = 3 ; int a = 4 ;
a和b进行求和?
boolean类型不参与类型转换
在Java中有一个隐式类型转换:byte,short,char三者之间不进行相互转换,但是参与运算,优先转换为int类型(考点),long,float----double类型
class YinShiZhuanHuan{ public static void main(String[] args){ //定义了两个变量 int a = 4 ; byte b = 3 ; //定义变量c接受结果 int c = a + b ; //先将b--->提升为int 类型的3 System.out.println("c:"+c) ; } }
**************************************************************************************************************八.Java中的显示转换(强制类型转换:强转),不仅适用于基本类型,以后引用数据类型也会使用
格式:目标数据类型 变量名 = (目标数据类型)(初始化/表达式) ;
强转类型转换在应用场景:
没有明确要求,尽量不用,因为可能损失精度
例如:byte b = 3 ;
int a = 4 ; a和b进行求和? 考虑结果类型? byte
byte c = a +b ;
class QiangZhuan{ public static void main(String[] args){ //定义两个变量 int a = 4 ; byte b = 3 ; //定义接受的结果类型 //byte result = a + b ; // b--> byte,----先提升int参与运算 //结果为int类型的7 :4个字节 //接受的类型:byte类型:占1个字节 //目标数据类型 变量名 = (目标数据类型)(初始化/表达式) ; byte result = (byte)(a+b) ; System.out.println("result:"+result) ; //byte类型的7 } }
--------------------------------------------------------------------------------------------------------------------------------j九.面试题
考点:
(1)java的隐式类型转换以及强转格式
(2)常量相加和变量相加的区别
定义三个变量
byte b ,b1 = 3 , b2 = 4 ; 1)b = b1 + b2 ; 2)b = 3 + 4 ;
当前1),2)哪一句编译失败?哪一句可以成功编译!失败的原因是什么?如何解决
答:
(1)第一句话会编译失败:原因就是存在隐式类型提升
b1和b2 (变量相加,需要考虑类型提升,然后再参与运算)先分别提升int
b1+b2的结果是int类型的7
b :byte类型 :必须强转类型转换
2)不会有问题:
b = 3 + 4 ;常量相加,先相加,然后看其结果为7,看是否在当前类型范围内
byte类型的取值范围:-128~127,在范围内,所以不会有问题。