Java标识符、关键字、字面值、变量

鳄鱼君

发表文章数:615

热门标签

,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java标识符、关键字、字面值、变量

标识符

标识符:

  1. 在Java源程序当中凡是程序员有权利自己命名的单词都是标识符
  2. 在EditPlus中,标识符以黑色字体高亮显示
  3. 标识符可以标识类名、方法名、变量名、接口名、常量名
  4. public class IdentifiterTest  // IdentifiterTest是一个类名,名字可以随意修改
    {
    	// main是一个方法名,args是一个变量名
    	public static void main (String[] args){
    		
    	}
    }

标识符的命名规则:

  1. 一个合法的标识符只能由数字、字母、下划线_、类元符号$组成,不能含有其它符号;
  2. 不能以数字开头
  3. 严格区分大小写
  4. 关键字不能做标识符
  5. 理论上没有长度限制,但不能太长

标识符的命名规范:

  1. 只是一种规范,不属于语法,不遵守规范编译器不会报错
  2. 最好见名知意,就是使用英文单词
  3. 遵守驼峰命名方式
  4. SystemService
    UserService
    CustomerService
  5. 类名、接口名、首字母大写,后面每个单词首字母大写
  6. 变量名、方法名、首字母小写,后面每个单词首字母大写
  7. 常量名全部大写
public class IdentifiterTest  // IdentifiterTest是一个类名,名字可以随意修改
{
	// main是一个方法名,args是一个变量名
	public static void main (String[] args){
		
	}
	// doSome就是方法名
	public static void doSome (){
		// i就是变量名
		int i = 10;
	}
}

关键字

以下就是Java常见的关键字,这些关键字不能用作变量、常量和任何标识符名称:

类别 关键字 说明
访问控制 private 私有的
protected 受保护的
public 公共的
default 默认
类、方法和变量修饰符 abstract 声明抽象
class
extends 扩充,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非 Java 实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句 break 跳出循环
case 定义一个值以供 switch 选择
continue 继续
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
错误处理 assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
包相关 import 引入
package
基本类型 boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
变量引用 super 父类,超类
this 本类
void 无返回值
保留关键字 goto 是关键字,但不能使用
const 是关键字,但不能使用
null

字面值

字面值就是数据,字面值是Java源程序的组成部分,包括标识符和关键字,它们都是java源程序的组成部分。字面值没有具体的含义解释,一般下面的都属于字面值:

  1. – 10、100:属于整数型字面值
  2. – 3.14:属于浮点型字面值
  3. – “abc”:属于字符串型字面值
  4. – ‘a’:属于字符型字面值
  5. – true、false:属于布尔型字面值

Java语言中所有的字符串型字面值必须使用双引号括起来,双引号是半角的
Java语言当中所有的字符类型字面值必须使用单引号括起来,单引号是半角的
创建一个ConstTest.java源程序,编写代码:

public class ConstTest
{
	public static void main(String[] args){
		System.out.println("今天天气很好");
		System.out.println(false);
		System.out.println(1000);
		System.out.println('A');
		System.out.println(3.14);
                    
                // 编译报错,单引号中只能存放单个字符,属于字符型字面值
                // System.out.println('abc');
		// 120是一个整数型字面值,必定会占用一定的内存空间
		System.out.println(120);
		System.out.println(120);
	}
}

变量

变量本质上来说是内存上的一块空间,这块空间有数据类型、有名字、有字面值,变量是内存中存储数据的最基本的单元!


不同的数据有不同的数据类型,不同的数据类型底层会分配不同的大小空间,数据类型是指导程序在运行阶段应该分配多大的内存空间。
变量中存储的具体的数据。必须要和变量的数据类型一致,如果不一致,编译就会报错!声明/定义变量的语法格式:数据类型 变量名;

  1. 数据类型:int、
  2. 变量名只要是合法的标识符就可以,首字母小写,后面每个单词首字母大写,例如int age、int length、int size等等

