文档章节

java语言中的变量、常量与运算符

jeffky
 jeffky
发布于 2017/08/25 16:40
字数 2448
阅读 35
收藏 0

变量

1、变量的声明

 变量就是在程序的运行中可以变化的量。在java程序设计中,每个声明过的变量都必须分配一个类型。声明一个变量时,应该先声明变量的类型,随后再声明变量的名字。

//salary,age,op都是变量的名字
//double,int,boolean则是变量的类型
double salary;
int age;
boolean op;

每一行的第一项是变量类型,第二项是变量名。行尾的分号是必需的,这是java语句的结束符号。如果没有这个分号,程序不会认为这是一句完整的Java语句。

同一类型的不同变量,可以声明在一行,也可以声明在不同行,如果在同一行声明,则需要用逗号隔开。

int idNumber,tpNumber;

2、变量的含义

在程序运行过程中,空间内的值是变化的,这个内存空间就成为变量。为了操作方便,给这个空间取名。称为变量名,内存空间内的值就是变量值。所以,申请了内存空间,变量不一定有值,想要变量有值,就必须放入值。

例如:

int x;//定义了变量但没赋值,即申请了内存空间,但没有放入值。
int x = 5 ; //不但申请了内存空间,而且还放入了值,值为。

3、变量的分类

3.1 根据作用范围分类

根据作用范围来分,一般将变量分为全局变量和局部变量。从字面来理解很简单,全局变量就是在程序范围之内都有效的变量,而局部变量就是程序中的部分区域有效的变量。

public class Var {
	
	int a = 10;   //定义全局变量a
	int b = 1;    //定义全局变量b
	
	
	public static void main(String[] args) {
		Var v = new Var();
		System.out.println("这个是全局变量a="+v.a);
		System.out.println("这个是全局变量b="+v.b);
		v.print();
	}
		void print(){
			int c = 18;   //定义局部变量c
			System.out.println("这个是局部变量c="+c);
			
		}
}
/*
运行结果:
这个是全局变量a=10
这个是全局变量b=1
这个是局部变量c=18
*/

如果将将System.out.println("这个是局部变量c="+c);放入main方法中运行,则会在编译时报错:c cannot be resolved to a variable,说明变量c只能在方法print()中起作用,在方法外无法调用。

-------------------------------------------------------------------------------------------------------------

3.2根据类型划分

如果根据类型划分,可以将变量分为基本类型和对象类型变量,基本类型变量就是8种基本数据类型的变量。如整型、浮点型、字符型、布尔型等。

----------------------------------------------------------------------------------------------------------

3.3根据所属范围划分

如果按所属范围来分,可以将变量分为类变量和成员变量,类变量就是用关键字“static”声明的全局变量。它属于类的。而成员变量就是不用“static”声明的其他变量,它是属于对象本身的。

其实类变量就是在类中直接定义的,并且不随类产生的对象变化而变化。当在一个类中生命了一个类变量时,无论创造出多少个对象,使用这个变量,都不会发生变化。成员变量就不同了,它随着对象不同而变化。即使对同一个类,新建一个对象,使用此对象引用这个变量,每次引用的值都不一样。

3.4变量如何初始化

全局变量可以不用进行初始化赋值工作,而局部变量必须要进行赋值工作

********************************************************************************************************

常量

在java程序设计中,使用关键字"final"来声明一个常量。常量表示在程序开始运行到结束期间都不变的量。

public class Var2 {
	final double PI = 3.14;//定义了一个常量PI
	
	public static void main(String[] args) {
		Var2 v = new Var2();
		System.out.println(v.PI);//输出常量PI的值

	}

}
//运行结果3.14

如果要声明一个类常量,就需要使用关键字static和final的组合。

public class Var3 {
	static final int A = 1;//定义了一个类常量A
	public static void main(String[] args) {
		
		System.out.println(A);//输出类常量A的值
	}

}

(注)常量名一般都为大写字母

从上面可以看出,如果这个常量是类常量,那么无需再构造对象,可以直接引用这个常量。如果这个常量为一般常量,则需要构造对象,通过对象来引用这个常量。

********************************************************************************************************

运算符

1.算术运算符

算术运算符
运算符 名称 实例 作用
+ x+y 求两数之和
- x-y 求两数字差
*

x*y

求两数之积
/ x/y 求x除以y的商
% 取余 x%y 求x除以y的余数
++ 自加1 x++ x=x+1
-- 自减1 x-- x=x-1
- 反号 y=-x 把x反号

重点讨论自加和自减运算符的用法,它可以使一个变量自动加1和自动减1,得到的值再赋给这个变量。自加运算符又分为两种:一种是前自加,一种是后自加。

public static void main(String[] args) {
		int a = 10;
		System.out.println("a++等于:"+(a++));
		
	}


public static void main(String[] args) {
		int a = 10;
		
		System.out.println("++a等于:"+(++a));
	}
/*
运行结果:a++等于:10
运行结果:++a等于:11
*/
public static void main(String[] args) {
		int a = 10;
		System.out.println("a++等于:"+(a++));
		System.out.println("++a等于:"+(++a));
	}
运行结果:
a++等于:10
++a等于:12

即:后自加为:先把a的值赋给a,然后将a的值加1,存储到内存空间。于是,a输出的值就是10,而存储在内存中的a的值为11;前自加为:先让a加1,然后再将这个加之后的值赋给a,于是。a的输出值就为11。

同样自减运算符也有两种,一种前自减,一种后自减。

