变量,数据类型和运算符

1.变量是一个数据存储空间的表示,它是储存数据的基本单元。

如何理解这句话,下面用一个表格可以形象的表达:

变量与房间之间的对应关系

房间名称

变量名

房间类型

变量类型

入住的客人

变量的值

通过变量名可以简单快速地找到它存储的数据。将数据指定给变量,就是将数据存储到以别名为变量名的那个房间;调用变量,就是将那个房间中的数据取出来使用。可见,变量是存储数据的

一个基本单元,不同的变量相互独立。

2.Java中常用的数据类型

数据类型

说明

举例

int

整形

用于存储整数,如学员人数,某公司的员工编号,一年的天数,一天的小时数

double

双精度浮点型

用于存储带有小数的数字,如商品的价格,世界银行给其他国家(地区)的贷款金额,员工工资

char

字符型

用于存储单个字符,如性别 "男"或“女”,成绩“优”或“良”

String

字符串型

用于存储一串字符,如员工姓名,产品型号,产品的介绍信息

不同的数据在存储时的所需要的空间各不相同,例如,int型的数值要占四字节,而double型的数值占八字节。其中,int,double,char都是Java定义的关键字。

3.变量声明及使用

语法:

数据类型   变量名;

数据类型可以是Java中定义的任意一种数据类型。比如,要存储一项考试最高分99.5,获得最高分的学生姓名“张良”及性别‘男’。

double   score;   //声明双精度浮点型变量score存储分数;

String    name;   //声明字符串型变量name存储学生姓名;

char     sex;      //声明字符型变量sex存储性别;

变量名 = 值;

给变量赋值,即“将数据存储至对应的内存空间”

score = 99.5;//存储99.5

name = “张三”;//存储“张三”

sex   =‘男’       //存储‘男’

分开的步骤过为繁琐 将以上两个步骤合二为一,在声明一个变量的同时给变量赋值。

数据类型  变量名  =  值;

double  score = 99.5;

String   name  =  “张三”;

char    sex   =    ‘男’;

调用变量。使用存储的变量,称之为“调用变量”。

System.out.println(score); //从控制台输出变量score存储的值

      System.out.println(name); //从控制台输出变量name存储的值

      System.out.println(sex); //从控制台输出变量sex存储的值

注意:变量都必须声明和赋值才能使用!!!

变量命名的规则

变量必须以字母,下划线“-”或“$”符号开头

变量可以包括数字,但不能以数字开头

     除了“-”和“$”符号以外,变量名不能包含任何特殊字符

       不能使用Java语言的关键字,如int ,class,public等

注意:Java语言区分大小写!Java关键字是Java中定义的,有特别意义的标识符,不能用做变量名,类名,包名等。

规范:变量名要简短且清楚的表明变量的作用,可以由一个或多个单词组成,通常第一个单词的首字母大写,其后的单词首字母大写。

      比如 :  int     ageOfStudent;//学生年龄

                   int      ageOfTeacher;//老师年龄

经验:要尽量使用有意义的变量名,且最好使用简短的英文单词。这样日后更容易维护程序,变量的名称要让人一眼就看出这个变量的作用。

常见错误:

1.变量未赋值先使用

         2.使用非法的变量名

           3.变量名重复使用

        以上错误在在执行时均会报错!

运算符

1.赋值运算符

“=”称为赋值运算符。“=”可以将某个数值赋给变量,或是将某个表达式的值赋给变量。表达式就是符号(如加号,减号)与操作数(如b,3等)的组合。例如:

int b;

int a = (b +3) *(b-1);

注意:"="的功能是将等号右边表达式的结果赋给等号左边的变量。

2. 算术运算符

( +   ,   -   ,   *   ,   /  ,   %)

以上是常用的五种算术运算符加,减,乘  ,除,余。特别注意这个取余运算符是求操作数相除的余数。

数据类型转换

包括自动类型数据转换和强制类型转换两种形式

自动类型数据转换的条件是:两种数据类型要兼容,比如整型和浮点型互相兼容。目标类型大于源类型:double类型可以存放int类型数据,因为double类型变量分配的空间宽度足够存储int类型变量。

  强制数据类型转换的语法是:在变量前加上括号,括号中的类型就是要强制转换成的类型。例如

double   a   =    3.1415926;

int       b  =  (int)a;

运行后b的值为:3

boolean类型

有些程序问题需要判断真假,这时就需要boolean数据类型。

"boolean"又称"布尔",所以我们常说布尔类型,boolean是Java中的关键字,所有字母为小写。        boolean类型只有两个值:ture(真),false(假)。

关系运算符

    (>,   >=  ,   <   ,<=   ,==  ,!=)

“==”是比较运算符,比较左右两个值是否相等。特别注意要与前边的“=”区别开,“=”是将右边的值赋给左边!“!=”是不等与的意思

   以上是6种比较关系的关系运算符,比较的结果是一个boolean类型的值,要么是真(true),要么是假(false)。

