目录
1.字面常量
2.数据类型
3.变量
3.1变量的概念
一个建议:
4.类型转换
显示转换(强制类型转换)
隐式转换
字符串类型
1.字面常量
就是常量
常量即程序运行期间,固定不变的量称为常量。
System.out.println("Hello world!");
System.out.println(100);
System.out.println(0.5);
System.out.println('a');
System.out.println(true);
"Hello world!"、100、0.5、'a'、true都是常量
2.数据类型字面常量的分类:
1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。
2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000
3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49
4. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’
5. 布尔常量:只有两种true和false
6. 空常量:null(后面了讲)
注意:字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型
Java数据类型有两大类:基本数据类型和引用数据类型
基本数据类型有四类八种:
1. 四类:整型、浮点型、字符型以及布尔型
2. 八种:
数据类型 | 关键字 | 内存占用 | 范围 |
字节型 | byte | 1 字节 | -128 ~ 127 |
短整型 | short | 2 字节 | -32768 ~ 32767 |
整型 | int | 4 字节 | -2^31 ~ 2^31-1 |
长整型 | long | 8 字节 | -2^63 ~ 2^63-1 |
单精度浮点数 | float | 4 字节 | 有范围,一般不关注 |
双精度浮点数 | double | 8 字节 | 有范围,一般不关注 |
字符型 | char | 2 字节 | 0 ~ 65535 |
布尔型 | boolean | 没有明确规定 | true 和 false |
3.变量 3.1变量的概念注意:
1.不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
2.整形和浮点型都是带有符号的
3.整型默认为int型,浮点型默认为double
4.字符串属于引用类型,该中类型后序介绍
就是可变的量
char cc = 'a';
boolean bb = true;
byte a = 0;
short b = 0;
int c = 0;
long d = 0;
float f = 0.0f;
double g = 0.0;
一个建议:
变量在声明的时候尽量初始化,随便一个值也行。
拿int类型的变量为例
Java对语法很严格,如果不初始化就拿来用会报错
注意事项:
1. int不论在何种系统下都是4个字节
2. 推荐使用方式一定义,如果没有合适的初始值,可以设置为0
3. 在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢出
4. 变量在使用之前必须要赋初值,否则编译报错
浮点数分为float和double
看一下float
主要有一个地方要讲
为什么报错?
看下编译器的错误信息
它说5.0是double类型,所以我们这样写是错误的,类型不匹配,而且double是8个字节,float是4个字节,精度会丢失。
正确的写法
有人可能会想到
long s = 5;
这样写会不会报错
没有报错原因是5是int类型转换位long类型,long类型可以接收。
在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算.
观察下面代码的结果
double a = 0.1; double b = 0.1; System.out.println(a * b);
大家都知道0.1*0.1很简单,不就是0.01吗?
结果:
电脑是让这两个数进行复杂计算。无论是float还是double都会有精度的丢失,所以结果不是0.01。
想要了解更多的内容可以看下我之前发的 *** 作符详解那篇文章。
字符变量
例子
和C语言一个样。
布尔型变量
只有两个值true和false
举个例子
没有报错,所以一个条件真假的结果就是boolean类型。
看下面的例子
这里报错了,因为三目运算符的结果是一个值
所以如果像下面例子这样写是可以的。
结果
4.类型转换 显示转换(强制类型转换)(类型)一个量
这个量可以是变量也可以是常量。
隐式转换看下面案例
都是byte类型,为什么报错?
看下报错原因
编译器说a+b的结果是int类型。不对呀,明明是byte,为啥是int。
原因:整数在参与运算的时候会先转换位int类型(整型提升)然后再参与运算。
10和11被编译器看作是int类型所以结果是int类型
看下其他比int小的类型
都是这种情况。
怎么解决呢?
其实很好解决,a + b的结果不是int类型吗,那么我就强制类型转换这个结果。
注意:是整体的结果所以是(a + b);
字符串类型可以存储字符串,再也不担心要不要使用字符数组(需要的时候还是要的)。
这个类型很灵活
这里字符串介绍的比较简单,以后会写一篇文章来讲字符串。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)