2018.3.7java 学习第二天
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 学习第二天的更多相关文章
- 前端学习 第二弹: JavaScript中的一些函数与对象(1)
前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...
- 二、Android学习第二天——初识Activity(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...
- python学习第二讲,pythonIDE介绍以及配置使用
目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...
- python学习第二次笔记
python学习第二次记录 1.格式化输出 name = input('请输入姓名') age = input('请输入年龄') height = input('请输入身高') msg = " ...
- 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】
[中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...
- Learning ROS for Robotics Programming - Second Edition(《ROS机器人编程学习-第二版》)
Learning ROS for Robotics Programming - Second Edition <ROS机器人编程学习-第二版> ----Your one-stop guid ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第二周
学习第二周(Java基本程序设计结构) 这一周,着重学习了Java的简单程序设计实现及运行,通过自己操作,发现Java的程序语法大面 ...
- oracle学习 第二章 限制性查询和数据的排序 ——03
这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7 怎样使用转义(escape)操作符 ...
- Python学习-第二天-字符串和常用数据结构
Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...
随机推荐
- (一)如何理解java面向对象编程
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...
- 修改springfox-swagger源码,使example中时间格式默认为“yyyy-MM-dd HH:mm:ss”
修改swagger源码,使example中时间格式默认为"yyyy-MM-dd HH:mm:ss" 前言 简单点说,在swagger中,怎么能针对以下vo中的java.util.D ...
- vuex状态管理详细使用方法
1安装:vue ui或cnpm install vuex 2/使用import vuex from 'vuex' vue.use(vuex) var store = new Vuex.store({ ...
- 如何把当前时间戳转化为时间格式HH:MM:SS
获取当前时间戳 var timestamp = new Date().getTime() 获取当前时间(从1970.1.1开始的毫秒数) // 创建一个函数function timestampToTi ...
- 如何让OKR实践变得更简单一些
什么是OKR 近几年OKR的概念在国内开始流行起来了,之前公司也有人想实施OKR,但现在看来之前的OKR实施者只是在哪儿看了一下OKR的资料,本着跟老板邀功的想法比较功利的在推进,所以基本没有效果,今 ...
- Unity3D图像后处理特效——Depth of Field 3.4
Depth of Field 3.4 is a common postprocessing effect that simulates the properties of a camera lens. ...
- vue项目中v-for渲染失败
在项目中,v-for渲染列表失败,无报错,数组有数据.上网查,好多说是因为动态绑定class的原因,但是经过几番测试,都无效果. 在经过不断尝试,搜索,终于找到原因所在. 问题原因:在v-for循环中 ...
- 学习笔记14Js使用技巧
**页面加载完毕时执行一段代码$(fuction(){ initialMethod(); }); *将一个<form>序列化为json对象并传给服务器var postData = $(&q ...
- 使用VM虚拟机安装Linux系统详细流程
最近新换了个电脑,所以需要重新安装虚拟机和Linux系统,话不多说,看流程吧 1.安装vm,这个就不说了,打开VM 2.点击安装虚拟机 3.选择自定义安装 4.选择稍后安装 5.选择要安装的系统 6. ...
- 一道国外前端面试题引发的Coding...
刚刚看到CSDN微信公众号一篇文章,关于国外程序员面试前端遇到的一道测试题,有点意思,遂写了下代码,并记录一下~ 题目是这样的: ['Tokyo', 'London', 'Rome', 'Donlon ...