前面两节主要是开发环境搭建以及编写了最简单的“Hello World”程序,后面开始一步步的进入正题,写博客的过程也是总结的过程,加油。
基本数据类型
Java共有8种基本数据类型,程序中常用的数据类型有整数、小数、字母、单词、汉字等。我们可以将这些数据分为两大类:数值类型(整数、小数)和非数值类型(字母、单词、汉字)。
实际开发过程中,我们常用的基本类型有int,double,boolean。描述文本使用char有很大局限性,因为只能表示单个字符,如果想输出一段文本,使用char就不合适了,这时要使用String来表述文本数据。
package com.gavin.day01.variable;
/**
* @ author: Gavin
* @ data: 2020/11/30 15:21
* @ version: V0.1
**/
public class Variable {
public static void main(String[] args) {
// 定义变量
// 数据类型 变量名 = 变量值
boolean bool1 = true; // 真
boolean bool2 = false; // 假
// 整数 默认类型int
byte b1 = 100;
byte b2 = -100;
short s1 = 10000;
short s2 = -10000;
int i1 = 1000;
int i2 = -1000;
long l1 = 1L; // 用long类型时一般都会加上一个大写的L
long l2 = -1L;
// 浮点 小数
float f1 = 3.14F; // 小数的默认类型是double,而double比float大,大的数据类型下不能直接赋值给小的数据类型
float f2 = -3.14F;
double d1 = 3.14;
double d2 = -3.14;
double d3 = -3.14D;
// 字符串型
char c1 = ' '; // char有且只能有一个内容
char c2 = 'a';
char c3 = '1';
char c4 = '中';
}
}
数据类型的转换
自动转换
Java中的变量可以进行数据类型转换,如将整数赋给double类型的变量,代码如下:
public class Test{
public static void main(String[] args) {
int num = 10;
double num2 = num;
System.out.println(num2);
}
}
运行结果如下:
我们先定义num为整型,值为10,后定义num2为双精度浮点型并将num值赋给num2. 最后我们输出num2的值为10.0,已经将整数10变成了小数10.0,由原来的int类型变为double类型,这一过程叫做“自动类型转换”。
这种操作对参与的数据类型是有要求的,并不是所有的数据类型之间都可以完成自动转换,只能由低字节向高字节进行转换,反之则不行。
基本数据类型自动转换的关系为:byte → short → int → long → flaot → double. 代码如下:
public class Test{
public static void main(String[] args) {
byte num1 = 10;
short num2 = num1;
int num3 = num2;
long num4 = num3;
float num5 = num4;
double num6 = num5;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
}
}
运行结果如下:
强制转换
int类型可以转换为double类型,而double类型不能自动转为int类型,但可以通过手动干预进行强制转换。代码如下:
public class Test{
public static void main(String[] args) {
double num = 10.5;
int num2 = (int) num;
System.out.println(num2);
}
}
运行结果如下:
结果显示num2为10,即double在转为int时会造成精度损失,由10.5变为10,小数点后全部丢弃,将浮点型数值强制转为整型时,只保留小数点左边的数值,不会按照四舍五入的方式来完成整数位的进位。所以在使用时要注意!
强制转换实际使用过程比较少,了解即可。