Java15变量竟然没什么区别,八大基本数据类型你知道吗?
变量是什么?
变量是用来为不同数据类型在内存中分配的空间用来储存该数据。
不同于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变量竟然没什么区别,八大基本数据类型你知道吗?的更多相关文章
- linux系统中关于shell变量$*与$@的区别
在我们初学linux系统shell时,可能会感觉$@与$*没什么区别,如下面shell脚本: #!/bin/bash# name:a.sh # echo 'this script $* is: '$* ...
- Java的八大基本数据类型
Java的八大基本数据类型 前言 Bit是计算机存储数据的基本单元,bit叫做位,也被称作比特位. Byte意为字节,1Byte=1字节,一字节可以存储八个二进制位的数字, 即为1Byte=8bit. ...
- java 变量的定义 类型转换 基本的数据类型
package com.aaa.zxf.ajax.test; import org.junit.Test; /** * 六. * 如何在ideal的maven项目中导入 Test 测试类? * * * ...
- 事实证明,abstract类除了不能用new实例化和类没什么区别
abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...
- sqlserver中表变量和变量表之间区别
sqlserver中表变量和变量表之间区别
- java中八大基本数据类型详解
1.基本数据类型的分类 java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型. 基本数据类型可以分为三类:1.数值类型.2.字符类型.3.布尔类型. 数值类型又分为 ...
- Java——静态变量/方法与实例变量/方法的区别
静态只能调用静态 非静态: 对象名.方法名 package ti; //通过两个类 StaticDemo.LX4_1 说明静态变量/方法与实例变量/方法的区别. class StaticDemo { ...
- JAVA中局部变量 和 成员变量有哪些区别
JAVA中局部变量 和 成员变量有哪些区别 1.定义的位置不一样<重点>***局部变量:在方法的内部成员变量:在方法的外部,直接写在类当中 2.作用范围不一样<重点>***局部 ...
- c# 事实证明,abstract类除了不能用new实例化和类没什么区别
abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不 ...
随机推荐
- IP2726中文规格书
IP2726_AC_FBR 是一款集成多种协议.用于USB-A 和 TYPE-C 双端口输出的快充协议 IC.支持多种快充协议,包括 USB TypeC DFP,PD2.0/PD3.0/PPS ,HV ...
- drf认证、节流、权限、版本
Django rest framework 认证: 作用:验证用户是否登录 在视图类中写上authentication_classes = [ ],这是一个列表 需要实现 authenticate() ...
- jQuery mock.js模拟的使用
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 纯手工撸一个vue框架
前言 vue create 真的很方便,但是很多人欠缺的是手动撸一遍.有些人离开脚手架都不会开发了. Vue最简单的结构 步骤 搭建最基本的结构 打开空文件夹,通过 npm init 命令生成pack ...
- compare-algorithms-for-heapqsmallest
Compare algorithms for heapq.smallest « Python recipes « ActiveState Code http://code.activestate.co ...
- 通过 JFR 与日志深入探索 JVM - TLAB 原理详解
全系列目录:通过 JFR 与日志深入探索 JVM - 总览篇 什么是 TLAB? TLAB(Thread Local Allocation Buffer)线程本地分配缓存区,这是一个线程专用的内存分配 ...
- 前端开发规范之命名规范、html规范、css规范、js规范
在学习编程的时候,每次看到那些整齐规范的代码,心里顿时对这个程序员表示点点好感,有时,比如看到自己和朋友写的代码时,那阅读起来就是苦不堪言,所以,一些基本的开发规范是必须的,是为了自己方便阅读代码,也 ...
- SonarQube+jenkins-自动化持续代码扫描
SonarQube+jenkins-自动化持续代码扫描 1.SonarQube 1.1 SonarQube介绍 1.1.1 SonarQube 工作流程 1. 2 Docker方式安装SonarQub ...
- 22.firewalld
1.firewalld 中常用的区域名称及策略规则 2.firewalld-cmd 命令中使用的参数以及作用 与 Linux 系统中其他的防火墙策略配置工具一样,使用firewalld 配置的防火墙策 ...
- 飞塔5.4和5.6版本IPSec互备冗余测试
主电信.备联通:测试方法:修改诚盈的IPSec,将阶段一电信的对端地址改为错误的. 方法一: 通过静态路由的管理距离:电信设置为10:联通为15.经测试,可以实现自动切换,且电信恢复后 可以切换回电信 ...