java入门(二) | 八大基础类型

蹲街弑〆低调 提交于 2020-10-06 00:54:18

首发于:java入门(二) | 八大基础类型
java入门系列,从零开始!!!

上一期给大家讲到了java中第一个工程的搭建以及HelloWorld的实现,和对实现HelloWorld语句的详解

第二期:其乐将为大家带来,对java的八大基础类型的讲解与运用,你知道八大基础有哪些吗?他们之间又有什么特点和关联呢?这期之后相信你将会有更好的理解...

1、八大基础类型

1.1 介绍

1.2 练习1:测试最大值最小值

创建Basic工程
创建cn.qile.basic包
创建Test1_Scope.java

package cn.qile.basic;

//这个类用来测试取值范围
public class Test1_Scope {
    public static void main(String[] args) {
        //测试整型数据范围 byte short int long
        //创建变量保存byte取值 -- 变量类型 变量名=变量值
        byte min = Byte.MIN_VALUE;
        byte max = Byte.MAX_VALUE;
        System.out.println(min);//-128,打印变量的值
        System.out.println(max);//127

        short smin = Short.MIN_VALUE;
        short smax = Short.MAX_VALUE;
        System.out.println(smin);//-32768
        System.out.println(smax);//32767

        //long -- Long
        long lmin = Long.MIN_VALUE;
        long lmax = Long.MAX_VALUE;
        System.out.println(lmin);//-9223372036854775808
        System.out.println(lmax);//9223372036854775807


        //TODO int -- Integer
        int imin = Integer.MIN_VALUE;
        int imax = Integer.MAX_VALUE;
        System.out.println(imin);//-2147483648
        System.out.println(imax);//2147483647


        //TODO  浮点型float--Float  double--Double
        float fmin = Float.MIN_VALUE;
        float fmax = Float.MAX_VALUE;
        System.out.println(fmin);//1.4E-45
        System.out.println(fmax);//3.4028235E38

        double dmin = Double.MIN_VALUE;
        double dmax = Double.MAX_VALUE;
        System.out.println(dmin);//4.9E-324
        System.out.println(dmax);//1.7976931348623157E308


        //布尔类型
        boolean b = true;//真,通常用1表示真
        boolean b2 = false;//假,通常用0表示假


        //字符类型
        char c = 'a';
        char c2 = '中';//char类型可以存储一个中文汉字
        char c3 = 97;
        System.out.println(c);
        System.out.println(c2);


        //char类型数据可以保存数字,但是在使用时,并不是使用数字本身,而是,
//拿着数字去查了ascii码表,把数字对应着的字符,拿出来使用
        System.out.println(c3);//a,就是因为ascii码表数字97对应着的是a字符

    }
}

1.3 练习2:圆形面积

圆的面积:πrr
圆的周长:2πr

import java.util.Scanner;//自动导包

//求圆面积
public class Test2_Area {
    
    public static void main(String[] args) {
        //1、定义变量记录半径
//           double r = 10.1;//写死了
        
        //动态接收键盘输入的值
        double r = new Scanner(System.in).nextDouble();
        
        //2、带入公式算结果
        double result = 3.14*r*r;
        
        //动态拼接字符串:+
        System.out.println("圆的面积是"+result);
        
    }
    
}

1.4 练习3:变量交换

接收用户输入的值a和b。
假设a=1,b=2将a和b的值做交换。

package cn.qile.basic;

import java.util.Scanner;

//测试变量交换
public class Test3_Exchange {

    public static void main(String[] args) {
        //1、接收键盘输入的两个整数a和b
        System.out.print("a = ");
        int a = new Scanner(System.in).nextInt();
        System.out.print("b = ");
        int b = new Scanner(System.in).nextInt();

        //2、交换
        int c = a ;//定义c,记录a的值
        a = b ;//b的值给a
        b = c ;//把c的值给b

        //3、打印a和b的值
        System.out.println("a = "+a);
        System.out.println("b = "+b);

    }
}

2、基础类型的字面值

2.1 整数字面值是int类型

int a = 999999999999999; //超出了int的取值范围

2.2 byte、short、char 三种比int小的整数可以用范围内的值直接赋值

byte b = 127;//可以的,因为127在byte的取值范围内
byte b2 = 128; //错误,因为128的字面值是int类型,是4字节,byte是1字节,放不开

2.3 浮点数的字面值是double类型

double b = 1.5;

2.4 字面值的后缀LFD

long a = 999999999999L;// 999999999999字面值是int类型,但是超出int取值范围就报错了,只能扩大数据范围,加后缀L,从int转成long
float b = 3.0F;//3.0字面值是double类型,加后缀L,从double转成float
double d = 3D;//3字面值是int类型,加后缀D,从int转成double

2.5进制前缀

0b    -2进制   如: 0b0010
0     -8进制   如:076
0x    -16进制  如: 0x0986
\u    -char类型,16进制  如: \u0000

3、基础类型的类型转换

3.1 小转大/隐式转换

3.2 大转小/显示转换

需要强制类型转换

package cn.qile.basic;

public class Test {
    
    public static void main(String[] args) {
        //小转大--隐式转换
        short a = 10;
//小转大,右侧的a是小类型,左侧b是大类型,详单与拿着小类型给大类型,可以直接赋值
        long b = a;
        
        //大转小--显式转换--强制转换--(小类型)
        double m = 10.8;
        //右侧m是大类型,左侧n是小类型,拿着大类型直接给小类型赋值--不行
        int n = (int)m;
        
    }
}

3.3 浮点数转成整数,小数直接舍弃

不管0.1还是0.9全都舍弃。

4、运算规则

4.1 计算结果的数据类型,最大类型一致

System.out.println(3/2);//1

4.2 byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;
byte b = 2;
//byte c = a+b;
//错误,因为a+b运算时自动变成int类型,大类型,给小类型byte类型赋值,---不能直接赋值--强转
byte c = (byte)(a+b);

4.3 整数运算符溢出

整数运算,类似于一个钟表,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米。3亿m/s
System.out.println(300000000L*60*60*24*365);
//整数运算溢出解决方案:超出int范围的整数运算会溢出,可以扩大数据范围,加L,变成long类型

4.4 浮点数运算不精确

System.out.println(1-0.8);
//0.19999999999999996

4.5 浮点数的特殊值

Infinity 无穷大  3.14/0
NaN  not a number   0/0.0

下一期:java入门(三) | 运算符

关注【其乐不是码农】,回复【java入门】,提前观看下期内容!!

其乐等待着你的到来

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!