1. 首页
  2. Java

Java——数据和表达式

一、基本语法元素

什么是语句?什么是块?

语句是java程序执行最小的单位,程序的各语句间以 ” ; ” 分隔.大括号” { } “包含的一系列的语句称为语句块,简称为块,语句块可以嵌套,一个语句块中可以有多个子语句块,从语法上看,块可以被看作以一个语句.

什么是注释?

注释可理解成为代码程序进行解释说明,提高程序的可读性.且注释不影响程序的执行结果,编译器会忽略注释.

但是注释也有规范:注释不能随意的插在一个标识符或关键字之中,要保证程序中最基本元素的完整性,所以注释最好在程序段的空白处插入 .

注释 3 种形式:

// 在一行内的注释            —–> 一般用于对声明的变量、一行程序的作用做解释说明

/* 一行或多行的注释 */     —–> 多用于说明方法的功能、设计逻辑、基本思想

/** 文档注释 */

什么是标识符?

标识符是由字母、数字、下划线(_)、或美元符($)组成的字符串,其中数字不能作表示符的开头,且标识符要区分大小写.

标识符可用作变量名、方法名、接口名、类名.

For example: Username    username  UserName 根据标识符区分大小写的原则可以得出 此三种标识符为不同的标识符.

对于各类名的命名规则:

类名或接口名:多为名词,每个单词的首字母都要大写: UserName;

方法名:多为动词,含有大小写,首字母小写,其后的各单词首字母大写: setName;

常量名:每个单词所有字母全部大写,并且两个单词之间要用 _ 分隔开: MIX_AGE;

变量名:首字母小写,后单词首字母大写.

 

二、基本数据类型

八大基本数据类型

数据类型字节数表示范围最大值最小值类型
byte1-128 ~ 127整数类型
short2-32768 ~ 32767
int4-2147483648 ~ 2147483647Integer.MAX_VALUEInteger.MIN_VALUE
long8Long.MAX_VALUELong.MIN_VALUE
float4Float.MAX_VALUEFloat.MIX_VALUE浮点类型
double8Double.MAX_VALUEDouble.MIX_VALUE
char2字符类型
boolean1布尔类型

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注: 当想使用长整数类型 long 时需要在数后写出字母L :  long l = 155444441L;

当想使用单精度浮点类型 float 时需要在数后面写出字母f: float f = 1.36f;

 

关于二进制、八进制与十六进制转换在程序中中如何使用:

通常我们人类是使用十进制的数,但总有特殊情况,所以在特殊情况下进行八进制转化十进制时需要以0开头: int i = 077;

十六进制转化十进制时需要以0X开头: int i = 0X77;

二进制化十进制时需要以0B开头: int = 0B100;

Java------数据和表达式 View Code

 

整数类型与浮点数类型的语法注意事项:

Java------数据和表达式 View Code

 

字符类型 char:

char 类型 可以分为普通字符常量 和 转义字符常量

Java------数据和表达式 View Code

 


 常用的转义字符及其含义

 转义字符含义转义字符含义
b退格符(Backspace)\反斜杠
n换行符单引号’
r回车符双引号”
t水平制表符(Tab)

 

 

 

 

 

 

 

 

 

boolean类型

布尔类型只有两种状态 1—> true ; 0—-> false;

三、表达式

声明变量有两处:

1、在方法或语句块内  —- 局部变量 (生命周期—从声明到方法或语句块执行完毕);

2、在类中—–>成员变量 / 实例变量 (生命周期—永远伴随着类,从类加载到卸载);

 

重点说明变量的作用域:

成员变量的作用域是整个类;

局部变量的作用域是-从声明到方法或语句块执行完毕,块外是不可使用的;

重点: 块内声明的变量将屏蔽其所在类定义的同名变量.但同一个块中如果定义两个同名变量,则会引起冲突;注意:java允许屏蔽,但冲突将会发生编译错误.

如何去理解官方的说明呢?

看下面的程序:(首先要永远的记牢程序是按照从上到下的方式依次运行的)

成员变量就如同字面意思,整个类都有被作用到,但是有意思的事情发生了:当我们在方法体中或者语句块中声明的局部变量名与(静态)成员变量名相同时,则屏蔽掉(静态)成员变量;但在局部变量名之前先调用(静态)成员变量,成员变量没有被屏蔽

然后我们看看局部变量之间同名会发生什么奇妙的事情:

还是看下面的程序:

当一个方法体中还有一个语句块时,我们来试试有可能发生的几种情况,看看有什么样的结果

1、当两个同名局部变量都在方法体中,显而易见,这两个局部变量互相屏蔽,造成冲突,出现错误,所以这种情况在程序中不能发生;

2、当一个同名局部变量在语句块前面,一个同名局部变量在语句块中,通过编译,程序还是出现了错误,这个程序告诉了我们在一个方法体中,当在方法体中先声明了一个变量,那么后面的任何语句块中都不能再出现同名的局部变量,所以这种情况在程序中也不能发生;

3、当两个同名局部变量同时出现在语句块中呢? 其实他们会出现的结果和第一种结果是一样的,,所以这种情况在程序中也不能发生;

4、当一个同名局部变量先出现在语句块中,然后在这个语句块的块外并且是这个语句块后再声明了一个同名局部变量,奇妙的事情发生了,这个程序居然正常运行了.而这是什么原因?

通过验证调试才发现,当一个同名局部变量先出现在语句块中并运行时,根据块内的变量作用域原理,当语句块运行结束时,块内的局部变量也随之消失,而在运行的过程中后一个同名局部变量虽然在块外,但是根据程序是按照从上到下顺序执行的原理,这个同名变量在前一个同名变量在运行阶段根本没有声明,更不要说运行使用了,所以既没有发生屏蔽,更没有发生冲突,

但是这种方法也很不建议使用,因为取个名字可以无穷无尽,完全没有必要取相同的名字.

 

Java------数据和表达式 View Code

四、运算符

1、算术运算符

算数运算符通常包含  加( + )、 减( – )、 乘( * )、 除( / )、 取模( % )

但是值得注意的是在java中部分运算符与我们平常使用的规则是不同的;

除( / ): 在java中两个数进行除运算,所得到的结果只有商,如果有余数则抛弃余数 ,其正负规则与数学相同.

Java------数据和表达式 View Code

取模( % ):在java中不仅可以对整型运算,还可对浮点型运算,其结果是两数除尽后取余数,这里值得注意的一点就是正负数的问题: -5 % 2 = -1; 5 % -2 = 1; -5 % -2 = -1;

Java------数据和表达式 View Code

还有一些奇妙的运算符 ++ 与 –; 它们的含义分别是加1 减 1; 而且这种运算符有前缀与后缀形式,含义略有不同,如 ++i 与 i++ 执行顺序是不一样的: ++i 是先自增再使用, i++ 是先使用 i 再自增:

Java------数据和表达式 View Code

由此类推,– 的运算规则与 ++ 相同.

 

2、关系运算符

关系运算符的主要作用是比较两个值,包括 >、 >=、 <、 <=、 ==、 != 这些运算符都是二元运算符

其中的 == 与 = 不是同一种运算符, == 是判断双方的数据是否相等, 而 = 是右方的数据赋值给左方;并且 == 与 != 可以运算于任何数据类型

Java------数据和表达式 View Code

 

3、逻辑运算符

逻辑运算有 与( && )、 或( || )、 非( ! ) 前两者为二元运算符 后者为一元的

& —-> 只要两个操作数都是 true 输出 true 否则为 false;
   | —-> 只要一个操作数都是 true 输出 true;
     && —-> 只要一个是 false 则输出 false;
     || —-> 只要一个是 true 则输出 true;
     !  —-> 取反; false 为 true , true 为 false;
     ^ —-> 相同为 false 不同 为 true;

Java------数据和表达式 View Code

短路: 从左到右计算,如果只通过运算符左边的操作数就能确定该逻辑表达式的值,就不用继续算右边的;

& 和 | 即是逻辑运算符又是位运算符,当两侧操作数是 boolean 类型则为逻辑运算符,两侧操作数为整数类型则为位运算符

逻辑运算符的优先级: (! > && > ||)

 

4、条件运算符

格式: x ? y :z

其中 x 为 boolean 类型表达式,先计算 x 的值,如果为真 则输出 y 的值, 否则输出 z 的值

 

5、强制类型转化

格式: (double) var

 

6、位运算符

>> : 右移,每移一位,每个操作数被2整除一次,移动的次数由第二个操作数决定

<< : 左移,每移一位,每个操作数被2整乘一次,移动的次数由第二个操作数决定

 

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/188944.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code