第2 章变量和运算符

2.1 关键字、保留字和标识符

关键字是对编译器有特殊意义的单词,不同的关键字单词可以用来表示一种数据类型,
或者表示程序的结构等。关键字不能用作变量名、方法名、类名、包名。
goto 是java 的保留关键字,意思是java 并没有使用goto,以后是否使用未定。
Java 中的包、类、方法、参数和变量的名称总称为标识符。
标识符的命名规则:
a) 必须以字母、下划线(_)或美元符号($)开头;
b) 余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限;
c) 标识符中不能有空格;
d) 不能使用Java 中的关键字或保留字做为标识符。
其中:
项目名:全部小写。如:workdesk.
包名:全部小写,名词。如:java.event.
类名、接口名:首字母大写,多个单词组成时,每个单词的首字母大写。如:public
class VariableClass {};
方法名:首字母小写,多个单词组成时,从第二字单词开始,每个单词的首字母大写。
如:public MainMachine getMachine() {};
当java程序如果没有使用package声明包的名称,则编译器会自动添加一个default默认包
(default是关键词,default不是包名,是没写的意思)。

2.2 常量、变量和数据类型*

2.2.1 常量
在Java 中,使用final 修饰的变量称为常量,常量就是在运行过程中不能被修改的变量,
其必须指定数据类型。可以在定义的时候初始化,或在构造方法中初始化。
常量命名要大写。
 属性常量需要在定义时进行初始化,常量一旦被初始化就不能被修改。
例1:
private static final String MAN = “男”;
 属性常量如果在定义时没有进行初始化,可以在构造方法中初始化一次。
在JDK 7 以后版本中,数值常量增加对下划线的支持。可以在数值常量中使用’_’来提升
可阅读性。如:int a = 100_000_000;但不能在小数后面,或者数字的开始或结束的
地方放下划线。
2.2.2 变量
变量是在程序运行过程当中,用于暂存数据的一个字段或一个标识,可以保存程序运行
时用户输入的数据或特定的运算结果等。
变量的格式为:String(数据类型) name(变量名) =(赋值符号) “”数据值
例1:
private String nameString = “hello”;
double salary;//声明变量
salary=1500.00;//变量赋初值
System.out.println(salary);//访问变量
int age=23;//变量初始化
2.2.3 变量的分类
目标:为了在不同作用范作用域和范围下保存或传递数据。
1.实例变量(非静态变量)Instance Variables(Non-Static Fields)
实例变量:定义在类下面,无static 修饰。是所属对象所私有的,一个对象的改变不影
响其他对象。其可以在本类的实例方法中和同一个对象中共享数据。实例变量不能被静态方
法引用。
2.类变量(静态变量)Class Variables(Static Fields)
类变量:定义在类下面,使用static 修饰。是所有对象共有的,一个对象将它的值改变,
其他对象得到的就是改变后的结果。其可以访问作用域范围内共享数据,是全局作用域。加
了static 是类变量,调用时不用新建实例对象,直接使用类名进行调用。Static 修饰的方法不
能被重载,但能被继承。
3.局部变量Local Variables
局部变量是定义在方法内或者代码块内的变量,只在变量定义后的方法内部或代码块中
有效。局部变量在使用前,必须先初始化。
4.参数Parameters
参数:定义在方法的参数列表,由参数类型和参数名构成,参数不能使用赋值符号进行
赋值。其在方法内有效,在程序运行过程中根据调用情况和参数决定参数值。public static void
main(String[] args)。这里的args 变量是此方法的参数。
2.2.4 基本数据类型分类
在Java 中,数据类型分为两类:基本数据类型和引用数据类型。
数据类型一定要在常量名或变量名面前。
基本数据类型如下表:
在这里插入图片描述
其中,整数默认是int 类型,小数默认是double 类型的。
字符类型可以表示一个字符图像和一个字符编号。其保存的是在字符编码表的位置,这个位置是一个index索引,是个数字。字符要用单引号表示,引号内部必须有个特定的符号。
如:char c = ‘a’;并且字符串可以保留汉字,如:char c3=‘中’;boolean 类型表示一种逻辑类型,真和假,对与错,正与反。只有true 和false 两个值。
例:boolean bool1=true; boolean boo2=false;
单精度浮点数必须以f 或F 结尾,双精度的小数以D 或d 结尾,如果不写默认也是double类型。引用数据类型有类、接口和数组。类中有String 字符串,字符串String 是用双引号表示的,可以是空字符串。如:String str = “”;,String 字符串的默认值是null,null 是一种特殊的数据类型,如:String string=null;
2.2.5 进制数
常用的进制数有二进制,八进制,十进制,十六进制。
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F
二进制数以0b 或0B 开头,例:int i3 = 0B1010101010101;
八进制以(零)0 开头,例:i3 = 01010101017;
11
十六进制以(零)0x 开头,例:i3 = 0xa1b2c3d4;