++x:因为++在前,所以可以记忆为先加后用。
x++:因为++在后,所以可以记忆为先用后加。
--x:因为--在前,所以可以记忆为先减后用。
x--:因为--在后,所以可以记忆为先用后减。

2.关系运算符

关系运算符
关系运算符 名称 示例 作用
> 大于 x>y 如果x>y,则为真,否则为假。
< 小于 x<y 如果x<y,则为真,否则为假。
>= 大于等于 x>=y 如果x>=y,则为真,否则为假。
<= 小于等于 x<=y 如果x<=y,则为真,否则为假。
== 等于 x==y 如果x==y,则为真,否则为假。
!= 不等于 x!=y 如果x!=y,则为真,否则为假。
注意:
(1)区别关系运算符"=="和赋值运算符"=",前者是比较符号左右两边的数据是否相等,而后者是把符号右边的数据
赋予给左边的变量。
(2)"=="、"!="可以用于对象的比较,而对象的比较通常不是简单的通过对象名字比较或者对象类型比较,而是有
自己的equal()函数。
(3)关系运算符的结果是布尔型数据

3.逻辑运算符

逻辑运算符
逻辑运算符 名称 示例 作用
& x&y x,y都真,则真
| x|y x,y有其一为真,则真
! !x x为真,则为假;x为假,则为真
&& 短路与 x&&y x,y都真,则真
|| 短路或 x||y x,y有其一为真,则真
^ 异或 x^y x,y都为真,或者都为假,为真

4.位运算符

位运算符主要针对二进制进行运算。包括与、非、或、异或,与逻辑运算符的区别为:逻辑运算符是针对两个关系表达式来进行逻辑运算,而位运算符主要针对两个二进制数的位进行运算

(1)与运算符&

规律:两个操作数中位都为1的情况下,结果才为1,否则结果为0

public class Data2 {
	public static void main(String[] args) {
		 int a = 129;
		 int b = 128;
		 System.out.println("a与b与的结果和"+(a&b));
	}
}
运行结果:a与b与的结果和128

(2)或运算符|

规律:两个操作数中位有一个为1,那么结果就为1,否则为0.

(3)非运算符~

规律:如果位为0,结果为1,位为1,结果为0.

(4)异或运算符^

规律:两个操作数的位中,相同则结果为0,不同则为1.

5.移位运算符

针对二进制的位,<<:左移位运算符>>:右移位运算符>>>无符号右移位运算符

(1)<<:左移位符

将运算符左边的对象向左移动运算符右边指定的位数,并且低位补0.其实向左移n位,就相当于乘上2的n次方。

(2)>>:右移位运算符

将运算符左边的对象向右移动运算符边指定的位数,如果是正数在高位补0.如果是负数,则在高位补1.

(3)>>>无符号右移位运算符

将运算符左边的对象向右移动运算符边指定的位数,并且在高位补0.就相当于除上2的n次方。

6.赋值运算符

=    -=    *=    /=    %=    >>=    <<=    &=    |=    ^=

7.三元运算符

布尔表达式?值0:值1

8.逗号运算符

用来将几个数值彼此分开

9.转型运算符

转型运算符的用处是将一种类型的对象或数据,经过强制转换而转变为另一种类型的数据。它的格式是在需要转型的数据前加上(),然后在()内加入需要转化的数据类型。

-------------------------------------------------------------------------------------------------------------

10.运算符的优先级
 

运算符 优先级 运算符 优先级
括号 1 ==!,!= 8
++,-- 2 & 9
~,! 3 ^ 10
*,/,% 4 | 11
+,- 5 && 12
>>,<<,>>> 6 || 13
>,<,>=,<= 7 ?: 14

 

© 著作权归作者所有

jeffky
粉丝 0
博文 9
码字总数 11214
作品 0
海淀
私信 提问
Java基础教程,第三讲,运算符 变量定义 数据类型转换

学完此次课程,我能做什么? 学完此次课程我们可以学会Java的运算符,以及数据类型的自动转换和强制转换。 学习此次课程,需要多久? 10-15分钟 课程内容 声明变量语法: 类型+变量名 上节课...

程序员补给栈
02/01
16
0
java基础--JDK安装、环境变量配置、工具开发第一个程序、数据类型、运算符

-----Java基础大纲----- **-----本章节-----** 1.Java语言的历史、特点及工作原理 2.JRE和JDK的介绍 3.Java运行环境和开发工具 4.Java基础语法 **-----下一章节-----** 5.条件语句 6.循环 7....

我是宁采臣
2018/06/26
0
0
01 - JavaSE之基础及面向对象

JAVA基础知识 Java 是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门面向 Internet 的高级编程语言。 Java 虚拟机(JVM:Java Virtual Machine) JRE(Java Runtim...

fengdaoting
2018/01/07
0
0
java基础重点讲解,看了还不会找我(三)

###03.01_Java语言基础(逻辑运算符的基本用法)(掌握) * A:逻辑运算符有哪些 * &,|,^,! * &&,|| * B:案例演示 * 逻辑运算符的基本用法 * 注意事项: * a:逻辑运算符一般用于连接boolean类型的...

谢小芳是女神
2018/12/30
0
0
Object Pascal 运算符,常量,变量

不区分大小写 赋值运算符 := (Java里是=) 例如 var I:Integer; I:=30; 比较运算符 =,<>,<,>,<=,>= 特别注意: 判等是=(Java里是==) 判不等是<>(Java里是!=) 逻辑运算符 and or not 算术运算符......

smilethat
2012/03/30
128
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
150
4
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
5
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
8
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部