Java中的标识符、变量和数据类型
标识符在java程序当中,使用各种编译工具进行代码编写的时候,
有一些单词是蓝色,有的是红色,有的绿色,有的是黑色,
有的是紫色,有的是粉色....
这些不同的颜色代表的含义是什么呢?即不同的标识色
到底什么是标识符呢?
一句话搞定:'凡是程序员自己有权利命名的单词都是标识符。'
标识符可以标识什么?
可以标识: 类名 方法名 变量名 接口名 常量名 ......标识符命名规则
命名规则属于语法机制,必须遵守,'不遵守命名规则标识不符合语法' 这样,'编译器会报错。' 规则1:标识符只能由数字、字母(包括中文)、下划线_、美元符号$组成, 不能含有其它符号。 规则2:标识符不能以数字开头 规则3:关键字不能做标识符。例如:public class static void 这些 都是关键字,关键字是不能做标识符的。附上Java中的关键字图。 规则4:标识符是严格区分大小写的。大写A和小写a不一样。 规则5:标识符理论上是没有长度限制的。命名规范
规范1:见名知意(这个标识符在起名的时候,最好一看这个单词就知道啥意思。) 规范2:遵循驼峰命名方式,什么是驼峰(一高一低,一高一低...) 驼峰有利于单词与单词之间很好的进行分隔 BiaoShiFuTest,这个很好,一眼就能看出来是4个单词。 规范3:类名、接口名有特殊要求 类名和接口名首字母大写,后面每个单词首字母大写。 StudentTest、UserTest ,这是类名、接口名。 规范4:变量名、方法名有特殊要求 变量名和方法名首字母小写,后面每个单词首字母大写。 nianLing(NianLing这样就不符合了。) mingZi(MingZi这样也不符合了。) 规范5:所有'常量'名:全部大写,并且单词和单词之间采用'下划线'衔接。 USER_AGE :用户年龄 MATH_PI:固定不变的常量3.1415926.....命名规则和命名规范有什么区别?
命名规则是语法,'不遵守就会编译报错'
命名规范只是说,'大家尽量按照统一的规范来进行命名,不符合规范也行'
代码是可以编译通过的,但是你的代码风格和大家不一样,这个通常也是不允许的。
规则类似于:现实世界中的法律。
规范类似于:现实世界中的道德。
统一按照规范进行的话,代码的可读性很好。
代码很容易让其它开发人员理解。
字面量
软件在处理数据之前需要能够表示数据,在java代码中 怎么去表示数据呢?在java中有这样的一个概念:字面量。 注意:在java语言中“数据”被称为“字面量”。 10 1.23 true false 'a' "abc" 以上这些都是数据,在程序中都被叫做“字面量”。 字面量可以分为很多种类: 整数型字面量:1 2 3 100 -100 -20 .... 浮点型字面量:1.3 1.2 3.14..... 布尔型字面量:true、false没有其它值了,表示真true和假false 字符型字面量:'a'、'b'、'中' 字符串型字面量:"abc"、"a"、"b"、"中国" 其中字符型和字符串型都是描述了现实世界中的文字: 需要注意的是: 所有的字符型只能使用单引号括起来。 所有的字符串型只能使用双引号括起来。 字符型一定是单个字符才能成为“字符型” 在语法级别上怎么区分字符型和字符串型? 主要看是双引号还是单引号。 单引号的一定是字符型。 双引号的一定是字符串型。变量 什么是变量
1、变量就是系统为程序分配的一块内存单元,这个内存单元是 有名字且拥有特定的属性的。 2、变量用于存放数据,即变量的值,由于该存储单元的值可以改变,故称为“变量” 3、变量拥有特定的类型,类型决定该存储单元的大小以及变量的值的类型和范围 本质来讲,变量就是一段可以操作的内存变量的三要素
对于一个变量来说,包括三要素: 变量的数据类型 变量的名字 变量中保存的值 类型+名字+值 类型决定空间的大小。 起个名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的。) 值是变量保存的数据。变量的声明
变量怎么声明/定义,语法格式是什么?
数据类型 变量名;
例如:
int age;
在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟。)
在java语言中怎么给一个变量赋值呢,语法格式是什么?
记住:使用一个运算符,叫做“=”,这个运算符被称为赋值运算符。
赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。
变量可以声明的时候赋值吗?可以的。
变量的分类1、按照所属的数据类型
基本数据类型
引用数据类型
2、按照变量声明的位置(作用域)
全局变量:在整个类中都能使用,使用static关键字修饰
成员变量:方法外部、类的内部(不赋值会取该变量的默认值)
基本数据类型的默认值:
数字型 ———— 0 或 0.0
字符型 ———— u0000
布尔型 ———— false
引用数据类型:
全为 null
局部变量:方法或者模块内部定义的变量 (必须初始化)
'注意,类的外边不能声明变量'
数据类型
数据类型有什么用?
数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。 int i = 10; double d = 1.23; i变量和d变量类型不同,空间大小不同。数据类型在java语言中包括两种:
第一种:基本数据类型 基本数据类型又可以划分为4大类8小种: 第一类:整数型 byte,short,int,long (没有小数的) 第二类:浮点型 float,double (带有小数的) 第三类:布尔型 boolean:只有两个值true和false,true表示真,false表示假 第四类:字符型 char:java中规定字符型字面量必须使用单引号括起来。属于文字。 8小种: byte,short,int,long float,double boolean char 第二种:引用数据类型 字符串型String属于引用数据类型。 String字符串不属于基本数据类型范畴。 java中除了基本数据类型之外,剩下的都是引用数据类型。 引用数据类型后期面向对象的时候才会接触。 8种基本数据类型中 整数型:byte short int long有什么区别? 浮点型:float和double有什么区别? 区别:占用的空间大小不同。 关于计算机存储单位? 计算机只能识别二进制。(1001101100...) 1字节 = 8bit(8比特)--> 1byte = 8bit 1bit就是一个1或0. 1KB = 1024byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB byte b = 2; 在计算机中是这样表示的:00000010 short s = 2; 在计算机中是这样表示的:00000000 00000010 int i = 2;在计算机中是这样表示的:00000000 00000000 00000000 00000010 ... 类型 占用字节数量(byte) ------------------------------------ byte 1 short 2 int 4 long 8 float 4 double 8 boolean 1 (1byte的1或0,00000001(true)或00000000(false)) char 2 byte类型的取值范围? byte是 [-128 ~ 127] 共可以标识256个不同的数字。 byte类型的最大值是怎么计算出来的? byte是1个字节,是8个比特位,所以byte可以存储的最大值是: 01111111 注意:在计算机当中,一个二进制位最左边的是符号位,当为0时表示正数, 当为1时表示负数。所以byte类型最大值是:01111111 那么是不是2的7次方-1呢? 是不是:10000000(前边是一个二进制) - 1 byte类型最大值是:2的7次方 - 1. 有几个取值范围需要大家记住: (1个字节)byte: [-128 ~ 127] (2个字节)short:[-32768 ~ 32767] 可以表示65536个不同的数字 (4个字节)int: [-2147483648 ~ 2147483647] (2个字节)char: [0~65535] 可以表示65536个不同的数字 short和char实际上容量相同,不过char可以表示更大的数字。 因为char表示的是文字,文件没有正负之分,所以char可以表示 更大的数字。 对于8种基本数据类型来说: 其中byte,short,int,long,float,double,boolean,这7种类型计算机表示起来 比较容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上 true和false分别在C++中对应的是1和0,1为true,false为0。 对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家 的文字不一样,文字不能直接通过“自然算法”转换成二进制。这个时候怎么办? 字符编码诞生了。
点击进入字符编码简介
| 序号 | 数据类型 | 字节数 | 位数 | 默认值 | 取值范围 | 栗子 |
|---|---|---|---|---|---|---|
| 1 | byte(位) | 1 | 8 | 0 | -2^7 — 2^7-1 | byte b = 10; |
| 2 | short(短整数型) | 2 | 16 | 0 | -2^15 — 2^15-1 | short s = 10; |
| 3 | int(整数型) | 4 | 32 | 0 | -2^31 — 2^31-1 | int i = 10; |
| 4 | long(长整数型) | 8 | 64 | 0 | -2^63 -— 2^63-1 | long l = 10l; |
| 5 | float(单精度型) | 4 | 32 | 0 | -2^31 -— 2^31-1 | float f = 10.0f; |
| 6 | double(双精度型) | 8 | 64 | 0 | -2^63 — 2^63-1 | double d = 10.0d; |
| 7 | char(字符型) | 2 | 16 | null | 0 — 2^16-1 | char c = ‘c’; |
| 8 | boolean(布尔型) | 1 | 8 | false | true、false | boolean b = true; |
第一条:八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;
第二条:如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给byte,short,char 类型的变量;
第三条:小容量向大容量转换称为自动类型转换,容量从小到大的排序为:
byte < short(char) < int < long < float < double,其中 short和 char
都占用两个字节,但是char 可以表示更大的正整数;
第四条:大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能出现精度损失,谨慎使用;
第五条:byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;
第六条:多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;



