Java入门基础3:变量详解、类型转换、运算符

一、变量详解

基本数据类型:

基本数据类型(Primitive Data Types)是指不能被进一步分解的简单数据类型。它们是构建Java程序的基石,用于存储简单的数据值。

Java定义了八种基本数据类型:

1. 布尔类型 (boolean):用于表示真 (true) 或假 (false)。布尔类型通常用于逻辑运算。

2. 字符类型 (char):用于表示单个Unicode字符,如 'a'、'中' 或 '\n'。字符类型使用单引号' ' 来定义。

3. 整数类型 (int):用于表示整数(没有小数部分的数)。整数类型有多种变体:
   byte:8位整数,取值范围从-128到127。
   short:16位整数,取值范围从-32,768到32,767。
   int:32位整数,取值范围从-2^31到2^31-1。这是Java中最常用的整数类型。
   long:64位整数,取值范围从-2^63到2^63-1。当需要表示更大范围的整数时使用。

4. 浮点类型 (float 和 double):用于表示带有小数部分的数。
  float:32位浮点数,它在单精度32位IEEE 754浮点数标准上实现。
  double:64位浮点数,它在双精度64位IEEE 754浮点数标准上实现。由于其较大的范围和精度,` double`是科学计算和金融等需要高精度的领域的首选。

package com.itchinajie.veriable;

public class VariableDemo2 {
    public static void main(String[] args) {
     /*1.认识基本的数据类型
     * 整型(int byte short long)、浮点型(float double)、
     * 字符型(char)、布尔型(boolean)
     * 至少要清楚byte类型的范围(—128~127)*/
        int a = 16;
        byte a2 = 127;
        //byte a3 = 128;(注意越界了)
        //long a3 = 424242244444;
        // 注意:随便写一个整型字面量默认是int类型的,
        // 424242244444虽然没有超过10ng的范围
        // ,但是超过了本身int类型的范围
        long a4 = 424242244444L;//数字后加L/l就可以了
        ///long b = 6427349187;(注意整型默认int类型)
        double b =9.99;
        //float b2 = 9.99;
        // 注意:随便写小数字面量,默认是double,
        float b3 = 9.99F;// 如果希望小数是float,后面加上F/f
        char c1 ='a';
        char c2 ='中';

        //char c3 = '中国';只能存一个字符
        //boolean d1 = ture;
        //boolean d2 = false;必须有输出
        /*拓展;一个字符串(string)*/
        String name = "我爱中国";
        System.out.println(name);
        System.out.println(c2);
        System.out.println(c1);
        System.out.println(a2);
    }
}

引用数据类型:

引用数据类型包括对象(Object)、数组(Array)和字符串(String)。

*对象:Java中的对象是由类(Class)创建的实例。对象包含数据(属性)和方法(函数)。对象在内存中以堆栈的形式存储,因此,对象可以被看作是一种特殊的数据类型。

*数组:数组是一种特殊的数据结构,它由一组相同类型的元素组成。数组中的元素可以通过下标*访问。Java中的数组类型以"[ ]"表示,例如int[ ]、String[ ]等。

*字符串:Java中的字符串类型是String,它是一个不可变的引用类型。字符串在内存中以字符数组的形式存储,因此,字符串的长度在创建时就已经确定。

package com.itchinajie.veriable;

public class VariableDemo1 {
    public static void main(String[] args) {
        //您已学习了注释、字面量和变量,请展示
        /*1.注释
        * 单行注释
        * 多行注释
        * 文档注释*/
        /*2.字面量
        * \n换行
        * \t一个Tab缩进
        * 怎么可能,字符用单引号,双引号围起来,整数和小数
        * 666别忘了后面加点哦
        * 还有空字符*/
        System.out.println(666);
        System.out.println(99.6);
        //数字和字母不用加引号呦System.out.println('666');
        System.out.println('六');//单引号只能单字符
        System.out.println("\t");
        System.out.println("非常六呀");//双引号随意
        System.out.println("\n");
        System.out.println("----------------");
        /*3.变量
        * 使用变量的好处,方便之处
        * int整数变量double小数变*/
        int number=6;
        System.out.println(number);
        number=number+1;
        System.out.println(number);
        System.out.println("-----------------------------------------");
        double number1=6.66;
        System.out.println(number1);
        number1=number1+660;
        System.out.println(number1);
        }
    }

