目录
1整型类型变量
1.1基础语法格式
1.2实例代码
1.3注意事项
2 长整型变量
2.1基础语法格式
2.2 实例代码
2.3 注意事项
3 双精度浮点型变量
3.1基础语法格式
3.2实例代码
3.3 注意事项
4 单精度浮点型变量
4.1基础语法格式
4.2实例代码
4.3注意事项
5 字符类型变量
5.1基础语法形式
5.2实例代码
5.3注意事项
6 字节类型变量
6.1基础语法格式
6.2 实例代码
6.3 注意事项
7 短整型变量
7.1基础语法格式
7.2实例代码
7.3注意事项
8 布尔类型变量
8.1 基础语法格式
8.2 实例代码
8.3 注意事项
9 字符串类型变量
9.1基础语法格式
9.2 实例代码
9.3 注意事项
10 变量的作用域
11 变量的命名规范
12 常量
12.1字面值常量
12.2final修饰的常量
13数据类型转换
13.1 int和double,long之间的装换
13.2int和boolean之间的转换
13.3int和byte之间的转换
13.4强制类型转换
13.5类型转换小结
14 数值提升
14.1 int和long混合运算
14.2byte和byte的运算
14.3类型提升小结
1 整型类型变量
1.1 基础语法格式
int +变量名=初始值;
1.2 实例代码
public static void main(String[] args) {
int a=10;
}
1.3 注意事项
int +变量名=初始值;
1.2 实例代码
public static void main(String[] args) {
int a=10;
}
1.3 注意事项
java中int类型的变量占4个字节大小,有操作系统无关。
int类型的变量只能赋值整型的数据,不能赋值浮点型的数据。
int类型的范围是-2^32~2^32-1。若赋值超过这个范围就会报错
int类型的范围代码演示
public static void main(String[] args) {
int a=10;
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
2 长整型变量
2.1 基础语法格式
long+变量名=初始值
2.2 实例代码
public static void main(String[] args) {
long a=10000L;
}
2.3 注意事项
long+变量名=初始值
2.2 实例代码
public static void main(String[] args) {
long a=10000L;
}
2.3 注意事项
初始时使用数字加上L(l)的方式,一般都使用L,因为l在视觉上容易于1混淆
初始时可以使用整型直接赋值的,但是数字较大的时候就会出现类型不匹配的错误。
Java 中 long 类型占 8 个字节. 表示的数据范围 -2^63 -> 2^63-1
long范围代码演示
public static void main(String[] args) {
long a=10000;
System.out.println(Long.MAX_VALUE);//最大值
System.out.println(Long.MIN_VALUE);//最小值
}
3 双精度浮点型变量
3.1 基础语法格式
double+变量名=初始值
3.2 实例代码
public static void main(String[] args) {
double d=10.7;
}
3.3 注意事项
3.1 基础语法格式
double+变量名=初始值
3.2 实例代码
public static void main(String[] args) {
double d=10.7;
}
3.3 注意事项
double+变量名=初始值
public static void main(String[] args) {
double d=10.7;
}
3.3 注意事项
Java中double类型的数据存在一定的进度误差
例如
public static void main(String[] args) {
double d1=1.1;
System.out.println(d1*d1);
}
这里的运行结果出现了精度的误差。
double 占有8个字节
4 单精度浮点型变量
4.1 基础语法格式
float+变量名=初始值;
4.2 实例代码
public static void main(String[] args) {
float f1=10.3f;
System.out.println(f1);
}
4.3 注意事项
float+变量名=初始值;
4.2 实例代码
public static void main(String[] args) {
float f1=10.3f;
System.out.println(f1);
}
4.3 注意事项
初始化时要在数据的后面加上F或者f,不能直接使用小数进行赋值。
例如
这样书写就是错误的,因为,float占4个字节。f2是float类型的变量,10.3是double类型的变量,
double类型的变量占8个字节,所以赋值时会出现类型不匹配的错误
5 字符类型变量
5.1 基础语法形式
char+变量名=初始值;
5.2 实例代码
public static void main(String[] args) {
char ch ='a';
System.out.println(ch);
}
5.3 注意事项
char+变量名=初始值;
5.2 实例代码
public static void main(String[] args) {
char ch ='a';
System.out.println(ch);
}
5.3 注意事项
Java中用‘’+一个字符的形式表示字符
Java中使用 Unicode 表示字符,因此Java中char占有两个字节,表示的范围更大,包括中文。
6 字节类型变量
6.1 基础语法格式
byte+变量名=初始值;
6.2 实例代码
public static void main(String[] args) {
byte b=10;
System.out.println(b);
}
6.3 注意事项
byte+变量名=初始值;
6.2 实例代码
public static void main(String[] args) {
byte b=10;
System.out.println(b);
}
6.3 注意事项
字节类型表示的也是整数,只占有一个字节。
字节类型和字符类型互不相干。
7 短整型变量
7.1 基础语法格式
short+变量名=初始值;
7.2 实例代码
public static void main(String[] args) {
short s=10;
System.out.println(s);
}
7.3 注意事项
1. short
占用
2
个字节
,
表示的数据范围是
-
32768
-
> +32767
2 这个数据类型表示的范围比较小,一般不推荐使用。、
8 布尔类型变量
8.1 基础语法格式
boolean+变量名=初始值;
8.2 实例代码
public static void main(String[] args) {
boolean bl=true;
System.out.println(bl);
}
8.3 注意事项
short+变量名=初始值;
7.2 实例代码
public static void main(String[] args) {
short s=10;
System.out.println(s);
}
7.3 注意事项
1. short
占用
2
个字节
,
表示的数据范围是
-
32768
-
> +32767
2 这个数据类型表示的范围比较小,一般不推荐使用。、
8 布尔类型变量
8.1 基础语法格式
boolean+变量名=初始值;
8.2 实例代码
public static void main(String[] args) {
boolean bl=true;
System.out.println(bl);
}
8.3 注意事项
8 布尔类型变量
8.1 基础语法格式
boolean+变量名=初始值;
8.2 实例代码
public static void main(String[] args) {
boolean bl=true;
System.out.println(bl);
}
8.3 注意事项
boolean+变量名=初始值;
8.2 实例代码
public static void main(String[] args) {
boolean bl=true;
System.out.println(bl);
}
8.3 注意事项
boolean只有两种取值ture表示真和false表示假。
Java中boolean于int没有任何关系,不存在0表示假,非0表示真。
boolean所占字节的大小没有明确规定。
9 字符串类型变量
9.1 基础语法格式
String+变量名=初始值;
9.2 实例代码
public static void main(String[] args) {
String str="hello world";
System.out.println(str);
}
9.3 注意事项
1. Java
使用
双引号
+
若干字符
的方式表示字符串字面值
.
2.
和上面的类型不同
, String
不是基本类型
,
而是
引用类型
(
后面重点解释
).
3.
字符串中的一些特定的不太方便直接表示的字符需要进行转义
.
转义字符示例
// 创建一个字符串 My name is "张三"
String name = "My name is "张三"";
String+变量名=初始值;
9.2 实例代码
public static void main(String[] args) {
String str="hello world";
System.out.println(str);
}
9.3 注意事项
1. Java
使用
双引号
+
若干字符
的方式表示字符串字面值
.
2.
和上面的类型不同
, String
不是基本类型
,
而是
引用类型
(
后面重点解释
).
3.
字符串中的一些特定的不太方便直接表示的字符需要进行转义
.
转义字符示例
// 创建一个字符串 My name is "张三"
String name = "My name is "张三"";
// 创建一个字符串 My name is "张三" String name = "My name is "张三"";
Java中的常见转义字符
字符串的+拼接符
例如:
public static void main(String[] args) {
String str1="Hello ";
String str2="World";
System.out.println(str1+str2);//拼接成新的字符串“Hello World”;
}
字符串也可以和整数进行拼接
字符串和整数进行拼接时就是:当整数遇到字符串就会作为字符串拼接在一起。
例如:
public static void main(String[] args) {
String str1="Hello ";
String str2="World";
int a=10;
int b=20;
System.out.println(str1+str2+a+b);//拼接成新的字符串“Hello World1020”;
}
10 变量的作用域
也就是该变量能生效的范围
,
一般是变量定义所在的代码块
(
大括号
)
例如:
public static void main(String[] args) {
{
int x = 10;
System.out.println(x); // 编译通过;
}
System.out.println(x);// 编译失败,找不到x
}
11 变量的命名规范
硬性指标
:
1.
一个变量名只能包含数字
,
字母
,
下划线
2.
数字不能开头
.
3.
变量名是大小写敏感的
.
即
num
和
Num
是两个不同的变量
.
注意
:
虽然语法上也允许使用中文
/
美元符
($)
命名变量
,
但是
强烈
不推荐这样做
.
软性指标
:
1.
变量命名要具有描述性
,
见名知意
.
2.
变量名不宜使用拼音
(
但是不绝对
).
3.
变量名的词性推荐使用名词
.
4.
变量命名推荐
小驼峰命名法
,
当一个变量名由多个单词构成的时候
,
除了第一个单词之外
,
其他单词首字母都大写。
小驼峰命名法示例
int maxValue = 100;
String studentName ="张三";
12 常量
int maxValue = 100; String studentName ="张三";
12 常量
上面讨论的是不同类型的变量,同样每种类型都对应这它们的常量
常量是指在程序运行的过程中不能改变的值
常量有以下两种:
12.1 字面值常量
10 // int
字面值常量
(
十进制
)
010 // int
字面值常量
(
八进制
)
由数字
0
开头
. 010
也就是十进制的
8
0x10 // int
字面值常量
(
十六进制
)
由数字
0x
开头
. 0x10
也就是十进制的
16
10L // long
字面值常量
.
也可以写作
10l (
小写的
L)
1.0 // double
字面值常量
.
也可以写作
1.0d
或者
1.0D
1.5e2 // double
字面值常量
.
科学计数法表示
.
相当于
1.5 * 10^2
1.0f // float
字面值常量
,
也可以写作
1.0F
true // boolen
字面值常量
,
同样的还有
false
'a' // char
字面值常量
,
单引号中只能有一个字符
"abc" // String
字面值常量
,
双引号中可以有多个字符
.
12.2 final修饰的常量
final int a = 10;
a = 20; //编译出错,a此时是常量,程序运行过程中不能被修改
13 数据类型转换
final int a = 10; a = 20; //编译出错,a此时是常量,程序运行过程中不能被修改
13 数据类型转换
java是强类型的语言,对不同类型的装换检查比较严格。
13.1 int和double,long之间的装换
public class TestDom {
public static void main(String[] args) {
int a=10;
double b=10.0;
long c=20;
a=b;//编译失败,浮点型赋值给整型会导致精度丢失。
b=a;//编译通过
a=c;//编译失败,长整型赋值给整型会导致精度丢失。
c=a;//编译通过
}
double表示的范围更大,可以将int赋值给double,但是不能将double赋值给int
long表示的范围更大,可以将int赋值给long,但是不能将long赋值给int
结论 : 不同数字类型的变量之间赋值 , 表示范围更小的类型能隐式转换成范围较大的类型 , 反之则不行 .13.2 int和boolean之间的转换
public static void main(String[] args) {
int a = 10;
boolean b = true;
b = a; // 编译出错, 提示不兼容的类型
a = b; // 编译出错, 提示不兼容的类型
}
结论
:
int
和
boolean
是毫不相干的两种类型
,
不能相互赋值
.
13.3 int和byte之间的转换
public static void main(String[] args) {
byte a=100;//编译通过
byte b=256;//编译失败,从int转换为byte可能会导致数据丢失
}
public static void main(String[] args) {
byte a=100;//编译通过
byte b=256;//编译失败,从int转换为byte可能会导致数据丢失
}
byte 表示的数据范围是 -128 -> +127, 256 已经超过范围, 而 100 还在范围之内
结论: 使用字面值常量赋值的时候, Java 会自动进行一些检查校验, 判定赋值是否合理
13.4 强制类型转换
public static void main(String[] args) {
int a = 0;
double b = 10.5;
a = (int)b;//编译通过
}
结论
:
使用
(
类型
)
的方式可以将
double
类型强制转成
int.
但是
1.
强制类型转换可能会导致精度丢失
.
如刚才的例子中
,
赋值之后
, 10.5
就变成
10
了
,
小数点后面的部分被忽略
.
2.
强制类型转换不是一定能成功
,
互不相干的类型之间无法强转,例如:int和boolean
13.5 类型转换小结
1.
不同数字类型的变量之间赋值
,
表示范围更小的类型能隐式转换成范围较大的类型
.
2.
如果需要把范围大的类型赋值给范围小的
,
需要强制类型转换
,
但是
可能精度丢失
.
3.
将一个字面值常量进行赋值的时候
, Java
会自动针对数字范围进行检查
.
14 数值提升
14.1 int和long混合运算
public static void main(String[] args) {
int a=10;
long b=20;
a=a+b;//编译报错,long到int可能导致数据丢失
b=a+b;//编译通过
}
结论
:
当
int
和
long
混合运算的时候
,
int
会提升成
long
,
得到的结果仍然是
long
类型
,
需要使用
long
类型的变量来
接收结果
.
如果非要用
int
来接收结果
,
就需要使用强制类型转换
14.2 byte和byte的运算
public static void main(String[] args) {
byte a=10;
byte b=20;
byte c=a+b;//编译出错,从int到byte可能导致数据丢失
}
结论
:
byte
和
byte
都是相同类型
,
但是出现编译报错
.
原因是
,
虽然
a
和
b
都是
byte,
但是计算
a + b
会先将
a
和
b
都
提升成
int,
再进行计算
,
得到的结果也是
int,
这是赋给
c,
就会出现上述错误
.
由于计算机的
CPU
通常是按照
4
个字节为单位从内存中读写数据
.
为了硬件上实现方便
,
诸如
byte
和
short
这种低于
4
个字节的类型
,
会先提升成
int,
再参与计算
.
14.3 类型提升小结
1.
不同类型的数据混合运算
,
范围小的会提升成范围大的
.
2.
对于
short, byte
这种比
4
个字节小的类型
,
会先提升成
4
个字节的
int ,
再运算
14 数值提升
14.1 int和long混合运算
public static void main(String[] args) {
int a=10;
long b=20;
a=a+b;//编译报错,long到int可能导致数据丢失
b=a+b;//编译通过
}
结论
:
当
int
和
long
混合运算的时候
,
int
会提升成
long
,
得到的结果仍然是
long
类型
,
需要使用
long
类型的变量来
接收结果
.
如果非要用
int
来接收结果
,
就需要使用强制类型转换
14.2 byte和byte的运算
public static void main(String[] args) {
byte a=10;
byte b=20;
byte c=a+b;//编译出错,从int到byte可能导致数据丢失
}
结论
:
byte
和
byte
都是相同类型
,
但是出现编译报错
.
原因是
,
虽然
a
和
b
都是
byte,
但是计算
a + b
会先将
a
和
b
都
提升成
int,
再进行计算
,
得到的结果也是
int,
这是赋给
c,
就会出现上述错误
.
由于计算机的
CPU
通常是按照
4
个字节为单位从内存中读写数据
.
为了硬件上实现方便
,
诸如
byte
和
short
这种低于
4
个字节的类型
,
会先提升成
int,
再参与计算
.
14.3 类型提升小结
1.
不同类型的数据混合运算
,
范围小的会提升成范围大的
.
2.
对于
short, byte
这种比
4
个字节小的类型
,
会先提升成
4
个字节的
int ,
再运算
public static void main(String[] args) {
int a=10;
long b=20;
a=a+b;//编译报错,long到int可能导致数据丢失
b=a+b;//编译通过
}
结论
:
当
int
和
long
混合运算的时候
,
int
会提升成
long
,
得到的结果仍然是
long
类型
,
需要使用
long
类型的变量来
接收结果
.
如果非要用
int
来接收结果
,
就需要使用强制类型转换



