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. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  2. ESP8266开发之旅 网络篇⑮ DNSServer——真正的域名服务

    1. 前言     Arduino for esp8266中有两个DNS服务相关的库: ESP8266mDNS库 这个库是mDNS库,使用这个库的时候ESP8266可以在AP模式或是以STA模式接入局 ...

  3. 解决Dubbo 2.7.3版本使用ConfigCenterConfig集成Apollo No Provider found的问题

    Dubbo 2.7.3 集成Apollo 问题描述 Dubbo 2.7.3支持配置中心外部化配置, 因此只需要定义一个ConfigCenterConfig的Bean. @EnableDubbo(sca ...

  4. JSP HTML 各种 乱码 解决方法|jsp include html乱码|include 乱码|MyEclipse 中文乱码

    笔者花了一整天研究这个问题 .最终解决了所有的中文乱码问题. 不用 写 过滤器,不用改 tomcat 的配置文件 笔者使用的 软件是  MyEclipse2013 professional 版 JSP ...

  5. Java多线程编程(五)定时器Timer

    一.定时器Timer的使用 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类确实TimerTask类,执行计 ...

  6. Spring为IOC容器注入Bean的五种方式

    一 @Import导入组件,id默认是组件的全类名 //类中组件统一设置.满足当前条件,这个类中配置的所有bean注册才能生效: @Conditional({WindowsCondition.clas ...

  7. ios下app内嵌h5页面是video适配问题

    ios下做新闻详情用h5页面实现然后打包到app中,其中新闻详情页会有视频,安卓下video的poster可以做到适应video大小,但是ios下会按照poster图片大小将video等比撑大,但是视 ...

  8. Spring Boot (日志篇):Log4j2整合ELK,搭建实时日志平台

    一.安装JDK1.8以上版本 1.从Oracle官网上下载Linux x64版本的 下载地址: http://www.oracle.com/technetwork/java/javase/downlo ...

  9. CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档

    ----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...

  10. 利用python的requests和BeautifulSoup库爬取小说网站内容

    1. 什么是Requests? Requests是用Python语言编写的,基于urllib3来改写的,采用Apache2 Licensed 来源协议的HTTP库. 它比urllib更加方便,可以节约 ...