变量数据类型 Day3

news2024/11/13 9:05:00

1. 变量

1.1 变量的概念

  • 变量是计算机内存中的一块存储单元,是存储数据的基本单元
  • 变量的组成包括:数据类型、变量名、值,后文会具体描述
  • 变量的本质作用就是去记录数据的,比如说记录一个人的身高、体重、年龄,就需要去程序中记录数据,而不同的数据使用不同的数据类型去存储,后文会具体描述

1.2 变量的定义

变量的定义有三种方法

  • 直接声明
  • 先声明后赋值
  • 多个同类型变量声明与赋值

代码举例:

public class VariableDefine {
    public static void main(String[] args) {
        int age;                //第一种方法:变量的声明
        age = 21;
        int number = 12345;     //第二种方法:先声明后赋值
        int a,b,c = 100,d=123;  //第三种方法:多个同类型变量声明与赋值

        System.out.println("age = " + age);
        System.out.println("number = " + number);
        System.out.println("c = " + c);
        System.out.println("d = " + d);
    }
}

  • 以上代码可以清晰看到三种变量的定义方法

  • 输出结果:
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    • 要实现 age = 21这种效果,只需要在输出时,用字符串 + 变量就可以了,如上输出,其中,+只做文字拼接,不做加法计算

    • 注意如果只是单纯输出变量的值,不需要双引号,如

      System.out.println(age);	//输出变量的值,不需要加双引号
      System.out.println("age");	
      //如果加了双引号,那么输出的是字符age,既不是变量age也不是变量的值。
      

      输出结果
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意事项:

  • 未赋值的变量是不能使用的,当我们注释掉了age,此时age就没有赋值,可以看到没有赋值是直接报错了
    在这里插入图片描述

  • 第三种定义变量的方法,不推荐使用,因为代码可读性不高,不便于阅读

1.3 变量概念解析

有了变量的定义,用以上代码解析一下变量的概念

  • 变量是计算机内存中的一块存储单元,是存储数据的基本单元
    • 当我们声明一个变量age,int age;那么在内存当中就会开辟一个int字节的空间,这块空间的名称叫做age,我们可以通过age来访问到这一块空间
      在这里插入图片描述

此时里面还没有数据,我们只需要赋值age = 21;就把数据存到内存当中
在这里插入图片描述

  • 变量的组成包括:数据类型、变量名、值
    • 比如说:int number = 12345;,其中int是整数类型,变量名为number,值为12345,这三个部分组成了一个number变量

2.数据类型

Java是一个强类型的语言,它的变量具有严格的数据类型区分

在Java中,任何一个值都有他对应的数据类型

我们可以大概的把数据类型分为两类

  • 基本数据类型
    • 整数
    • 浮点数
    • 字符类型
    • 布尔类型
  • 引用数据类型(可以理解为,除了基本数据类型其他基本上都是引用数据类型)
    • 字符串
    • 数组
    • 对象

下面将会具体介绍数据类型

2.1 整数类型

整数类型里面有四种类型

类型字节取值范围(二进制)取值范围(十进制)
byte1字节-2^7 ~2^15-1-128~127
short2字节-2^15 ~ 2^15-1-32768~32767
int4字节-2^31 ~ 2^31-1-2147483648~2147483647
long8字节-2^63 ~ 2^63-1-9223372036854775808~9223372036854775807
  • 其中,int是整数的默认类型

代码举例:

public class DateType {
    public static void main(String[] args) {
        byte a =  127;
        short b = 32767;
        int c = 2147483647;
        long d = 9223372036854775807;
    }
}

可以看到,实际上在编译器上, 当我们定义一个long类型,为什么输入了数字之后,明明是long的合法范围,却显示最大呢?
在这里插入图片描述
_id=img-Os2Lh8gN-1725799836837)

  • 那是因为整数的默认类型是int类型,所以当你输入这么大个数字的时候,其实默认的是把这个数字存放到int类型的空间中,但是很显而易见,四个字节的空间无法存放这么大的数字。

    • 解决方法:在后面加个L,表示是long类型,即

      long d = 9223372036854775807L;
      
  • 那么我们什么时候会加L呢?

    • 当数值超过了int类型的范围,则需要在数值后面加上L
    • 当数值并未超过int类型的范围,则可加可不加
      • 一般如果不加的话,且没超过int类型的范围,那么就是默认int类型,即使你变量的数据类型是long,但值如果没超过int类型的话,实际上还是以int类型存放,因为假如定义了long d = 100;,那么就会开辟8个字节空间来存放100,造成了很大的空间浪费