Java中提供Scanner类,可以实现从控制台获取键盘上输入的信息

具体方法为:Scanner   input =  new   Scanner(System.in);  写完后发现会报错  ,此时必须在Java源代码的第一行写上如下语句:import   java .util. Scanner;或者

import   java .util. *;

< 扩展和补充>

数据的存放:
磁盘、内存卡、U盘、光盘、内存条、固态、机械硬盘等等

简单的信息(临时的信息)纸

人把信息存在大脑

变量怎么在内存中存储

已将数据存储到内存中怎么去找
分配后的内存会有内存地址(内存地址不好记忆)
:通过变量名可以简单快速地找到它存储的数据

Java定义的常用数据类型有哪些?
字节:是计算机信息技术用于计量存储容量的一种计量单位,
也表示一些计算机编程语言中的数据类型和语言字符
8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。
1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间
位:是电子计算机中最小的数据单位。每一位的状态只能是0或1

数据只用0和1两种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节
一个字节等于8位
(一个字节就是一个英语字母这么大 一个汉字的一半)
电脑里面的所有数据都是以二进制数1或0来存储的,一个1或0叫1bit即1位,8位二进制数称为一个字节,即Byte!
一个字符能存储一个中文汉字
一个汉字占用两个字节

术语:位,字节用于描述计算机数据单位或计算机存储单位。这里主要指存储单位
最小的存储单位称为位(bit):
只能容纳两个值(0或1)之一,不能在一个位中存储更多的信息。位是计算机存储的基本单位。
对于一种给定的计算机设计,字(word)是自然的存储单位。
 一个英文字符和英文标点占用一个字节,一个中文字符和中文标点占用2个字节

 字节(byte)是常用的计算机存储单位。
 字节的标准定义:一个字节均为8位。由于上述所讲每个位或者是0或者是1,所以一个8位的字节包含256种可能的0,1组合

java基本数据类型就8种,记住就好了。除了这些都是引用型的了
java四类八种基本数据类型 (占用字节)

在栈中可以直接分配内存的数据是基本数据类型

字节大小
第一类:整型
int(整数类型) 4
byte(字节类型) 1
short(短整形) 2
long(长整形) 8
第二类:浮点型
double(双精度类型 双精度) 8
float(浮点类型 单精度) 4
第三类:逻辑型
boolean(布尔型 他只有两个值1.True 2.False) 1
第四类:字符型
char(字符型) 2

主类型 大小 最小值 最大值
boolean 1位 - -
char 16位 0 2的16次方-1=65535
byte 8位 -128 +127
short 16位 -2的15次方=-32768 +2的15次方-1
int 32位 -2的31次方 +2的31次方-1
long 64位 -2的63次方 +2的63次方-1
float 32位 1.4E-45 3.4028235E38
double 64位 4.9E-324 1.7976931348623157E308

// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("最小值:" + Byte.MIN_VALUE);
System.out.println("最大值:" + Byte.MAX_VALUE);
System.out.println();


// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();

// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();

// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();

// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
//1.4乘于10的负45次方;此处的E并非自然对数,而是10的次方的意思。这是科学计数法的写法
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();

// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();

// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);

类型转换:
自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
1. 不能对boolean类型进行类型转换。
2. 不能把对象类型转换成不相关类的对象。
3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
4. 转换过程中可能导致溢出或损失精度,例如:
int i =128;
byte b = (byte)i;
因为byte类型时8位,最大值为127,所以当强制转换为int类型值128时候就会导致溢出。
5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45

规则一:如果一个操作数为double型,整个表达式都提为double

规则二:满足自动转换类型
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println("char类型和int计算后的值等于"+i2);
解析:c1的值为字符'a',查ascii码表可知对应的int类 型值为97,'A'对应值为65,所以i2=65+1=66
扩展:
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646

强制类型转换:
语法:(类型名)表达式
强制类型转换
1. 条件是转换的数据类型必须是兼容的。
2. 格式:(type)value type是要强制类型转换后的数据类型 实例:
实例
public class QiangZhiZhuanHuan{
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//强制类型转换为byte
System.out.println("int强制类型转换为byte后的值等于"+b);
}
}
隐含强制类型转换
1. 整数的默认类型是 int。
2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。

运算符的优先级
最高 小括号()
最低 赋值=

优先级顺序:算数运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

short a = 1;
short b = 2;
那么 a+b 是什么类型?
答:在java的世界里,如果比int类型小的类型做运算,java在编译的时候就会将它们统一强转成int类型。当是比int类型大的类型做运算,就会自动转换成它们中最大类型那个。

String a1 = "张三";// 000001

String a2 = "张";// 000001

if(a1 == a2){ // 比较的地址
System.out.println("True");
}else{
System.out.println("False");
}

