理财p2p网站开发,广告设计公司英文介绍,网络营销项目策划方案,黄金app作者#xff1a;孙玉昌#xff0c;昵称【一一哥】#xff0c;另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在之前的文章中#xff0c;壹哥给大家讲解了Java的第一个案例HelloWorld#xff0c;并详细给大家介绍了Java的标识符#xf…作者孙玉昌昵称【一一哥】另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在之前的文章中壹哥给大家讲解了Java的第一个案例HelloWorld并详细给大家介绍了Java的标识符而且现在我们也已经知道该使用什么样的工具进行Java开发。那么接下来壹哥会集中精力带大家学习Java的各种细节内容比如什么是变量Java里有哪些数据类型请大家赶紧拿出小本本做好笔记哦。-----------------------------前戏已做完精彩即开始----------------------------全文大约【4000】字不说废话只讲可以让你学到技术、明白原理的纯干货本文带有丰富案例及配图视频让你更好地理解和运用文中的技术概念并可以给你带来具有足够启迪的思考......一. 变量简介仔细回想一下在你还没有学习Java之前你有没有听过【变量】这个词第一次听到【变量】这个词是在什么时候有些童鞋可能会说我以前没听过【变量】其实大部分人都听过我们在中学时在数学课上就有【变量】这个词了比如一个常见的方程式yx21。这里的x与y就是变量请大家回忆一下数学里x变量表示什么含义在我们的Java语言中同样存在着【变量】的概念并且该概念与数学方程里的变量含义类似。1. 概念在Java中变量是程序里最基本的存储单元它由变量名、变量类型、作用域组成。从本质上来说变量其实就是内存里的一小块存储区域该区域只能存储声明变量时指定类型的数据。我们创建使用每个变量前必须先声明在内存中申请空间然后对其进行初始化赋值接着就可以通过变量名来访问和使用这块内存区域了。进一步解释一下变量其实就是一个可以存储特定类型数据的容器。这个容器在内存中有自己的地址为了方便地找到这个地址我们可以给每个地址起个”名字“这就是”变量名“。每个变量的数据类型都是固定不变的但变量中对应数据的具体内容却是可以改变的所以”变量“指的就是内容可以改变的量。如果你对上面关于变量的解释还不明白壹哥再来给你举个更通俗易懂的栗子。假如我们是搞化学的现在你手里有很多种化学元素该如何存储它们我们知道这些化学元素的性质各不相同不能一股脑地都放在一起必须分类存储。我们可以找到一些适合存储这些化学元素的”瓶子“(容器)每种瓶子只能存储不同类型(数据类型)的化学元素不能混装否则就会发生化学反应引起爆炸(报错)。并且每种瓶子都有自己的存储大小(容量)不可能一个瓶子里存储无限多的化学元素。现在的瓶子有很多你要经常找到并使用这些瓶子就需要给这些瓶子编号命名(变量名)并且要有对应的存放位置(内存地址)不能随便乱放。现在你搞懂变量的含义了吗2. 分类在Java中根据不同的分类标准变量也被分成了很多种如果是按照数据类型来划分变量可以分为基本类型的变量和引用类型的变量。如果是按照作用范围来划分变量可以分为局部变量、成员(实例)变量和类(静态)变量。当然现在你可能对什么是基本类型、引用类型、局部变量、成员变量、类变量等概念还都很懵逼。请暂时不用管这些脑子中有个印象即可壹哥在后面会再详细给你介绍这些概念都是怎么回事我们先集中精力来学习变量的定义与使用案例。二. 变量的定义与案例1. 命名规则与规范壹哥在前面讲解Java标识符时给大家讲过Java的标识符有一定的命名规则和规范。并不是你想怎么命名就怎么命名必须遵循一定的要求。我们再来回顾一下Java标识符的命名规则与规范规则如下①. Java标识符由 字母(含英、中、日、俄等)、数字、下划线_ 和 美元符号$ (音: dollar)组成如age、G7、_value、$salary②. 不能以数字开头如123abc③. 严格区分大小写如class与Class是不同的④. 长度无限制(一般不要超过15个字符)⑤. 不能是Java中的保留字和关键字。Java的变量名也是一种标识符所以必须遵循以上这些规则另外还有一些命名规范需要我们尽量遵守比如变量名尽量要做到见名知意。在实际开发时尽量不要写a、b、c这种名称变量名的首字母要小写。如果名称由多个单词组成第一个单词的首字母应小写剩下的单词首字母应大写(驼峰式命名法)例如 xxxYyyZzz、numCounter。复习完变量的命名规则与规范后我们就开始定义变量吧。2. 基本语法在Java语言中所有的变量在使用前都必须先声明再使用否则就会报错。一般定义变量的基本语法格式如下type 变量名1 [ value1][, 变量名2 [ value2] ...] ;这里的type表示Java的数据类型同一条语句中可以用逗号隔开多个同类型的变量。这里的”“等号表示赋值不是通常数学里等号的意思其作用是把”“后面的值赋给前面的变量。语句的最后使用英文的 ; 分号来表示语句结束。3. 实现步骤根据上面的定义语法我们定义一个变量的基本步骤可以分成如下3步1. 声明变量就是申请一块内存地址2.变量初始化就是给变量赋值3.使用变量。虽然变量的定义步骤基本上就是以上这3步但在实际开发时却也有几种不同的具体写法接下来壹哥就通过几个案例来给大家展示不同的变量定义写法。3.1 定义方式一我们首先来看第一种写法这种写法完全符合变量定义的3步走策略但是写起来有点啰嗦。/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo {public static void main(String[] args) {//注意在java中变量一定要初始化后才能使用//变量声明方式1//1.声明变量int a;//2.给变量初始化赋值初始化的意思是第一次给某个变量赋值a 10;//3.使用变量System.out.println(a);}
}在上面的代码中我们定义了一个int整型的变量变量名称为a初始值为10。如果我们不写初始值就相当于系统给它指定了默认值默认值是0。但我们在使用变量之前必须要给变量进行初始化赋值否则编译器就会自动检测出错误从而会报错错误信息如下所示The local variable a may not have been initialized3.2 定义方式二下面是第二种定义变量的写法相比第一种写法简单一些直接把变量的声明和初始化放在一起所以这种方式用的较多。/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo {public static void main(String[] args) {// 注意在java中变量一定要初始化后才能使用//变量声明方式2//1.声明变量和初始化int a 10;//2.使用变量System.out.println(a的值为 a);}
}3.3 定义方式三我们也可以采用以下写法即在一条语句中连续定义多个变量。但大家要注意我们在一条语句中连续定义多个变量时应该给每个变量都进行初始化赋值否则在编译之前开发工具就会直接报错/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo {public static void main(String[] args) {// 注意在java中变量一定要初始化后才能使用//变量声明方式3//连续定义多个变量int a 1,b 3,c 10;System.out.println(a的值为a); System.out.println(b的值为b); System.out.println(c的值为c); }
}3.4 定义方式四我们可以在第3种定义变量的写法基础上进一步简化。同样是把多个变量定义在一条语句内但a、b变量未初始化c变量进行了初始化。这种写法在语法上是没问题的。但a和b这两个变量不能直接使用因为没有初始化如果直接使用会产生错误。c变量可以直接使用因为进行了初始化赋值/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo {public static void main(String[] args) {// 注意在java中变量一定要初始化后才能使用//变量声明方式4//连续定义多个变量int a,b,c 10;//a、b变量未初始化如果直接使用会报错//System.out.println(a的值为 a);//System.out.println(b的值为 b);//c变量初始赋值为10可以直接使用System.out.println(c的值为c); }
}通过上面几个小案例壹哥给大家讲解了变量定义的4种写法。至于你愿意用哪种写法其实都可以这个主要是看个人的写作习惯它们之间并没有特别大的性能差异。4. 进阶案例学习完上面几个最基本的案例之后壹哥再给大家设计几个进阶案例进一步加深对于变量的掌握。4.1 变量重新赋值壹哥在前面跟大家说过变量就是值可以被改变的量所以变量的一个重要特点就是可以重新赋值例如我们先给变量x赋值100再赋值200。/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo02 {//进阶案例public static void main(String[] args) {//定义int类型变量x并赋初始值100int x 100;//打印该变量的值观察是否为100System.out.println(x原值x);//重新给x变量赋值为200改变x的值x 200;//打印该变量的值观察是否为200System.out.println(x新值x);}
}我们第一次定义变量x时需要指定变量的类型int因此定义语句是int x 100;。而第二次重新赋值时因为变量x已经存在了不用再重复定义因此不用再重复指定变量类型int直接使用语句x 200;即可。4.2 变量之间赋值变量不但可以重新赋值还可以把一个变量赋值给另外的变量我们来看下面的例子/*** author 一一哥Sun * QQ2312119590 * CSDN、掘金、知乎找我哦*/
public class VariableDemo02 {//进阶案例public static void main(String[] args) {//定义变量x同时赋值为100int x 100;//打印x的值System.out.println(x x);//变量x赋值给另一个变量y//int y x;//打印y的值//System.out.println(y y);//变量x同时赋值给多个变量int y x, z x;System.out.println(y y,z z);}
}三. 变量原理通过上面的几个案例你现在应该对变量的使用有了基本的掌握。在搞清楚变量该怎么用之后壹哥再简单给大家分析一下变量在内存中的分配情况这也是变量的基本工作原理我们求职时面试官就喜欢考察这一块的内容哦。回想一下我们之前定义变量的基本过程比如int x100;1. 首先需要指明该变量的数据类型比如本文中说到的int整型2.然后要给该变量设置一个变量名比如变量名称x3.接着我们还要给变量赋值比如 x100。在以上定义变量并赋值的过程中x是变量名。JVM虚拟机会给该变量在内存中分配一个位置0x002(这个地址值是我随便写的计算机底层会按自己的规律生成)然后计算机底层就会根据该位置来找到x变量的真实存储位置。这个内存中的地址值相当于是x变量的”门牌号“别人可以根据这个地址值找到x变量。对于基本类型的x变量来说它的整型值100会存储在一个叫做”栈“的结构里关于”栈“的详细内容壹哥会在后面的文章中再单独说明。一句话创建变量时需要在内存中申请一块空间。内存管理系统会根据变量的类型来为变量分配存储空间分配的空间只能用来储存该类型数据。大家可以参考壹哥绘制的示意图来理解整型变量x的内存结构-----------------------------正片已结束来根事后烟----------------------------四. 结语至此壹哥就把变量的基本内容给大家讲解完毕了最后我们再来总结一下今天的重点变量是存放在内存中的一个存储区域该区域有自己的名称和类型变量由变量名、变量类型、作用域组成变量需要先声明、初始化后再使用注意变量的命名规则和规范掌握定义四变量的几种实现写法理解变量的内存分配。如果你还有其他疑问可以在评论区留言或私信壹哥哦。另外如果你独自学习觉得有很多困难也可以加入到壹哥的学习互助群大家一起交流学习。五. 配套视频如果你不习惯阅读技术文章或是对文中的技术概念不能很好地理解可以来看看壹哥帮你筛选出的视频教程。与本文配套的Java学习视频链接如下https://player.bilibili.com/player.html?bvidBV1FK4y1x7Nyp8page8六. 今日作业1. 第一题 变量使用的三要素是什么? 请在评论区给出你的答案。2. 第二题变量的命名规则有哪些请在评论区给出你的答案吧。3. 第三题编写几段代码定义几个变量并赋值输出结果看看是否正确。