2.2 浮点类型

浮点类型主要是单精度浮点数(float)和双精度浮点数(double),两者都是近似值而不是精确值

类型字节负数取值范围正数取值范围
float4字节-3.4E+38 ~ -1.4E-451.4E-45 ~ 3.4E+38
double8字节-1.7E+308 ~ -4.9E-3244.9E-324 ~ 1.7E+308

其中,double为浮点数的默认类型,若要为float赋值,需要在值的后面加F
在这里插入图片描述

代码举例:

public class DateType {
    public static void main(String[] args) {
        float a = 3.4E+38F;
        double b = 1.7E+308;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }
}

2.3 字符类型

类型字节取值范围(无符号数)字符编码
char2字节0 ~ 65535Unicode字符集(万国码)
  • Unicode字符集支持ASCII码

2.3.1 字符类型的赋值方式

  • 字符赋值

    public class DateType {
        public static void main(String[] args) {
            char ch1 = 'a';
            char ch2 = '1';
            char ch3 = '耶';
            char ch4 = '!';
    
            System.out.println("ch1 = " + ch1);
            System.out.println("ch2 = " + ch2);
            System.out.println("ch3 = " + ch3);
            System.out.println("ch4 = " + ch4);
        }
    }
    
  • 整数赋值

    • 用ASCII码的值进行直接赋值 0~127

      public class DateType {
          public static void main(String[] args) {
              char ch1 = 33;
              char ch2 = 65;
              char ch3 = 98;
              char ch4 = 100;
              
              System.out.println("ch1 = " + ch1);
              System.out.println("ch2 = " + ch2);
              System.out.println("ch3 = " + ch3);
              System.out.println("ch4 = " + ch4);
          }
      }
      

      运行结果
      在这里插入图片描述

    • 用Unicode(万国码)的值进行直接赋值 0~65535

      • 中文的取值范围是:\u4e00(19968) ~ \u9af5(40969) 十六进制(十进制)

        public class DateType {
            public static void main(String[] args) {
                char ch1 = 19968;
                char ch2 = 20249;
                char ch3 = 20255;
                char ch4 = 40869;
        
                System.out.println("ch1 = " + ch1);
                System.out.println("ch2 = " + ch2);
                System.out.println("ch3 = " + ch3);
                System.out.println("ch4 = " + ch4);
            }
        }
        

        运行结果
        在这里插入图片描述

  • 进制赋值

    • 用单引号包括十六进制的Unicode字符值,要以\u开头

      package com.csdn.code.day3;
      
      public class DateType {
          public static void main(String[] args) {
              char ch1 = '\u4e00';
              char ch2 = '\u4fa2';
              char ch3 = '\u5af3';
              char ch4 = '\u9af5';
      
              System.out.println("ch1 = " + ch1);
              System.out.println("ch2 = " + ch2);
              System.out.println("ch3 = " + ch3);
              System.out.println("ch4 = " + ch4);
          }
      }
      
      • 中文的取值范围是:\u4e00 ~ \u9af5 十六进制

        运行结果
        在这里插入图片描述

2.3.2 转义字符

我们刚刚看到的’\u’就是一个转义字符,表示一个十六进制数对应的的字符

下面我们来具体了解一下什么是转义字符

转义字符概念:用于保存一些特殊符号或者是一些特殊的效果

以下是常用的转义字符

转义字符描述
\n换行符
\t缩进(制表位)
\ \反斜线
\‘单引号
‘’双引号

代码举例:

public class DateType {
    public static void main(String[] args) {
        System.out.println("i\nlove\nyou\n");
        System.out.println("i\tlove\tyou\t");
        System.out.println("\\i love you\\");
        System.out.println("\'i love you\'");
        System.out.println("\"i love you\"");
    }
}

运行结果
在这里插入图片描述

2.4 布尔类型

类型字节取值范围描述
boolean1字节true/false仅可描述”真“或者”假“
  • 布尔类型不能参加算术运算
  • true表示真
  • false表示假

代码举例:

package com.csdn.code.day3;

public class DateType {
    public static void main(String[] args) {
        boolean a = true;        //直接对布尔类型的变量赋值
        boolean b = false;       //直接赋true or false
        
        int c = 20;
        int d = 40;
        boolean result1 = c > d;    //赋值 最终结果为true or false的表达式
        boolean result2 = c < d;

        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("result1 = " + result1);
        System.out.println("result2 = " + result2);
    }
}

