【吉林大学Java程序设计】第2章:结构化程序设计基础

1.标识符、关键字和数据类型

1.1 字符集和标识符

  • Java语言采用Unicode 16字符集(16bits存储格式),包括中文在内。
  • 凡是自己可以起名字的地方都叫标识符,都遵循标识符的规则:
    • 由字母、下划线“_”、“$”符号(不能有其他特殊符号)或数字组成
    • 不能以数字开头
    • 大小写敏感、长度无限制,但Java系统最多可以识别前255个字符
    • 不能与Java的关键字重复

1.2 关键字

  • Java语言共规定了48个关键字,Java语言关键字都是小写的
  • 在Java中保留但已经不再使用的2个关键字:const,goto
    在这里插入图片描述

1.3 数据类型

在这里插入图片描述

(1)整数类型

在这里插入图片描述

  • 整数类型的默认型为int型,声明long型常量要在数字尾部加l或L

(2)浮点类型

在这里插入图片描述

  • 浮点类型的默认型为double型,声明float型常量要在数字尾部加f或F

(3)字符类型

  • char用单引号
  • 支持转义字符
  • 此外,Java语言把字符串定义为一个类——String类,它不包括在8种基本数据类型当中,字符串数据必须用双引号括起来
    在这里插入图片描述

(4)逻辑类型

  • Java语言中,逻辑类型与整数类型不能进行直接转换,与C/C++不同

基本数据类型转换

  • boolean类型不可以转换,其他基本数据类型转换规则如下:
  • 多种类型数据混合运算时,系统首先自动将所有的数据转换成容量大的那种数据类型,然后再进行计算。
  • 数据类型按容量排序为:
    • byte, short, char < int < long < float < double
    • byte, short, char之间不会相互转换,他们三者在计算时首先转换为int类型
  • 容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出。

1.4 常量

  • 文字常量:所有基本数据类型都可以定义常量,其取值范围内的值都可以被表示成文字常量
    整型常量:123 实型常量:3.14159
    字符常量:‘a’ 逻辑常量:true、false
  • 符号常量:用“final”修饰,其值在赋值之后将不能再作改动
    static final PI=3.14159;

1.5 变量

  • 任何变量、数组、对象实例在使用之前必须经过声明、创建和初始化
    • 声明是要把代表变量的标识符作出说明
    • 创建是为其分配存储空间
    • 变量的初始化:
      方法体外声明的变量,系统可自动赋初值(类成员变量)
      方法体内声明的变量,需由语句赋初值(局部变量)
      在这里插入图片描述
  • 从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(初始化),才能够使用。

1.6 程序执行过程

在这里插入图片描述

2.操作符

  • Java的操作符基本上继承了C和C++的操作符体系,从形式到功能,包括优先级和结合性与C和C++的操作符非常相似。
  • Java取消了结构体成员操作符“->”,指针操作符“*”和“&”,长度操作符“sizeof”。

2.1 赋值操作符 =

基本类型与引用类型的赋值区别
大多数基本类型赋的值在栈里,引用类型值在堆里
例2.3:
n1=n2是将n1指向了n2所指向的空间
之后改变n1.i,n2.i也会改变(有点像指针,但不是指针)

在这里插入图片描述

2.2 数学运算符

++i:首先将i自增
i++:最后将i自增
在这里插入图片描述

2.3 关系操作符

适用于基本类型;
equals()适用于对象类型;
例2.5:
s1
s2是比较在栈中的s1和s2,结果false
s1.equals(s2)是比较指向的堆中的两个对象的内容是否相同,结果true
在这里插入图片描述
进一步辨析==与equals():
写法"“.equals(userName)比userName.equals(”")更好
在这里插入图片描述

2.4 逻辑操作符

在C和C++中,用整型数据替代逻辑型数据;而JAVA中整型数据与逻辑型数据不存在互换关系。
Java语言改变了C和C++中对下面6个操作符的定义:

  • “!”操作符将原有的“逻辑非”运算修改定义为对逻辑数据的“逻辑非”运算;
  • “&&”操作符将原有的“逻辑与”运算修改定义为对两个逻辑数据的“逻辑与”运算;
  • “||”操作符将原有的“逻辑或”运算修改定义为对两个逻辑数据的“逻辑或”运算。
  • “&”操作符将原有的“按位与”运算修改定义为对两个整数的“按位与”运算和对两个逻辑数据的“逻辑与”运算;
  • “|”操作符将原有的“按位或”运算修改定义为对两个整数的“按位或”运算和对两个逻辑数据的“逻辑或”运算;
  • “^”操作符将原有的“按位异或”运算修改定义为对两个整数的“按位异或”运算和对两个逻辑数据的“逻辑异或”运算;

&&、||与&、|的区别:

  • “&&”和“||”在计算逻辑值时,如果仅靠左运算数即可判定运算结果时,右运算数的值将不被计算,所以它们也被称为“条件与”和“条件或”。
  • 而“&”和“|”在计算逻辑值时,总是将两个运算数的值都计算出来之后再作逻辑运算。
    在这里插入图片描述

2.5 位操作符和移位操作符

位操作符和位移操作符用来对二进制位进行运算,操作数应是整数类型,结果也是整数类型。下表给出了各操作符及其功能。

在这里插入图片描述

2.6 字符串操作符

在这里插入图片描述

2.7 三元条件操作符

同C/C++

3.表达式与语句

同C/C++

4.控制流程

顺序、分支、循环同C/C++;

跳转:
1.Java没有goto
2.label功能:带label的break语句和continue语句可实现类似goto的功能,用法如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.良好的Java代码规范

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值