if(a1.equals(a2)){// 比较值是否相等
System.out.println("True");
}else{
System.out.println("False");
}

}

Java中的变量,数据类型和运算符的更多相关文章

  1. Java1变量数据类型和运算符

    day02_变量数据类型和运算符   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 {     public  ...

  2. Java中的变量数据类型补充

    Java中变量的数据类型的补充 变量按照数据类型进行分类 1.基本数据类型 数值型:①整数类型(byte,short,int,long)②浮点型(float,doubbe)③字符型(char)④布尔型 ...

  3. JavaSE-02 变量 数据类型和运算符

    学习要点 掌握变量的概念 掌握常用数据类型 掌握赋值运算符.算术运算符 掌握boolean数据类型和关系运算符 掌握变量的概念 面向过程程序的定义 程序的定义:程序=数据+算法+文档 程序要操作的数据 ...

  4. Java历程-初学篇 Day02变量,数据类型和运算符

    一,数据类型 1,基础数据类型 整型 byte short int long 浮点型 float double 字符型 char 布尔类型 boolean 2,引用类型 String 字符串型 二,变 ...

  5. 疯狂JAVA——第三章 数据类型和运算符

    3.1注释 1.单行注释 2.多行注释 3.文档注释——文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线结束(*/),中间部分都是文档注释,会被提取到API文档中. API文档类似于产 ...

  6. Java Part 001( 03_01_数据类型和运算符 )

    注释 Java语言的注释一共有三种类型,分别是单行注释.多行注释和文档注释. 1. 单行注释 单行注释就是在程序中注释一行代码,在Java语言中,使用双斜线“//”进行单行注释. 2. 多行注释 多行 ...

  7. java2变量数据类型和运算符

      public class jh_11_加加减减运算符 { public static void main(String[] args) { int a = 5,b =2 ; a ++;// 对自身 ...

  8. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  9. 使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果

    查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的变量.数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算 ...

随机推荐

  1. [atAGC055B]ABC Supremacy

    将第$i$个字符在$A->C->B->A$这个环上操作$i$次,而此时的操作也即将$AAA,BBB$或$CCC$变为其中的另一个字符串 通过操作$XXXY->YYYY-> ...

  2. [bzoj5462]新家

    先离线,将询问按照时间排序,维护商店出现和消失 对于每一个询问,先二分枚举答案,假设是ans, 即要求对于区间[l-ans,l+ans],商店的种类数是k(l是询问的位置) (当然需要先将所有位置离散 ...

  3. [bzoj1115]石子游戏

    考虑令$bi=ai-a_{i-1}$,那么每一次操作相当于让$bi-=x$且$b_{i+1}+=x$,相当于从i向i+1移动x个石子,那么容易发现偶数堆没有用处,因为另一方可以用同样的操作,因此问题相 ...

  4. [GYCTF2020]Easyphp

    知识点 反序列化pop链 反序列化字符逃逸 解题过程 www.zip 备份文件获取源码 审计代码构造pop链 <?php Class UpdateHelper{ public $id; publ ...

  5. 一个 Linux 后台程序编程案例分析

    Linux 下的一个进程打开一个日志文件,不定期地往该文件里写入日志.此时可以在控制台使用 mv 命令给该日志文件改个名字或者用 rm 命令把这个日志文件删除掉.Linux 下是允许这么干的!对于改日 ...

  6. iNeuOS工业互联网操作系统,分布式云端控制安全策略和增加实时日志功能

    目       录 1.      概述... 2 2.      平台演示... 2 3.      云端控制策略和应用过程... 2 3.1           云端控制策略... 2 3.2   ...

  7. 洛谷 P6776 - [NOI2020] 超现实树(找性质,神仙题)

    洛谷题面传送门 nb tea 一道! 首先考虑怎样入手分析这个看似非常不可做的问题.首先题目涉及高度无穷的树,根本枚举不了.不过我们冷静一下就会发现,如果我们记 \(mx=\max\limits_{i ...

  8. [ARC101C] Ribbons on Tree

    神仙的容斥题与神仙的树形DP题. 首先搞一个指数级的做法:求总的.能够覆盖每一条边的方案数,通过容斥可以得到\(\text{ans}=\sum\limits_E{(-1)^{|E|}F(E)}\).其 ...

  9. Netty | 第1章 Java NIO 网络编程《Netty In Action》

    目录 前言 1. Java 网络编程 1.1 Javs NIO 基本介绍 1.2 缓冲区 Buffer 1.2 通道 Channel 1.3 选择器 Selector 1.4 NIO 非阻塞网络编程原 ...

  10. Hive(八)【行转列、列转行】

    目录 一.行转列 相关函数 concat concat_ws collect_set collect_list 需求 需求分析 数据准备 写SQL 二.列转行 相关函数 split explode l ...