今日内容介绍

1、变量

2、 运算符

  变量

1.1、变量概述

前面我们已经学习了常量,接下来我们要学习变量。在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点!

什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!

结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

1.2 计算机存储单元

变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。

当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。你可能会说,如果程序只需要1个位的空间,系统分派不能只分派1个位吗?答案是不能!这就像你只需要1支烟,你到商店去买烟,商店分派的最小单元是1盒(20支),他不可能卖给你1支烟。

你可能会想,1个字节(8位)可以存储很大的数值了,1位最大是9那么8位最大值为99999999。你错了,因为计算机是采用二进行存储的,而不是我们生活中常用的十进制。所以1个字节存储的最大数据是11111111的二进制数。

除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

1B(字节) = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

1PB = 1024TB

1.3 基本类型之4类8种

大衣柜不能用来装载水,水杯也不能用来装载衣裤。这说明不同的容器装载不同的物品。变量也是如此,在创建变量时需要指定变量的数据类型,例如整型变量、浮点型变量等等。

结论:变量必须要有明确的类型,什么类型的变量装载什么类型的数据。

水杯是用来装水的,那么水杯能装多少水呢?一吨?我们知道水杯在创建时不只确定了要装载的是水(数据类型),而且还确定了能装多少水(数据类型的具体种类)。变量也是如此,需要指定变量能装载什么类型的数据,同时也要指定变量能装载多大的数据。

Java中基本类型一共4类,把这4类展开后共8种基本类型。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。

1.4 常量与类型

前面我们说过100是整数常量,但它是byte、short、int、long中的哪一种呢?下面我们来聊聊这一常量类型的问题。

整数常量可以根据所在范围来确定类型,例如100在-128~127之间,所以他是byte类型;500在-32768~32767之间,所以它是short类型;100000在-2147483648~2147483648之间,所以它是int类型。java中默认的整数类型是int类型

你可能会认为12345678901在-263~263-1之间,所以它是long类型。注意了,这是错误的!!!在Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。也就是说12345678901不在-2147483648~2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L、12345678901L都是long类型的常量。

浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型

3.14没有后缀,所以它是double类型;

5.28D为double类型;

1.26F为float类型。

1.5 定义变量(创建变量)

定义变量的语法格式:

数据类型  变量名  =  数据值;
int a = ;

其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-2147483648~2147483648。

其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量(内存中的小盒子)。

其中“=100”是给变量赋值,即向a变量中写入100(变量是个小盒子,现在小盒子中保存的是100)。注意,给变量赋的值一定要与类型符合,也就是说int类型只能存储整数,而且必须是在-2147483648~2147483648范围内的整数。100满足了这两个条件,所以是正确的。

练习:

Variabe.java

/*
变量定义格式:
数据类型 变量名 = 变量值;
*/
public class Variable {
public static void main(String[] args) {
int a = ;
double b = 3.14;
char c = 'z';
String s = "i love java"; a = ;
System.out.println(a);
}
}

1.6 变量使用的注意事项

我们使用变量的时候需要注意,要满足变量的使用规则才可以使用的,我们来看看都有哪些注意事项。

l 变量使用的注意事项

l 变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

public static void main(String[] args) {
int x;
x = ; //为x赋值20
System.out.println(x);//读取x变量中的值,再打印
}

l 变量使用时有作用域的限制。

public static void main(String[] args) {
int x = ;
{
int y = ;
}
System.out.println(x);//读取x变量中的值,再打印
System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量
}

l 变量不可以重复定义。

public static void main(String[] args){
int x = ;
double x = 5.5;//编译失败,变量重复定义
}

1.7 数据类型转换

 不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。下面我们来学习一下类型转换

其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的操作

转换的过程中,数据遵循一个原则:

范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)

那么,大家还记得每种类型表示数据的范围吗?忘记了不要紧,我来告诉大家,将各种数据类型按照数据范围从小到大依次列出:

byte -> short -> int -> long -> float -> double

关于数据类型转换有两种方式,我们来学习一下:

l 自动类型转换

表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

自动类型转换格式:

范围大的数据类型 变量 = 范围小的数据类型值;

如:

        double d = ;

int i = ;
double d2 = i;

l 强制类型转换

表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

强制类型转换格式:

范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

如:

int  i = (int)6.718;   //i的值为6

double d = 3.14;
int i2 = (int)d; //i2的值为3 

Java基础语法(第1章变量)的更多相关文章

  1. 第2天 Java基础语法

    第2天 Java基础语法 今日内容介绍 变量 运算符 变量 变量概述 前面我们已经学习了常量,接下来我们要学习变量.在Java中变量的应用比常量的应用要多很多.所以变量也是尤为重要的知识点! 什么是变 ...

  2. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  3. 第一章 –– Java基础语法

    第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...

  4. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  5. Java基础语法(2)-变量

    title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...

  6. 2、Java 基础语法标识符、修饰符、变量、 数组、枚举、关键字

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  7. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  8. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  9. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

随机推荐

  1. [BZOJ4373]算术天才⑨与等差数列(线段树)

    [l,r]中所有数排序后能构成公差为k的等差数列,当且仅当: 1.区间中最大数-最小数=k*(r-l) 2.k能整除区间中任意两个相邻数之差,即k | gcd(a[l+1]-a[l],a[l+2]-a ...

  2. [BZOJ 3720][JZYZOJ 2016]gty的妹子树 强制在线 树分块/树套树

    jzyzoj的p2016 先码着,强制在线的树分块或者树套树?关键是我树分块还在入门阶段树套树完全不会啊摔   http://blog.csdn.net/jiangyuze831/article/de ...

  3. 【BFS】【map】hdu5925 Coconuts

    题意:一张n*m的网格图(n和m可以达到10^9),其中K个点是障碍物(不超过200个),问你没有被障碍物占据的点形成了几个连通块?并且输出各个连通块的大小. 容易证明,大小超过40000的连通块最多 ...

  4. JBoss 7 配置成windows启动服务

    将Jboss7 server 配置成一个windows启动服务的两个文件,部署步骤如下: 1.    先检查是否配置java_home和jboss_home的环境变量,如没配置上先配置,如我的是JBO ...

  5. Android Studio 2.3更换默认的ConstraintLayout布局

    首先打开你的Android Sudio安装目录,我的为D:\Program Files\Android\Android Studio,进入到以下文件夹\plugins\android\lib\temp ...

  6. [转]Eclipse 项目转移到Android Studio遇到的问题

    1.Android Studio直接导入项目是copy原项目的,无法纳入代码管控 解决方案: 英文地址:http://developer.android.com/sdk/installing/migr ...

  7. kafka_2.11-0.8.2.1单机版安装

    1.下载kafka安装包wget http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz 2.复制到安装目录cp kaf ...

  8. Reflector反编译.NET文件后修复

    反编译后的工程文件用VS2010打开后,在打开窗体时会出现一系列错误提示: 第一种情况: “设计器无法处理第 152 行的代码: base.AutoScaleMode = AutoScaleMode. ...

  9. 【资料】wod食物

    注意:1. 除非另外注明, 所有效果持续时间为整个地城2. 某几样食物若使用午饭时间技能, 效果只有LV1 (lunch level -25), 请小心服用. X技能等级 = 技能等级 焖豆属性奖励体 ...

  10. 【实例图文详解】OAuth 2.0 for Web Server Applications

    原文链接:http://blog.csdn.net/hjun01/article/details/42032841        OAuth 2.0 for Web Server Applicatio ...