(二) 数据类型和运算符

本文详细介绍了Java编程中的标识符和关键字的规则及使用,包括变量和常量的声明与区别,以及基本数据类型的分类与转换。特别强调了变量的赋值规范和常量的final特性。此外,还讨论了不同类型之间的转换规则,如自动转换和强制转换,并讲解了成员变量与局部变量的作用域。最后,概述了算术运算符、逻辑运算符及其运算顺序。
摘要由CSDN通过智能技术生成

1标识符和关键字

1.1标识符

定义:Java对各种变量、方法和类等要素命名时使用的字符序列成为标识符。

命名规则
1)标识符由字母、数字、下划线“-”、美元符号“$”组成,并且首字符不能为数字。
2)不能把Java关键字作为标识符。
3)标识符无长度限制。
4)标识符对大小写敏感。

命名规范(驼峰命名法)
1)变量和方法名:要求第一个单次应以小写字母开头,后面的每个单词以大写字母开头。如stuAge、sendMassage。
2)类名:第一个单词首字母需大写,其余与(1)同。若类名中包含单词缩写,则缩写的每个字母均应大写。如XMLModule。
3)常量标识符:应使用大写字母并指出该常量完整的含义。如一常量由多个单词组成,则应用下划线来分隔这些单词。如MAX_VALUE。

1.2关键字

关键字不能用作变量名、方法名、类名、包名。
Java的关键字都是小写的英文字符串。
goto标识符随从不使用,但也作为保留字保留。

在这里插入图片描述

2 变量和常量

2.1 变量

定义:变量是一段有名字的连续存储空间(存储在计算机内存中)。在Java代码中通过定义变量来申请并命名这样的存储空间,通过变量名来使用这段存储空间。变量时程序中数据的临时存放场所。

声明格式
变量类型 变量名 【= 变量值】 ;
即type varName [ = value ] ;
对内存而言,“type varName”是声明变量,相当于根据数据类型向内存申请一块空间,而“=value”相当于把变量值放到这个内存空间中。例:
int stuAge=22; 可以拆分成int stuAge和stuAge=22两条语句,其中int stuAge相当于向内存申请一块可以存储int型变量的空间(实际为4个字节,32位),而stuAge=22相当于把22这个数字放到这块内存空间中。

:在使用变量时,要避免出现未赋值就使用的情况,应做到变量先赋值后使用。

2.2 常量

在Java中,利用final关键字来定义Java常量,其本质为值不可变的常量。所以在声明时,就必须进行初始化。和变量不同的是,Java常量在程序中将无法再次进行赋值。

3 Java数据类型

Java数据类型分两大类:基本数据类型、引用数据类型。
在这里插入图片描述
注意:String不属于基本类型,是引用类型。引用类型(对象)才会有属性和方法。

Java基本数据类型说明:
在这里插入图片描述

3.1 基本数据类型

1.基本数据类型有整数类型、浮点类型、字符型、布尔型。

2.基本数据类型转换
boolean类型不可以和其他数据类型互相转换。

(1)自动转换(隐式转换)
自动类型转总是安全的
转换遵循的原则:
●容量小的类型自动转换成容量大的类型。
在这里插入图片描述

●byte、short、char之间不会相互转换,三者在计算时首先转换成int类型。
●有多种类型数据混合运算时,系统先自动转换成容量最大的数据类型,然后再计算。

(2)强制转换(显式转换)
强制类型转换是不安全的,数据精度可能会受到影响
容量大的数据类型转换成小的数据类型时,需要加上强制转换符,但可能造成精度降低或溢出。

3.1.1 整型

Java语言的整数常量默认为int型,声明long型的整型常量需要在常量后加“l”或者“L”
Java语言设计出4种整型类型的目的是存不同大小的数,这样可以节约存储空间。
1)byte(1个字节,8位)
2)short(2个字节,16位)
3)int(4个字节,32位)
4)long(8个字节,64位)

3.1.2 浮点型

Java语言的浮点型常量默认为double型,声明一个float型常量需在常量后加“f”或者“F”。
1)float(4个字节,32位)
2)double(8个字节,64位)

3.1.3 字符型

字符常量为用单引号括起来的单个字符。Java中字符型变量可以存放一个汉字(因为Java使用Unicode编码,一个Unicode编码占2个字节,一个汉字也是占2个字节)。
char(2个字节,16位)

3.1.4 布尔型

boolean类型只允许取值true或false。适用于逻辑运算,一般用于程序流程控制。

3.2引用类型

引用类型(类、接口、数组即使是基本类型的数组也是引用类型)。在Java中任何一种基本类型(值类型)都有一个相对应的类进行封装;这点后面会讲到现在先了解即可。
值类型 –-> 引用类型(包装类型)
int java.lang.Integer类
short java.lang.Short类
byte java.lang.Byte类
long java.lang.Long类
char java.lang.Character类
float java.lang.Float类
double java.lang.Double类
boolean java.lang.Boolean类

3.3成员变量和局部变量

根据变量声明位置的不同,可将变量分为成员变量和局部变量。

3.2.1成员变量

成员变量在类的内部、方法外部定义的变量,其作用域从变量定义位置起到类结束。

3.2.2局部变量

局部变量是在方法内部定义的变量(包括形参),其作用域从变量定义位置起到方法结束。

注:
● 方法中的局部变量可以和成员变量同名
● 声明成员变量可不赋初始值,有默认的初始值(整型为0、浮点型为0.0、字符型为’\u0000’、布尔型为false),但声明局部变量必须赋初始值。
● 如果在局部变量所在的方法体内使用变量,则局部变量覆盖成员变量,输出的是局部变量的值;如果在局部变量所在的方法体外使用变量,则输出的是成员变量的值。

package Example0306;
/**
 * File:
 * Author:@LJade
 * Time: 2021/2/19.
 */
public class Test
{
    int i=9;  //成员变量

    public void show(){
        int i=10;   //局部变量
        System.out.println("i="+i);   //输出局部变量的值
    }

    public static void main(String args[]) {
        Test test=new Test();  //实例化对象
        test.show();     //调用show()方法
        System.out.println("i="+test.i);      //输出成员变量的值

    }
}

运行结果:
在这里插入图片描述

4 Java运算符

1.赋值运算符: =, *=, /=, +=, -=
2.算术运算符:+, -, *, / (取整), % (取余数)
3.关系运算符:>,<,,<=,>=,!=。其运算结果是boolean值。
4.逻辑运算符: &, &&, |, ||, ! (求反)。用来连接多个关系运算符表达式。
boolean bln = (1
2 & 1<2);
5.条件运算符:expression ? value1 : value2;
6.位运算符:>>>(无符号右移),<<(左移), &(与), |(或) 如果用于数值运算则为位运算

4.1算数运算符

(1)单目运算符:+(取正)、-(取负)、++(自增1)、–(自减1)。
(2)双目运算符:+、-、*、/、%(取余)。
(3)三目运算符:(表达式1) ? (表达式2) : (表达式3)。

4.2逻辑运算符

逻辑运算符: &, &&, |, ||, ! (求反)。

(重要, 面试题) &与&&的区别:
a) & 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
b) && 还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,& 还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作。

4.3 Java表达式的运算顺序

(1) 先执行算数运算(+, -, *, /, %)
(2) 然后执行关系运算(>, <, …)
(3) 然后执行逻辑运算(&, &&, |, ||, !)
(4) 最后执行赋值运算
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值