变量是什么?

变量是用来为不同数据类型在内存中分配的空间用来储存该数据。

不同于python这样的弱类型语言,变量声明不需要定义数据类型,就和写数学方程式一般,谁等于谁即可。而Java这个发展了多个版本的语言,从1.0开始就在java.lang这个包里面明确定义了八种基本数据类型,直到Java15依然不曾改变。可见,基本数据类型的了解对于变量的使用而言是多么必要!

基本数据类型:数字类型

 

说到数字类型,就不得不提java.lang下面的Number类。那么现在来演示一下Double\Float\Integer\Long\Short,让大家了解一下Java中怎么定义这些数字类型,值得注意的是Java区分大小写,Double不等于double。大写对应的是类名,小写的是数字类型的声明。值得注意的是:Integer类的数字类型为int。

 

下面我们来按照如下输出:

可以发现变量是可以重复赋值的,而且一旦声明了变量,就代表分配了在内存上给它分配了空间,同时默认了一个0值。而Python里面则不行,变量必须给一个初始值。

从上图不难看出,int、long、short都属于整数类型,double和float都属于浮点数类型,Double、Float、Integer、Long、Short从它们的字面意思都很容易和数关联,而byte竟然也属于Number类,这是为什么呢?因为在Java中byte也是用二进制数的形式来表示。所以我们发现byte的初始值也是一个整数。

基本数据类型:布尔类型

 

Boolean作为真假的判断,布尔类型,有点编程知识的朋友都听说过。而Java15里面的布尔类型则是基本数据类型之一,对应具有一个false值和一个true值。同样的,如果我们声明布尔类型的数据类型,我们不能用大写,而是小写boolean。

boolean默认的值是false,大家可以在jshell里面定义一个boolean 类型的变量试试。

基本数据类型:字符类型

Character类型,非常好理解。正如它的名字一般,就是字符类型。我们平时的大部分输入都是这种类型。Java里,字符类型是遵循Unicode字符集的。

我们声明一个字符变量,使用char,默认值是'\000',和Python一样用引号作为字符串的标识。

大家一定很好奇,Java这种强类型语言,如果赋值不属于对应的类型,会不会报错呢?这里实测一下:

所以,我们尽量不要踩雷,老老实实的使用对应的数据类型来定义不同类型的数据。

Java15变量竟然没什么区别,八大基本数据类型你知道吗?的更多相关文章

  1. linux系统中关于shell变量$*与$@的区别

    在我们初学linux系统shell时,可能会感觉$@与$*没什么区别,如下面shell脚本: #!/bin/bash# name:a.sh # echo 'this script $* is: '$* ...

  2. Java的八大基本数据类型

    Java的八大基本数据类型 前言 Bit是计算机存储数据的基本单元,bit叫做位,也被称作比特位. Byte意为字节,1Byte=1字节,一字节可以存储八个二进制位的数字, 即为1Byte=8bit. ...

  3. java 变量的定义 类型转换 基本的数据类型

    package com.aaa.zxf.ajax.test; import org.junit.Test; /** * 六. * 如何在ideal的maven项目中导入 Test 测试类? * * * ...

  4. 事实证明,abstract类除了不能用new实例化和类没什么区别

    abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...

  5. sqlserver中表变量和变量表之间区别

    sqlserver中表变量和变量表之间区别

  6. java中八大基本数据类型详解

    1.基本数据类型的分类 java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型. 基本数据类型可以分为三类:1.数值类型.2.字符类型.3.布尔类型. 数值类型又分为 ...

  7. Java——静态变量/方法与实例变量/方法的区别

    静态只能调用静态 非静态: 对象名.方法名 package ti; //通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. class StaticDemo { ...

  8. JAVA中局部变量 和 成员变量有哪些区别

    JAVA中局部变量 和 成员变量有哪些区别 1.定义的位置不一样<重点>***局部变量:在方法的内部成员变量:在方法的外部,直接写在类当中 2.作用范围不一样<重点>***局部 ...

  9. c# 事实证明,abstract类除了不能用new实例化和类没什么区别

    abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...

随机推荐

  1. 【ORA】ORA-27101快速处理方法

    今天朋友的数据库出了问题,报错如下: 这个问题主要是是spfile和pfile文件不一致导致的, 生成一个pfile,完了用pfile启动数据库即可 SQL> create pfile '/ho ...

  2. 【Oracle】修改列的大小

    alter table 表名 modify column_name varchar2(32)  alter table 表名 modify (column_name1 varchar(20) defa ...

  3. RecyclerView 源码分析(二) —— 缓存机制

    在前一篇文章 RecyclerView 源码分析(一) -- 绘制流程解析 介绍了 RecyclerView 的绘制流程,RecyclerView 通过将绘制流程从 View 中抽取出来,放到 Lay ...

  4. Elasticsearch从入门到放弃:浅谈算分

    今天来聊一个 Elasticsearch 的另一个关键概念--相关性算分.在查询 API 的结果中,我们经常会看到 _score 这个字段,它就是用来表示相关性算分的字段,而相关性就是描述一个文档和查 ...

  5. Vue基础之Vue组件

    Vue基础之Vue组件 // 组件是可以复用的Vue实例! // 可以把经常重复的功能封装为组件!

  6. 计算机网络第7版 PDF+ 计算机网络释疑与习题解答第7版 PDF 计算机网络 课后答案

    网上全都是要钱的,要么就是第六版的,属实被恶心到了. 链接:https://pan.baidu.com/s/15jCOH6LXnQfB1RwGpNgBFg提取码:byMB

  7. 如何让淘宝不卡顿? 读写比例 动态扩容 分布式化路线 mysql 优化

    作为数据库核心成员,如何让淘宝不卡顿? https://mp.weixin.qq.com/s/l-qXV8NI6ywnUvp3S6an3g

  8. Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

    Oracle 0至6级锁的通俗解释及实验案例_ITPUB博客 http://blog.itpub.net/30126024/viewspace-2156232/

  9. 实用 nginx.conf 用法大全

    服务器拒绝非GET方式请求保障安全性,因为 DELETE.POST.PUT 是可以修改数据的. Nginx 解决方案 在 nginx.conf 配置文件的网站配置区域中添加如下代码片段: 非 GET ...

  10. Redis集群拆分原则之AKF

    当我们搭建集群的时候,首先要想明白需要解决哪些问题,搞清楚这个之前,想想单节点.单实例.单机有哪些问题? 单点故障 容量有限 可支持的连接有限(性能不足) ...... 为了解决这些问题,我们需要对服 ...