java 学习的第二天,首先我们要学习的是声明变量,在程序中,我们必须先声明变量,然后才可以去使用之,那么变量究竟是什么呢?

  在很多课本上,有很多的定义诸如:“变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。”以上是百度百科对于变量的定义,实际上这样的解释在很大程度上让读者根本看不懂,所以在这里,我想用浅显的人类语言给解释一下,如果不太准确,欢迎来喷。变量故名思议就是可以变化的量,与之相对应的自然是常量,那就是不变的量,我们在数学中学过诸多的方程式,比如 x+1=y,x 可以是1,可以是2,可以是3,也可以是任意数,当 x 为1的时候,y 为2,当 x 为2的时候,y 为3,那么 x 和 y 就是变量,是可以变的量,而方程式中的那个1就是常量,因为它是不变的,那么程序中的变量是什么呢,程序中的变量也是一个可以变化的量,它现在可以为1,伴随着程序的执行,它可能就变为2了,看到这里,初学者可能还是不太明白,我再举个例子,你可以把变量理解为一个盒子,在这个盒子中,可以放一个值,可以为1,也可以为2,随时是可以改变的,如果还是云里雾里,那也没关系,继续看下去,看完本文你就明白了。

  在java 中,如果你要用到一个变量,那么你必须先声明之,要声明一个变量,那你必须先了解 java 的数据类型,不同数据类型的声明用到的关键词是不一样的,关于数据类型,请看下图,

1)如果你要声明的是一个整数,你可以用 byte,short,int,或者 long,其区别如下:

四种整数类型(byte、short、int、long):    byte:8 位,用于表示最小数据单位,如文件中数据,-128~127    short:16 位,很少用,-32768 ~ 32767    int:32 位、最常用,-2^31-1~2^31  (21 亿)    long:64 位、次常用    注意事项:    int i=5; // 5 叫直接量(或字面量),即 直接写出的常数。    整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l。    小于 32 位数的变量,都按 int 结果计算。    强转符比数学运算符优先级高。

比如 int age=25;

2)如果你要声明一个小数,那么你可以用 float 或者 double,两种浮点数类型(float、double):    float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。    double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾    注意事项:    二 进 制 浮 点 数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)    尾数:  . 1010100010   指数:1010   基数:2    浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X    float  的精度没有 long 高,有效位数(尾数)短。    float  的范围大于 long  指数可以很大。    浮点数是不精确的,不能对浮点数进行精确比较。

比如:double shenGao=1.77;

3)如果你要声明的变量是用来存放一个字符,那么你就要用 char,一种字符类型(char):    char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。    注意事项:    不能为 0个字符。    转义字符:\n  换行  \r  回车  \t Tab 字符  \" 双引号  \\ 表示一个\    两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。

比如 char ziMu=‘a’;

4)如果声明的变量只有是或非,那么就要用到布尔类型了 boolean:true 真  和 false 假。比如 boolean a=true;

5)如果你要声明的变量是用来存储字符串,要用到 String。比如 String a=“你好,世界!”;这里要注意 String 的 “S”是大写的;

  上面说了这么多,那么问题来了,我们为什么要用到这么多声明方式呢?这就又回到了我们最初对于变量的定义:

  变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

  到这里,各位应该对于 java 的变量有一定的了解了吧,那么接下来我们讲一下对于变量名称的命名规范。像之前的 int i=5;int age=25;double shenGao=1.77;这一些例子中,i、age、shenGao 这些变量,名字是不是随便起的呢?其实不是的,命名也是有规范的:

  1.变量名的首字母只可以是字母(a-z,A-Z)、下划线_、美元符$这三个;

  2.变量名的其他位置可以为字母(a-z,A-Z)、下划线_、美元符$或者数字;

  3.变量名不可以重复,之前声明了变量 a,那么之后不可再次声明变量 a;

  4.严格区分大小写,比如变量 age 与变量 Age 是两个不同的变量;

  5.变量必须有初始值;

  6.变量名臣不可以使用 java 关键字,比如你不可以声明 int int=1;你不能给一个变量起名为 int,当然也不可以给变量起名为 String 或者 double 等,详情请参阅下表,表中的单词均不可以作为变量名,因为它们在 java 中都具有各自的作用;

  7.强烈建议起名用英文,而且是与你要写的变量相关,如果你要声明的变量是年龄,那么你可以声明 age,如果声明的变量是 String 字符串用户名字,那么变量名可以为 userName,这样可以增加代码的可读性,有助于养成良好的代码习惯。

  

2018.3.7java 学习第二天的更多相关文章

  1. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  2. 二、Android学习第二天——初识Activity(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...

  3. python学习第二讲,pythonIDE介绍以及配置使用

    目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...

  4. python学习第二次笔记

    python学习第二次记录 1.格式化输出 name = input('请输入姓名') age = input('请输入年龄') height = input('请输入身高') msg = " ...

  5. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】

    [中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...

  6. Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)

    Learning ROS for Robotics Programming - Second Edition <ROS机器人编程学习-第二版> ----Your one-stop guid ...

  7. 201671010140. 2016-2017-2 《Java程序设计》java学习第二周

                                 学习第二周(Java基本程序设计结构)      这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...

  8. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  9. Python学习-第二天-字符串和常用数据结构

    Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...

随机推荐

  1. python学习-文件I/O

    12.2使用os.path操作目录 # os.path_test.py import os import time print(os.path.abspath("abc.txt") ...

  2. pycharm中debug的使用

    1.未打断点运程序,输出全部结果 2.打断点后,点击debug,代码执行到断点前停止(断点所在行不执行) 3.step over,是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子 ...

  3. ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  4. 玩转OneNET物联网平台之HTTP服务③ —— OneNet智能灯 HTTP版本

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  5. 写了那么久的Python,你应该学会使用yield关键字了

    写过一段时间代码的同学,应该对这一句话深有体会:程序的时间利用率和空间利用率往往是矛盾的,可以用时间换空间,可以用空间换时间,但很难同时提高一个程序的时间利用率和空间利用率. 但如果你尝试使用生成器来 ...

  6. django-Views之类视图 (六)

    book/urls.py from django.urls import path from . import views urlpatterns = [ path('',views.IndexVie ...

  7. 盘点飞思卡尔i.MX多媒体处理器前世今生 (转)

    现如今,移动处理器领域,大家关注最多的是德州仪器.高通.展讯.MTK,甚至包括Intel,但是请别忘记飞思卡尔,他的i.MX处理器已经发展到第六代. 那么我们今天就来盘点下i.MX的前世今生吧. i. ...

  8. 数据存储之非关系型数据库存储----MongoDB存储

    MongoDB存储----文档型数据库 利用pymongo连接MongoDB import pymongo client = pymongo.MongoClient(host='localhost', ...

  9. CTR@因子分解机(FM)

    1. FM算法 FM(Factor Machine,因子分解机)算法是一种基于矩阵分解的机器学习算法,为了解决大规模稀疏数据中的特征组合问题.FM算法是推荐领域被验证效果较好的推荐算法之一,在电商.广 ...

  10. makefile中":="和“=”的区别

    在makefile中,经常能看到这种赋值方式: MyNumber := 这种方式洋名叫做expansion assignment, 翻译过来叫扩展赋值, 我一般就叫冒号等号.这位同学就问了,那么它和普 ...