前面两节主要是开发环境搭建以及编写了最简单的“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,小数点后全部丢弃,将浮点型数值强制转为整型时,只保留小数点左边的数值,不会按照四舍五入的方式来完成整数位的进位。所以在使用时要注意!
强制转换实际使用过程比较少,了解即可。