概要:今天的课程主要内容是Java编程中的一些基本概念及规范,包括了标识符,变量及常量,数据类型,运算符等,最后还有个Scanner中几个方法的应用。
一、标识符
标识符通俗点讲就是名字,将每个类,方法,变量,常量通过独特的标识符来进行区分;同一个类中自然不能出现两个相同的标识符。
Java中的标识符有以下几个基本的规则:
- 首位必须以 下划线_ 或字母 或美元符$ 来开头;
- 除首位外由须以 下划线_ 或字母 或美元符$ 或数字来组成;
- 标识符区分大小写且无长度限制;
- 不能是Java中的预设关键字;
Java中的预设关键字如下:
abstract |
Assert |
boolean |
break |
byte |
case |
catch |
char(character) |
class |
const |
continue |
default |
do |
Double |
else |
extends |
final |
finally |
float |
For |
goto |
if |
implements |
import |
instanceof |
Int |
interface |
long |
native |
new |
null |
Package |
private |
protected |
public |
return |
short |
Static |
strictfp |
super |
switch |
synchronized |
this |
Throw |
throws |
transient |
try |
void |
volatile |
While |
|
|
|
|
java中采用的是Unicode标准的国际码上述的字母也包括汉字等其他文字字符(一般不建议使用除英文字母外的其他文字);
标识符使用最重要的原则是见名知意,还有的几点规范:
- 类的标识符首位用大写的字母;
- 命名使用多个词组成的遵守驼峰原则,中间的首字母大写或者在单词之间加以_;
- 常量名全部由大写组成并在不同单词之间加以_;
二、变量和常量
1)变量variable:
变量是内存中的空间,通过变量的标识符来标识,可以通过变量的标识符来对变量所在的空间进行读写操作,
2)常量:
初始化后不能再改变
例如:final double PI = 3.14;
三、基本数据类型
数据类型:基本数据类型和引用数据类型
1.基本数据类型(4类8种)
1)整型: byte,short,int,long
2)浮点型:float和double
3)字符型:char
4)布尔型型:boolean(只有true和false两个值,经常用作判断的条件)
byte占1个字节(8位), 范围-2^7~2^7-1-à-128~127
short占2个字节(16位), 范围-2^15~2^15-1-à-32768~32767
int占4个字节(32位), 范围-2^31~2^31-1-à大约21亿
long占8个字节(64为) 范围-2^63~2^63-1
float占4个字节(32位):单精度浮点类型,精确尾数后7位。
double占用8个字节(64位):双精度浮点类型。
char采用Uincode码,占用2个字节(16位),可以表示一个汉字或字符
boolean占1位,其值只有true和false
2.引用数据类型(数组,类和接口)
四、运算符
1)算术运算符: +,-,*,/,%(求余), ++(自增),--(自减)
i++和++i的区别 :都会对i执行自加操作,如果++i或i++作为单独的语句进行执行无差别;i++先执行其他操作然后再执行自加操作,++i先执行自加操作在执行其他操作。
2)赋值运算符:=
复合赋值运算符: +=,-=,*=,/=,%=
3)比较运算符:>,>=,<=,<=,!=,==
4)逻辑运算符:
短路与&&:如果两个表达式中第一个为false,第二个表达式将不再进行运算。
逻辑与&:不论表达式1是否为真,表达式2都将进行运算。
短路或||:如果两个表达式中第一个为true,第二个表达式将不再进行运算。
逻辑或|: 不论表达式1是否为真,表达式2都将进行运算非!:取反
异或^:
5)位运算符
运算符 |
含义 |
示例 |
~ |
按位非(NOT)/取反 |
b = ~a |
& |
按位与(AND) |
c = a & b |
| |
按位或(OR) |
c = a | b |
^ |
按位异或(相同为0相异为1) |
c = a ^ b |
>> |
右移;左边空位补最高位即符号位 |
b = a >> 2 |
>>> |
无符号右移,左边空位补0 |
b = a >>> 2 |
<< |
左移;右边空位以补0 |
b = a << 1 |
6)条件运算符(三目运算符): ?代替if…else条件结构
int max= a>b?a:b;
运算符的优先级 :
类型转换:
自动转化: 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失。
byte--àshort-àint -àlong-àfloat-àdouble
两种数据类型相互兼容
目标类型大于源类型
特例: 可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
Short b = 12; //合法
short b = 1234567; //非法
强制类型转换(Cast): 强制类型转换,又被称为造型,用于显式的转换一个数值的类型. 在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
强制类型转换的语法格式:“(type)var”,运算符“()”中的type表示将值var想要转换成的目标数据类型。
例如:double x = 3.14;
int nx = (int)x; //值为3
当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。
例如: int x = 300;
byte bx = (byte)x; //值为44
不能在布尔类型和任何数值类型之间做强制类型转换。