二、类型转换

自动类型转换

什么是自动类型转换?

自动类型转换是一种自动进行的转换,它发生在表达式中,当一个数据类型的值被赋值给另一个数据类型时。Java会自动尝试将源数据类型转换为目标数据类型,前提是源数据类型可以隐式转换为目标数据类型。

为什么要进行类型转换?

存在不同类型的变量赋值给其他类型的变量。

表达式的自动类型转换

表达式中的自动类型转换是什么样的?

1. 整数类型转换:
   `byte`、`short`、`int`可以相互转换,其中任何一个类型可以自动转换为`long`类型。
   `byte`和`short`可以自动转换为`int`,但`byte`转换为`int`时会失去超过`byte`范围的值,`short`转换为`int`时会保持原值。

2. 浮点类型转换:
   `float`可以自动转换为`double`,但`float`转换为`double`时会丢失精度。
   `double`不能自动转换为`float`,因为这会导致精度损失。如果需要将`double`转换为`float`,必须使用类型转换操作符`(float)`进行显式转换。
自动类型转换顺序(由大到小)

拓展

3. 混合类型转换:
   整数类型与浮点类型进行运算时,整数类型会自动转换为浮点类型。运算结果将是一个浮点数。
   字符串与数字类型进行运算时,字符串会被转换为数字类型。如果字符串不能转换为数字,将会抛出`NumberFormatException`。

4. 对象类型转换:
   基本类型与对象类型进行运算时,基本类型会自动转换为对象类型的对应值。例如,`int`类型与`Integer`对象类型进行运算时,`int`会自动转换为`Integer`。
   两个对象类型进行运算时,通常需要使用方法调用,例如`Integer a = b + c;`,这里的`+`表示调用`Integer`类的`add`方法。

5. Widening and Narrowing Conversions (拓宽和窄化转换):
   拓宽转换(Widening Conversion):将一个类型转换为更大范围或相同范围内的另一个类型。例如,`byte`转换为`int`,`float`转换为`double`。
   窄化转换(Narrowing Conversion):将一个类型转换为更小范围或相同范围内的另一个类型。例如,`int`转换为`byte`,`double`转换为`float`。窄化转换可能会导致数据丢失。

强制类型转换

默认情况下,大范围类型的变量直接赋值给小范围类型的变量会报错! 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。

格式:数据类型变量=(数据类型)变量、数据

强制类型转换有哪些需要注意的?

可能出现数据丢失。 小数强制转换成整数是直接截断小数保留整数。

三、小案例:在程序中接收用户通过键盘输入的数据

API和API文档

Application Programming Interface,应用程序编程接口:Java写好的程序,咱可以直接调用。

API文档是Java提供的程序使用说明书。

案例:使用Scanner接收用户键盘输入的数据

需要三个步骤:

package com.itchinajie.scanner;

import java.util.Scanner;

public class ScannerDemo1 {
    public static void main(String[] args) {
        //1.导包:一般不需要我们自己做,idea工具会自动帮助我们导包的
        //2.抄代码:得到一个键盘扫描对象(东西)
        Scanner sc = new Scanner(System.in);

        //3.开始调用sc的功能,来接收用户键盘输入的数据。
        System.out.println("请输入您的年龄:");
        int age = sc.nextInt();//执行到这,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据
        System.out.println("您的年龄是:" + age);

        System.out.println("请输入您的名字:");
        String name = sc.next();//执行到这,会开始等待用户输入一个整数,直到用户按了回车键,才会拿到数据
        System.out.println(name + "恭喜您操作成功");
    }
}

注意:
System、String在JDK中的ava.lang包下
lang包不需要我们导包,是默认的包。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值