java快速入门--变量,数据类型

228 阅读5分钟

java基础

变量

为什么需要变量

  • 变量是程序的基本组成单位

不论是使用那种高级程序语言编写程序,变量都是其程序的基本组成单位

基本三要素:

  • 类型
  • 名称
  • 简单的原理示意图
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9AJiioBL-1636277886708)(C:\Users\MSI-NB\AppData\Roaming\Typora\typora-user-images\image-20211107150400582.png)]

变(变化)量(值)的介绍

概念:变量相当与内存中一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)

  • 声明变量的步骤
    • 声明变量 int a;
    • 赋值 a = 1;
    • 打印输出 System.out.println(a);
    • 也可以一步到位 int a = 1;

变量快速入门

变量使用入门案例

看演示并对代码进行说明,演示记录,人的信息的代码

        //定义变量
        int age = 20;
        double score = 88.6;
        char gender = '男';
        String name = "张三";
        //输出信息
        System.out.println("人的信息如下:");
        System.out.println("年龄:" + age);
        System.out.println("分数:" + score);
        System.out.println("性别:" + gender);
        System.out.println("姓名:" + name);

变量使用注意事项

  • 变量表示内存中的一个存储区域【不同的变量,类型不同,占用的空间大小不同,比如,int 四个字节 double 就是八个字节】
  • 该区域有自己的名称【变量名】和类型【数据类型】
  • 变量必须先声明,后使用
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量在同一个作用域内不能重名
  • 变量 = 变量名 + 值 + 数据类型,这一点大家注意,变量三要素

程序中 +号 的使用

  • 当左右两边都是数值类型时,则做加法运算
  • 当左右两边有一方为字符串,则做拼接运算

数据类型

  • java数据类型

    • 一:基本数据类型

      • 数值型

        • 整数类型,存放整数

          • byte[1]
          • short[2]
          • int[4]
          • long[8]
        • 浮点(小数)类型

          • float[4]
          • double[8]
        • 字符型

          • char[2],存放单个字符 'a'
        • 布尔型

          • boolean[1],存放true false
    • 二:引用数据类型

      • 类(class)
      • 接口(interface)
      • 数组([])

整数类型

  • java各整数类型有固定的范围和字段长度,不受具体os(操作系统)的影响,以保证java程序的可移植性
  • java的整型常量默认为int型,声明long型常量需后加 l 或 L
  • java程序中变量常声明为int型,除非不足以表示大数,才使用long
  • bit:计算机中的最小存储单位,byte:计算机中最基本存储单元, 1 byte = 8 bit.

字符类型(char)

  • 基本介绍:字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符我们用字符串String

  • char c1 = 'a';
    char c2 = '\t';
    char c3 = '韩';
    char c4 = 97;
    
  • 字符类型使用细节

    • 字符常量是用单引号('')括起来的单个字符
    • java中还允许使用转义字符'\'来将其后的字符转变为特殊字符型常量
    • 在java中,char的本质是一个整数,在输出时,是unicode码对应的字符(tool.chinaz.com/Tools/Unico…
    • 可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出【97】
    • char类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码
  • 字符类型本质探讨

    • 字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如’a‘
      • 存储:’a‘ ==>码值97 ==>二进制 ==> 存储
      • 读取:二进制 ==> 97 ==> 'a' ==> 显示
    • 字符和码值的对应关系是通过字符编码表决定的(是规定好的)
      • 介绍一下字符编码表
        • ASCII(ASCII编码表 一个字节表示,一个128个字符)
        • unicode(unicode编码表固定大小的编码,使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样很浪费空间)
        • utf-8(编码表,大小可变的编码 字母使用1个字节 汉字使用三个字节)
        • gbk(可以表示汉字,而且范围广,字母使用一个字节,汉字使用三个字节)
        • gb2312(可以表示汉字,gb2312 < gbk)
        • big5码(繁体中文,台湾,香港)

布尔类型:boolean

  • 基本介绍

    • 布尔类型也叫boolean类型,boolean类型数据只允许值true和false,无null

    • boolean类型占一个字节

    • boolean类型使于逻辑运算,一般用于程序流程控制

      • if条件控制语句;

      • while循环控制语句;

      • do....while循环控制语句

      • for循环控制语句

      • boolean deflag = true;
        if(deflag){
        语句1
        }else{
        语句2
        }
        

基本数据类型转换

  • 自动类型转换

    • 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换
    • 数据类型按精度(容量)大小排序
  • 强制类型转换

    • 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或溢出,要格外注意
  • 基本数据类型转换

    • 强制类型转换细节说明

      • 当进行数据的大小 从大 -------> 小,就需要使用到强制转换

      • 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级

      • //int x = (int) 10 * 3.5 + 5 * 1.5;
        int x = (int)( 10 * 3.5 + 5 * 1.5);
        
      • char类型可以保存int的常量值,但不能报错int的变量值,需要强转

      • byte和short类型在进行运算时,当作int类型处理

  • 基本数据类型和String类型的转换

    • 在程序开发中,我们经常需要将基本数据类型转换成String类型。或者将String类型转换成基本数据类型
    • 基本类型转String类型
      • 语法:将基本类型的值 + “” 即可
    • String类型转基本数据类型
      • 语法:通过基本类型的包装类调用parseXX方法即可
    • 注意事项
      • 在将String类型转换成基本数据类型时,要确保String类型能够转成有效的数据,比如,我们可以把“1243”转成一个整数,但不能把“hello”转成一个整数
      • 如果格式不正确,就会抛出异常,程序就会终止
package com.company.hello.change;

import com.sun.deploy.util.StringUtils;

/**
 * @author L.yn
 * @version 1.0
 * @date 2021/11/7 15:45
 */
public class IntDetail {
    public static void main(String[] args) {

        /**
         * 自动类型转换细节
         * 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大
         * 的那种数据类型,然后在进行计算
         */
        int n1 = 10;
//        float d1 = n1 + 1.1; 错误,结果类型时double
        double d1 = n1 + 1.1;
        float d2 = n1 + 1.1F;//对

        /**
         * 当我们把精度大的数据类型赋值给精度小的数据类型时
         * 就会报错,反之就会进行自动类型转换
         */


        /**
         * 强制类型转换
         */
        int i = (int) 1.9;
        System.out.println(i);

        int j = 100;
        byte b1 = (byte) j;
        System.out.println(b1);


        //基本数据类型转字符串
        int a = 1;
        String b = a + "";
        String c = String.valueOf(a);

        //字符串转基本数据类型
        int i1 = Integer.parseInt(b);
        double v = Double.parseDouble(c);
    }
}

以实战来学习编程,希望从我这的小伙伴都能有收获,有需要的同学加扣扣群一起学习进步,谢谢

图片.png