运行结果如下:
在这里插入图片描述

2.5 String类型

类型取值范围字符编码
String任何""之间的值Unicode字符编码

String类型是JDK提供的一个类,属于引用数据类型,任何""包括的内容都是字符串

代码举例

package com.csdn.code.day3;

public class DateType {
    public static void main(String[] args) {
        String str1 = "I am ?0 o O";
        String str2 = "I am 21 years old\n";

        System.out.println(str1);
        System.out.print(str2);     // \n和println()方法都有换行的效果,选其一即可
    }
}

运行结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2116095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【微处理器系统原理和应用设计第十讲】外部中断之开发键控灯亮灭功能

一、基础知识 外部设备所产生的信号通过EXIT触发中断。 1、与中断相关的主要寄存器 EXTI共设有6个寄存器&#xff0c;分别为中断屏蔽寄存器&#xff08;IMR&#xff09;&#xff0c;事件屏蔽寄存器&#xff08;EMR&#xff09;&#xff0c;上升沿触发选择寄存器&#xff08;…

Ubuntu | 安装 Truffle 框架(安装缓慢)

目录 预备工作具体步骤Step1&#xff1a;安装 nvma. 官方方式&#xff08;可能失败&#xff09;b. 压缩包安装方式 Step2&#xff1a;安装 node.js 和 npmStep3&#xff1a;安装 Truffle 参考博客 前言&#xff1a;昨天安装 Truffle 框架&#xff0c;结果缓冲条转了一晚上都没安…

利士策分享,如何平衡物质追求与心理健康?

利士策分享&#xff0c;如何平衡物质追求与心理健康? 在快节奏的现代社会&#xff0c;物质追求与心理健康仿佛成了人们生活中不可或缺的两极。 一方面&#xff0c;科技的飞速发展和经济的繁荣让我们拥有了前所未有的物质享受&#xff1b; 另一方面&#xff0c;高压的工作环…

前端基础 | HTML基础:HTML结构,HTML常见标签

文章目录 HTML1、HTML结构1.1HTML标签1.1.1标签1.1.2标签含义 1.2HTML文件基本结构1.3标签层次结构1.4 快速生成代码框架 2、HTML常见标签2.1注释标签2.2标题标签&#xff1a;h1–h62.3段落标签&#xff1a;p2.4 换行标签&#xff1a;br2.5格式化标签2.6 图片标签&#xff1a;i…

细致刨析JDBC ② 进阶篇

目录 一、JDBC拓展 1.实体类和ORM Ⅰ、ORM思想封装单个对象 Ⅱ、ORM思想封装集合 2.主键回显 3.批量操作 ① 循环逐条数据进行添加 ② 批量进行添加 二、连接池 1.现有问题 2.连接池 3.常见连接池 4.Druid连接池使用 使用步骤&#xff1a; 硬编码 软编码 5.HikariCP连接池使用 …

(详细文档)javaswing学生成绩管理系统(mysql)+详细报告

摘要 在现今信息时代&#xff0c;生活速度的加快&#xff0c;使得人们越来越向信息化、数字化发展。 随着学校的规模不断扩大&#xff0c;学生数量急剧增加&#xff0c;有关学生的各种信息量也成倍增 长&#xff0c;尤其是学生的考试成绩数据。面对庞大的学生的成绩&#xff0…

@Value读取properties中文乱码解决方案

前几天碰到使用Value中文乱码的问题&#xff0c;英文字符则不会出现问题 原因&#xff1a;SpringBoot在加载properties配置文件时&#xff0c;使用的默认编码是&#xff1a;ISO_88599_1 解决方式&#xff1a;将properties改成yml就可以读取成功了 Data Component PropertySou…

数据结构(邓俊辉)学习笔记】排序 1——快速排序:算法A

文章目录 1. 分而治之2. 轴点3. 构造轴点4. 单调性 不变性5. 实例 1. 分而治之 主题就是排序。实际上我们对于排序问题并不陌生。你应该记得在最开始的几章&#xff0c;我们就分别介绍过起泡排序、插入排序、选择排序以及归并排序&#xff0c;而在介绍散列技术时&#xff0c;我…

Tableau 2023下载安装教程最新教学附软件包百度网盘分享链接地址

