常量
-
在Java语言中,利用final关键字来定义常量,其本质就是值不可再更改的变量。
-
常量在声明的时候,要么直接赋值,要么通过构造方法赋值
-
常量在程序中将无法再次赋值,如果强行赋值,程序将会抛出错误信息,并拒绝接收新值
-
常量命名时,名称建议全大写
例如: final double PI = 3.14159;
数据类型和字面值
========
数据类型
数据类型分为基本数据类型和引用数据类型。
![](https://img-blog.csdnimg.cn/20210725181436764.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTE2MTExNQ==,size_16,c
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
olor_FFFFFF,t_70)
基本数据类型的表示范围
基本数据类型的表示范围如下:(转自慕课网)
字面值
(1)整型字面值——>Java中表示整数的方法:二进制、八进制、十进制、十六进制
二进制:以0和1组成 3表示为011 8表示为1000
八进制:以0开头,包括0——7的数字
十六进制:以0x开头或0X开头,包括0——9的数字,及字母a——f,A——F
(2)浮点型字面值
-
浮点型字面值默认情况下是double类型(双精度浮点型字面值),也可以在值后面加d或D
-
如:123.45、123.45d、123.45D
-
如果表示float类型(单精度浮点型字面值),则需要在字面值后面加f或F
-
如:23.4f、23.4F
(3)字符型字面值
-
字符型字面值用单引号内的单个字符表示
-
如:‘a’、‘b’、‘$’
如何定义字符型变量?
char a = ‘a’; //输出结果为:a=a
char b = 65 //输出结果为:b=A
字符型变量为什么可以赋值整数呢?
整数代表的是ASCII码(美国标准信息交换码),而65在ASCII码中表示为‘A’
拓展:Unicode编码
char c = ‘\u005d’; //005d表示16进制
Unicode表示法,在前面加前缀\u
(4)布尔类型字面值
布尔类型只能定义为true和false
例如: boolean flag = true;
(5)字符串字面值
-
双引号引起来的0个或多个字符
-
0字符称为空字符串
变量综合案例
//变量综合案例
public class VarDemo {
public static void main(String [] args){
//定义两个整型变量
int a,b;
//直接将变量输出会报错:The local variable a may not have been initialized
//注意:变量在声明的时候如果没有进行赋值是不可以直接输出的
//System.out.println(“a=”+a+",b="+b);
a = 3;
b = 5;//对两个变量进行赋值(变量的初始化)
System.out.println(“a=”+a);
System.out.println(“b=”+b);
//关于换行的问题
//如果不想换行,想在同一行输出,可以不加ln
System.out.print(“a=”+a);
System.out.print(“b=”+b);
//换行也可以使用换行符来完成换行 换行符 \n
System.out.print(“a=”+a+"\n"+“b=”+b);
//定义一个汉字的字符
char ch = ‘中’;
System.out.println(“ch=”+ch);
//char 中文 = ‘中’;变量名也可以是中文但是不建议使用该方式
//定义浮点型数据
double d1 = 123;//浮点型可以赋值整数
//double类型的变量值可以加d或D,也可以不加
double d2 = 123.45;
double d3 = 123.45d;
double d4 = 123.45D;
//float f = 123.45;float类型的变量值如果是小数后必须加f或F,因为小数默认情况下是double类型
float f1 = 123;
float f2 = 123.45f;
float f3 = 123.45F;
//科学计数法表示浮点型数据
double num1 = 1.23e5;//表示1.23*10^5 , 可以使用e或E表示
double num2 = .2;//表示0.2
double num3 = 1.23e-5;//表示1.23*10^-5
}
}
数据类型转换
======
数据类型转换分为自动类型转换和强制类型转换。
自动类型转换
自动类型转换又称为隐式类型转换。
转换顺序:
强制类型转换
如果A类型的数据表示范围比B类型数据表示范围大,则将A类型的值赋值给B类型,需要进行强制类型转换。
如:
double d = 123.4;
float f = (float)d;
强制类型转换的格式:(数据类型)数值
类型转换案例
//类型转换案例
public class TypeExchange {
public static void main(String [] args){
//char类型和int类型之间的转换
//char ch = 65536;char类型的范围是0——65535,如果将65536赋值给ch会超出范围,需要进行强制类型转换
char ch = (char)65536;
//该类型转换方式为自动类型转换(隐式类型转换)
int n = ch;//int类型的数据表示范围比char类型的数据表示范围大,可以直接将ch赋值给n
//整型和浮点型之间的转换
int x = 100;
long y = x;//int类型的表示范围小于long类型,可以直接将x赋值给y
x =(int)y;//long类型的表示范围大于int类型,赋值需要进行强制类型转换
float f = 1000000000L;//long类型表示范围小于float类型,可以直接将long类型的数据赋值给f
System.out.println(“f=”+f);//结果为1.0E9