c++变量重新赋值_Java基础二:一文讲透变量与数据类型
什么是变量:
java是强类型语言,所有的变量都必须先声明才能使用,声明变量时必须指定变量存储信息的类型。变量的声明一般使用名值对的方式,包含变量名和变量值,通过变量名可以引用变量值,也可以修改变量名的值。
首先,声明一个变量的基本格式是:
数据类型 变量名;
int type; boolean flag; float score;
上面提到变量的声明一般使用名值对的格式,具体格式如下:
数据类型 变量名 = 数值;
int box=100; int a=300; boolean f=true;
可以在同一行同时声明多个同一类型的变量,这样可以简化我们的代码,提高可阅读性,具体格式如下:
int a,b,c;
上面例子中,同时声明了三个整型变量(a,b,c),变量和变量之间使用英文逗号(,)隔开。当然我们也是可以想上面介绍的,为变量赋予初始值。如下面这个例子:
//变量a和变量c分别赋予了初始值。 int a=100,b,c=20;
变量声明后,我们就可以通过变量名引用变量值或者修改变量名所存储的值了。在同一作用域下,变量只能声明一次,但是可以多次的赋值,不断根据程序的需要修改变量原来存储的变量值。具体格式如下:
变量名 = 新的数值;
引用该变量名的值就更简单了,直接使用变量名即可。如下面这个例子:
//声明变量a,并同时赋初始化值是100; int a=100; //引用变量a,这时候输出的是变量所存储的值,应该是100 System.out.println(a); //为赋值200 a=200; //再次引用变量a,输出的也是变量所存储的值,但这时候应该是200了 System.out.println(a);
三、变量的命名规范
Java语言中,变量命名要符合一定规则。标识符是赋予变量、类或方法的名称。标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字。标识符是大小写区别对待的并且未规定最大长度。
有效标识符如下:
identifier , userName ,User_name , _sys_varl ,$change
无效标识符如下:
123abc , abc¥5 ,abc ert , add34)
java的变量命名还有很多约定俗成的习惯,虽然你不按照这样的命名习惯也不会出现语法错误,不过为了提高程序的可读性,我们建议你还是使用下面的这几个习惯。
基本数据类型
基本数据类型:
基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:
整数类型:byte,short,int,long
浮点数类型:float,double
字符类型:char
布尔类型:boolean
Java定义的这些基本数据类型有什么区别呢?要了解这些区别,我们就必须简单了解一下计算机内存的基本结构。
计算机内存的最小存储单元是字节(byte),一个字节就是一个8位二进制数,即8个bit。它的二进制表示范围从00000000
~11111111
,换算成十进制是0~255,换算成十六进制是00
~ff
。
内存单元从0开始编号,称为内存地址。每个内存单元可以看作一间房间,内存地址就是门牌号。
0 1 2 3 4 5 6 ...┌───┬───┬───┬───┬───┬───┬───┐│ │ │ │ │ │ │ │...└───┴───┴───┴───┴───┴───┴───┘
一个字节是1byte,1024字节是1K,1024K是1M,1024M是1G,1024G是1T。一个拥有4T内存的计算机的字节数量就是:
4T = 4 x 1024G = 4 x 1024 x 1024M = 4 x 1024 x 1024 x 1024K = 4 x 1024 x 1024 x 1024 x 1024 = 4398046511104
不同的数据类型占用的字节数不一样。我们看一下Java基本数据类型占用的字节数:
┌───┐ byte │ │ └───┘ ┌───┬───┐ short │ │ │ └───┴───┘ ┌───┬───┬───┬───┐ int │ │ │ │ │ └───┴───┴───┴───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┐ long │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┴───┴───┴───┘ ┌───┬───┬───┬───┐ float │ │ │ │ │ └───┴───┴───┴───┘ ┌───┬───┬───┬───┬───┬───┬───┬───┐double │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┴───┴───┴───┘ ┌───┬───┐ char │ │ │ └───┴───┘
byte
恰好就是一个字节,而long
和double
需要8个字节。
整型
对于整型类型,Java只定义了带符号的整型,因此,最高位的bit表示符号位(0表示正数,1表示负数)。各种整型能表示的最大范围如下:
byte:-128 ~ 127
short: -32768 ~ 32767
int: -2147483648 ~ 2147483647
long: -9223372036854775808 ~ 9223372036854775807
我们来看定义整型的例子:
15
=0xf
=0b1111
。
浮点型
浮点类型的数就是小数,因为小数用科学计数法表示的时候,小数点是可以“浮动”的,如1234.5可以表示成12.345x102,也可以表示成1.2345x103,所以称为浮点数。
下面是定义浮点数的例子:
float f1 =
float f2 =
double d =
double d2 = -
double d3 =
对于float
类型,需要加上f
后缀。
浮点数可表示的范围非常大,float
类型可最大表示3.4x1038,而double
类型可最大表示1.79x10308。
布尔类型
布尔类型boolean
只有true
和false
两个值,布尔类型总是关系运算的计算结果:
boolean b1 =
boolean b2 =
boolean isGreater =
int age =
boolean isAdult = age >=
Java语言对布尔类型的存储并没有做规定,因为理论上存储布尔类型只需要1 bit,但是通常JVM内部会把boolean
表示为4字节整数。
字符类型
字符类型char
表示一个字符。Java的char
类型除了可表示标准的ASCII外,还可以表示一个Unicode字符:
注意char
类型使用单引号'
,且仅有一个字符,要和双引号"
的字符串类型区分开。
引用类型
除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String
字符串:
String s = "hello";
引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置,后续我们介绍类的概念时会详细讨论。
常量
定义变量的时候,如果加上final
修饰符,这个变量就变成了常量:
final
double r =
double area = PI * r * r;
常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误。
常量的作用是用有意义的变量名来避免魔术数字(Magic number),例如,不要在代码中到处写3.14
,而是定义一个常量。如果将来需要提高计算精度,我们只需要在常量的定义处修改,例如,改成3.1416
,而不必在所有地方替换3.14
。
根据习惯,常量名通常全部大写。
var关键字
有些时候,类型的名字太长,写起来比较麻烦。例如:
new StringBuilder();
这个时候,如果想省略变量类型,可以使用var
关键字:
var sb =
编译器会根据赋值语句自动推断出变量sb
的类型是StringBuilder
。对编译器来说,语句:
var sb =
实际上会自动变成:
new StringBuilder();
因此,使用var
定义变量,仅仅是少写了变量类型而已。
变量的作用范围
在Java中,多行语句用{ }括起来。很多控制语句,例如条件判断和循环,都以{ }作为它们自身的范围,例如:
只要正确地嵌套这些{ },编译器就能识别出语句块的开始和结束。而在语句块中定义的变量,它有一个作用域,就是从定义处开始,到语句块结束。超出了作用域引用这些变量,编译器会报错。举个例子:
定义变量时,要遵循作用域最小化原则,尽量将变量定义在尽可能小的作用域,并且,不要重复使用变量名。
小结:
Java提供了两种变量类型:基本类型和引用类型
基本类型包括整型,浮点型,布尔型,字符型。
变量可重新赋值,等号是赋值语句,不是数学意义的等号。
常量在初始化后不可重新赋值,使用常量便于理解程序意图。
扫码关注我们更多精彩等待你发现
c++变量重新赋值_Java基础二:一文讲透变量与数据类型相关推荐
- c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
今天给大家带来的是初级Java基础部分的知识:包括初始Java.变量.常量.数据类型.运算符.各种选择结构.循环结构.数组等Java的基础语法部分!最后还有****循环结构的进阶****,步骤超详细, ...
- py哪个函数可以返回输入的变量类型_[Python基础]二、pycharm,python变量
2.1 Python简介 Life is short,you need Python (人生苦短,我用Python) 解释器: 将其他语言翻译成机器语言的工具,称为编译器 编译器的翻译方法有两种: 编 ...
- c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...
推荐: 从面试到入职到离职,我在B站工作的30天时光 爱了爱了,Alibaba顶级MySQL调优手册到手,加薪妥了 爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了 本文 ...
- java中数组的返回值是什么类型_java基础学习:数组的常用操作与基础二维数组用法、及基本数据类型和引用数据类型赋值的区别...
一.Arrays jdk中为了便于开发,给开发者提供了Arrays类,其中包含了很多数组的常用操作.例如快速输出.排序.查找等. 1.数组的常用方法 1.数组以字符串形式的输出,2.sort对数组排序 ...
- java基本数据类型的标识符_java基础(一)-标识符、变量、基本数据类型及转换、运算符及表达式...
一.标识符 二.关键字 三.JAVA基础数据类型 3.1.常量 3.2.变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行.一个.e ...
- java long 除法运算_java基础知识学习文档二
一.基本概念 1 对象: 对象是Java类的一个实例,它有状态.属性.行为.如:一个人,具体的某一个人是人类的一个实例.这个人他有名字.性别.年龄等属性,他可以吃饭.说话.走路等行为. 2 类: 类是 ...
- java的静态变量怎么赋值_java static变量可以赋值吗?
java static变量可以赋值吗? 可以赋值的.static的主要作用是静态成员,指该变量的实例在内存中之存放一次.赋值是可以随便改的. java中static关键字 static是java中非常 ...
- java什么变量用作英文_Java基础之变量-什么是变量
什么是变量: 在计算机语言中用来存储计算结果或表示值 如何命名Java变量: 如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理-变量名! 变量命名要符合以下规则: 首字母 ...
- Java成员变量与类变量_Java基础随记2-成员变量和类变量的区别
由static修饰的变量称为静态变量,其实质上就是一个全局变量.如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰:没有被静态修饰的内容,其实是属于对象的特殊描述. 不同的对象的实例变量将被分 ...
最新文章
- 【青少年编程】【四级】绘图程序优化
- 语义分割--Not All Pixels Are Equal:Difficulty-Aware Semantic Segmentation via Deep Layer Cascade
- WhatFontIs - 字体百科全书,没有不认识的字体
- Linux 相关发音
- C# 向Main函数传递参数(程序启动时传递参数)
- 开源分享 Unity3d客户端与C#分布式服务端游戏框架
- Java实现Huffman哈夫曼树(数组实现)
- Georgia and Bob(Poj 1704)Nim 博弈
- Linux 系统应用编程——网络编程(TCP 协议三次握手过程)
- FreeSql (二十八)事务
- java中asl_带你认识绕不开的ASLR
- sklearn adaboost_集成学习-从零推导和实现adaboost与3D可视化
- 关于android 双击事件
- 关于推送系统设计的一些总结与思考(三)
- Python+OpenCV:直方图均衡化(Histogram Equalization)
- Myeclipse打包生成jar文件 A exception has Occured问题解决
- 戴尔Latitude5285笔记本触摸板失灵的原因
- 可复制的领导力(来自樊登读书会)
- 数学建模之差分方程模型详解
- zabbix简单安装部署
热门文章
- python PyQt5 QtWidgets.QWidget.size()函数 QSize
- python os.removedirs() 和shutil.rmtree()(os.removedirs用于删除非空文件夹和子文件夹、shutil.rmtree用于删除文件夹下所有文件夹和文件)
- python numpy np.full(shape, fill_value, dtype=None, order='C')函数 以指定数值填充指定形状的数组
- 如何将yolo的标注(annotations).txt 坐标转换成tensorflow-yolov3(YunYang1994)的.txt 标注坐标?
- PAT甲级题目翻译+答案 AcWing(排序)
- 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程
- C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt
- 监护仪系统都是Linux吗,基于Linux和MiniGUI的心电监护仪设计
- c语言万历年系统设计报告,C语言编写单片机万历系统课程设计报告分.doc
- 安装mysql Install/Remove of the Service Denied!错误的解决办法