Tableau 2023介绍 Tableau 2023下载安装教程最新教学附软件包百度网盘分享链接地址&#xff0c;Tableau 是一款强大的数据可视化软件。它能连接多种数据源并整合&#xff0c;操作简单&#xff0c;通过拖放即可创建可视化报表和仪表盘。具有高效的分析处理能力&#xff0c;支持…

windows下安装并使用nvm

目录 一.准备工作&#xff1a;卸载node 卸载步骤 二.下载nvm 三.安装nvm 三.配置下载源【重要】 四.使用nvm安装node.js 五.nvm常用命令 六.卸载nvm 一.准备工作&#xff1a;卸载node 如果电脑上已经有node&#xff0c;那么我们需要先完全卸载node&#xff0c;再安装…

LeetCode 热题 100 回顾15

干货分享&#xff0c;感谢您的阅读&#xff01;原文见&#xff1a;LeetCode 热题 100 回顾_力code热题100-CSDN博客 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标…

FastAPI模块化:为复杂应用程序提供清晰的结构

开题描述&#xff1a; 在现代软件开发中&#xff0c;随着应用程序规模的扩大和功能的增加&#xff0c;传统的单体架构逐渐暴露出其局限性。FastAPI&#xff0c;作为一款高性能的现代Web框架&#xff0c;通过其模块化设计提供了一种解决方案。本文将探讨FastAPI模块化如何为构建…

顶刊中的树状图如何绘制?|科研绘图·24-09-07

小罗碎碎念 本期推文主题&#xff1a;树状图 本期推文主要介绍如何绘制树状图以及它的一些变体形式&#xff0c;看完本篇推文&#xff0c;你最终能够实现的效果如下。 一、组织结构图 Dendrogram是一种网络结构&#xff0c;由一个根节点开始&#xff0c;该节点通过边或分支连接…

找商业网字体加密(TTFont方法)

网点地址&#xff1a;公司介绍-泰州名列新材料有限公司 (zhaosw.com) 问题如下&#xff1a; 在网站中看到的电话号码在页面源码中无法查看 破解步骤&#xff1a; 1.找到woff文件 查找字体的class属性&#xff0c;全文查找font-face-encrypted找到如下内容&#xff0c;可以看到…

在 Linux 上部署javaWeb项目+图文详解_java web项目部署到linux服务器

-f : force强制的意思&#xff0c;如果目标文件已经存在&#xff0c;不会询问直接覆盖 -i : 若目标已经存在&#xff0c;就会询问是否覆盖 -u : 若目标文件已经存在&#xff0c;且比目标文件新&#xff0c;才会更新 # 该命令可以把多个文件一次移动到一个文件夹中&#xff0c;但…

github删除自己创建的仓库

1.进入仓库&#xff0c;点击Settings 2.下拉至Danger Zone区域&#xff0c;点击Delete this repository 3.点击 I want to delete this repository 4.点击i have read ... 5.按提示输入&#xff0c;点击Delete this repository 总结 1.进入仓库&#xff0c;点击Settings 2.下…

推荐9个不同风格的音频频谱波形 听音乐怎么能少了它

9个不同风格的音频频谱波形 听音乐怎么能少了它。在我们沉静在听音乐的过程中&#xff0c;桌面上的频谱跳动&#xff0c;会让音乐更有动感&#xff0c;视觉化把音频表现出来。在桌面上跳动的音乐&#xff0c;更有氛围。小小编给大家带来了9种非常有特殊的音频频谱&#xff0c;看…

做一个最简单的CPU -- 计算机组成原理(六)

在上一个章节中&#xff0c;我们已经了解了一个存储是如何制作出来的&#xff0c;利用这个存储我们就可以做一个最简单的CPU 指令 我们知道CPU负责执行计算机的程序&#xff0c;而程序其实是一个个的操作指令 比如可能是计算指令&#xff0c;cpu会指示ALU进行加减运算 也可…

【web网页制作】html+css旅游家乡河南主题网页制作(5页面)【附源码】

一、&#x1f468;‍&#x1f393;网站题目 旅游&#xff0c;当地特色&#xff0c;历史文化&#xff0c;特色小吃等网站的设计与制作。 二、✍️网站描述 &#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS 等来完成页面的排版设计&#x1f469;‍&#x1f393;…

Leetcode面试经典-115.不同的子序列

解法都在代码里&#xff0c;不懂就留言或者私信 理论上提交这个就是最优解 class Solution {public int numDistinct(String s, String t) {if(s.length() < t.length()) {return 0;}if(s.length() t.length()) {return s.equals(t)? 1 : 0;}char[] sArr s.toCharArray…