变量声明之后就需要赋值,语法格式为变量名 = 字面值,字面值的数据类型必须要和变量的数据类型一致。= 等号是赋值运算符,符号运算符先运算等号右边的表达式,表达式执行结束之后的结果赋值给左边的变量。

声明和赋值也可以放到一起。语法格式为int i = 10;变量赋值之后可以重新变化,变量的值口变化,例如:

int i = 10;
System.out.println(i);  // 10
int i = 100;
System.out.println(i); // 100
// 有了变量的概念,内存空间就得到了重复使用
// 通常访问一个变量有两种方式:读取变量get/获取;修改变量set/设置
// 变量在一行上可以声明多个 int a,b,c

创建一个VariableTest.java源程序,编写代码:

public class VariableTest
{
	public static void main(String[] args){
		int i; // 声明一个int类型变量,名字i,内存空间并没有开辟
		i = 100;  // 赋值,i完成初始化,内存开辟
		System.out.println(i); // 变量声明之后必须赋值,才能访问

		i = 300; // 重新赋值
		System.out.println(i);

		// 一行可以声明多个变量
		int a,b,c = 1;  // 这里只有c变量赋值为1,就近赋值
		a = 2;
		b = 3;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);

	}
}

在方法体中的java代码,是遵守自上而下的依次执行的,第一行的代码必须完成,才能执行第二行的代码!在同一个“作用域”中,变量名不能重名,但是变量可以重新赋值。

public class VariableTest
{
	public static void main(String[] args){
		int i = 100; 
		System.out.println(i); 

		i = 300; // 重新赋值
		System.out.println(i);

		int i = 1000;
		System.out.println(i);

	}
}

以上代码在编译之后,运行会报错:VariableTest.java:10: 错误: 已在方法 main(String[])中定义了变量 i

变量的作用域

变量作用域就是变量的有效范围,在什么范围之内是可以被访问的,超出范围就不能狗访问!超出大括号就无法访问

public class VariableTest
{
	public static void main(String[] args){
		int i = 100; 
		System.out.println(i); 
	}
	public static void doSome(){
		// 这里就无法访问i,已经超出了i变量的作用域。
		System.out.println(i); 		
	}
}

在类体中定义的变量,在方法体中是可以访问的:

public class VariableTest
{
	static int k = 300; // static不要去掉

	public static void main(String[] args){
		int i = 100; 
		System.out.println(i); 
		System.out.println(k); 
	}
	public static void doSome(){
		System.out.println(k); 		
	}
}

我么再看一下其它写法:

public class VariableTest
{
	static int k = 300; // static不要去掉

	public static void main(String[] args){
		int i = 100; 
		System.out.println(i); 
		System.out.println(k); 
		// 编写一个for循环
		for (int a=0;a<10 ;a++ )
		{
		
		}
		// 在这里是无法访问a变量的,a变量的作用域就是在for循环中
		// for循环结束之后,a变量的内存就释放了
		System.out.println(a); 

		// 但是下面这样写,可以访问
		int j; // 作用域在main方法里边
		for (j=0;j<10 ;j++ )
		{
		}
		System.out.println(j);

	}
	public static void doSome(){
		System.out.println(k); 		
	}
}

变量的分类

根据变量的位置可以分为局部变量和成员变量,局部变量就是在方法体当中声明的变量;成员变量就是在方法体外【类体内部】声明的变量叫做成员变量。在不同的作用域中,变量名是可以相同的!在相同的作用域中,变量名不可以重复

public class VariableTest
{
	int k = 300; // 成员变量

	public static void main(String[] args){
		int i = 100; // 局部变量
		System.out.println(i); 
	}
	int i = 200;// 成员变量
	// 类体中不能编写java语句【除声明变量之外】
	// System.out.println(i);
	
	// duSome方法
	public static void mduSome(){
		int i = 90; // 局部变量
	}

}
标签:

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java标识符、关键字、字面值、变量》 发布于2020-07-30

分享到:
赞(1) 赏杯咖啡

评论 抢沙发

3 + 1 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册