2.3 运算符和表达式

运算符(操作符)是一种特殊的符号,用以表示数据的运算、赋值和比较。
运算符的种类:
赋值运算符:=、+=、﹣=、=、/=、%=
算术运算符: +、﹣、
、/、%、++、–
比较运算符:>、<、>=、<=、= =、!=、instanceof
逻辑运算符:!、&&、||
位运算符: &、|、^ 、~、>>、<<、>>>
条件运算符: ?:
逻辑运算符优先级:算数运算符>比较运算符>逻辑运算符>赋值运算符。对于复杂的表
达式,按照运算的优先级别进行拆分句子。
左移(<<)是乘,右移(>>)是除,每移动一位表示乘以2 或除以2.
例1:计算3^2,要求使用效率最高的方法计算。解:3<<2
System.out.print(3<<2);//输出为12
instanceof用于判断某个对象是否在特定的数据类型,在反射或编程时常用
算数运算操作数必须是数值类型,分为一元运算符和二元运算符。一元运算符只有一个
操作数,二元运算符有两个操作数,运算符在两个操作数之间。
一元运算符:正‘+’,负‘-’,自加‘++’,自减‘- -’这四个。
正负号(+,-):在数值前,表示正数还是负数
自增、自减运算符: ++, –
自增、自减运算符可以用于数值变量之前或者之后
i++, 后++, 先将i 的值作为整个表达的值, 然后将i 增加1.
++i, 先++, 先将i 增加1, 然后将i 的值作为整个表达的值.
i–, 后–, 先将i 的值作为整个表达的值, 然后将i 减少1.
–i, 先–, 先将i 减少1, 然后将i 的值作为整个表达的值.
例2:设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
int x=1;
int y=2;
int z=3;
y+=z–/++x;//z和x是来自不同变量,所以z–不影响++x变量
System.out.print(“y=”+y);
结果:y=3

2.4 数据类型的转换

2.4.1 自动类型转换
自动类型转换又称为隐式类型转换,当有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那一种数据类型,然后进行计算。
自动转换规则:
Boolean 类型不可以转换为其他的数据类型。
整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守以下原则:
在这里插入图片描述
例:
int a1=12;
char a2=‘好’;
int v=a1+a2;//自动类型转换把字符char类型自动转换int类型
System.out.println(“v=”+v);
当把一个小范围的数据转换为大范围时,可以自动转换。当把一个大范围的数据转换为
一个小范围时,需要进行强制转换,强制转换使用小括号转换。例:f=(float)d1;
2.4.2 强制类型转换
强制类型转换又称为显示类型转换。容量大的数据类型转换为容量小的数据类型时,需
要使用强制类型转换。格式如下:变量=(目标类型)值。
例:
byte a;
int b;
a = (byte)b;
数据类型强制转化,会导致数据精度的损失,高数据位会全部损失掉;如果把小数转整
数会把小数部分损失掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值