Java对大小写敏感,如果出现了大小写拼写错误,程序无法运行
关键字class 表明Java 程序中的全部内容都包含在类中,Java是一种面向对象的语言。
main方法是Java应用程序的入口方法,它有固定的书写格式:
public static void main(String[] args ) {…}
在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由 于编译器忽略空格,所以花括号风格不受限制。
编程风格
注意缩进!
一定要有缩进。缩进就像人得体的衣着一样!
成对编程!
括号、引号都应该写完后,再往里加内容。
见名知意!
最基本的要求!
注释
作用
注释就是程序员为读者作的说明,是提高程序可读性的一种手段
类型
// 单行注释 注释内容从//到本行结尾
/* */ 多行注释 /* */ 注释不能嵌套
/** */文档注释 可以通过JDK提供的Javadoc命令,生成程序的API文档
注意
注释不会出现在字节码文件中。
即Java编译器编译时会 跳过注释语句。
标识符Identifier
作用
常量、变量、方法、类和包等的名称
命名规则
必须以字母、
_
下划线、美元符
$
开头。
其它部分可以是字母、下划线“
_”
、美元符“
$”
和数字的任意组合
大小写敏感,长度无限制。
不可以是
Java
的关键字。
注意
Java
不采用通常语言使用的
ASCII
字符集
Java
采用
unicode
这样的标准的国际字符集。因此,这里的字母的含义: 英文、汉字等等。
(
不建议大家使用汉字来定义标识符!
)
关键字/保留字
Java
关键字是
Java
语言保留供内部使用的
,
如
class
用于定义类。 关键字也可以称为保留字
,
它们的意思是一样的。
字符集简介
ASCII
英文字符集
1
个字节
ISO8859-1
西欧字符集
1
个字节
BIG5
台湾的大五码,表示繁体汉字
2
个字节
GB2312
大陆使用最早、最广的简体中文字符集
2
个字节
GBK
GB2312
的扩展,可以表示繁体中文
2
个字节
GB18030
最新
GBK
的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符
2
个字节
Unicode
国际通用字符集
2
个字节
Java基本数据类型
Java
是一种强类型语言
常量是有数据类型的
变量都必须声明其数据类型
常量和变量
常量变量定义
在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改
变, 有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。
变量举例:
在
2D
游戏程序中,需要代表人物的位置,则需要
2
个变量,一个是
x
坐标,一个是
y
坐标,在
程序 运行过程中,这两个变量的值会发生改变
常量举例
代表常数,便于程序的修改(例如:圆周率的值)
增强程序的可读性(例如:常量
UP
、
DOWN
、
LEFT
和
RIGHT
分辨代表上下左右,其数值分
别是
1
、 2、
3
和
4
)
在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代 表还是常
量代表。
Java
是一种强类型语言,每个变量都必须声明其类型。
Java
变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明
,
只有在变量声明以后,才能为其分配相应长度的存储单元,
声明格式为:
type varName [=value] [{,varName[=value]}]
;
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
电脑使用内存来记忆计算时所使用的数据。人类采用旅馆来存储外出住宿的人们。
内存中变量好比旅馆的房间,内存中常量好比住旅馆房间的人
int age = 20
;
age = 21
;
String name = “
小明”;
变量声明
变量声明举例:
double salary
;
boolean done
;
long earthPopulation
;
int age
;
可以在一行中声明多个变量:
int i ,j; // both are integers
不提倡这种风格,逐一声明每一个变量可以提高程序可读性。
可以将变量的声明和初始化放在同一行中,例如:
int age = 18;
float e = 2.718281828f;
变量的分类
按声明位置划分
局部变量:在方法或者语句块内部定义的变量
成员变量:在方法的外部,类的内部定义的变量
所属数据类型划分
基本数据类型变量
引用数据类型变量
六种数字基本类型变量的最大值和最小值
整型数据类型
整型常量
十进制整数,如:99, -500, 0
八进制整数,要求以 0
开头,如:
015
十六进制数,要求 0x
或
0X
开头,如:
0x15
整型常量默认为int型,声明
long
型常量可以后加‘
l ’
或‘
L ‘(
建议使用大写,小写容易误 认为数字
1),如:
long a = 55555555; //
不出错,在
Int
表示的范围内
(21
亿内
)
。
long b = 55555555555;//
不加
l
出错,已经超过
int
表示的范围。
java中整形变量范围
浮点型数据类型
浮点类型常量
十进制数形式,例如
:
3.14 314.0 0.314
科学记数法形式,如
314e2 314E2 314E-2
double f = 314e2; //314*10^2-->31400.0
double f2 = 314e-2; //314*10^(-2)-->3.14
浮点型变量
float类型:单精度类型,尾数可以精确到
7
位有效数字,在很多情况下,
float
类型的精
度很难满足需求。
double类型:双精度类型 精度是
float
类型的两倍,绝大部分应用程序都采用
double
类
型。
注意
浮点常量默认为double
。要变为
float
,需在后面增加
F/f.
如:
3.14F
浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数
字计算,需要使用 BigDecimal类
字符数据类型
单引号用来表示字符常量。例如‘A’
是一个字符,它与“
A”
是不同的,“
A”
表示含有一个字符的字符串。
char
类型用来表示在
Unicode
编码表中的字符。
Unicode
编码被设计用来处理各种语言的所有文字,它占
2
个字节,可允许有
65536
个字符;
ASCII
码占
1
个字节,可允许有128
个字符(最高位是
0
),是
Unicode
编码表中前
128
个字符。
Java
语言中还允许使用转义字符 ‘
\’
来将其后的字符转变为其它的含义,
char c2 = '\n'; //代表换行符
char
类型在内存中存储的是该字符的
Unicode
编码值,所以
char
类型可以当做
int
类型来处理
\\ \u005c
布尔数据类型(一位,不是一个字节)
boolean
类型有两个值,
true
和
false
oolean 类型用来判断逻辑条件,一般用于程序流程控制
final 常量
使用final
修饰的变量,只能被初始化一次,变成了常量。
final常量是有名称的
命名规则(规范)
所有变量、方法、类名:见名知意
变量、方法名:
首字母小写和驼峰原则
run(), runRun(), age ageNew monthSalary
常量:
大写字母和下划线:
MAX_VALUE
类名:
首字母大写和驼峰原则
: Man, GoodMan
运算符
Java
语言支持如下运算符:
算术运算符
: +
,
-
,
*
,
/
,
%
,
++
,
--
赋值运算符
=
扩展赋值运算符
:+=
,
-=
,
*=
,
/=
关系运算符: >
,
<
,
>=
,
<=
,
==
,
!=
逻辑运算符
: &&
,
||
,
!
位运算符
: &
,
|
,
^
,
~
,
>>
,
<<
,
>>> (
了解!!!
)
条件运算符 ?:
相关概念辨析
+
运算符 操作符
Operator
5+6 表达式
expression
5 6
操作数
Operand
int m =5+6;
语句
Sentence
算术运算符
1: / 除
6/4=1 6/4.0=1.5
2: % 取模(
求余
) 6%4=2
3: + 6+‘a’=103 6+“a“=6ª
4
:
++ a=2;b=++a+9; a=2;b=a+++9;
+
: 字符串相加,只要有一个操作数是字符串,自动变为字符串相连
二元运算符类型提升:
整数运算:
如果两个操作数有一个为
Long,
则结果也为
long
没有
long
时,结果为
int
。即使操作数全为
shot,byte
,结果也是
int.
浮点运算:
如果两个操作数有一个为
double,
则结果为
double.
只有两个操作数都是
float,
则结果才为
float.
一元运算符
(++, --)
:
int a = 3;
int b = a++; //
执行完后
,b=3
。先给
b
赋值,再自增。
int c = ++a; //
执行完后
,c=5
。先自增
,
再给
b
赋值
赋值运算符
基本赋值运算符
扩展赋值运算符
算术运算符和赋值运算符结合
关系运算符
关系运算符用来进行比较运算
关系运算的结果是布尔值:
true/false
注意
区分
==
和
=
不等于是!
=
不是
<>
逻辑运算符
逻辑运算符与布尔操作数一起使用,组成逻辑表达式
逻辑表达式的结果是布尔值
&
和
&&
的区别
“&”:
无论任何情况,“
&”
两边的表达式都 会参与计算。
“&&”:
当“
&&”
的左边为
false
,则将不会计 算其右边的表达式。即左false
则
false
“|”
和“
||”
的区别与“
&”
和“
&&”
的区别类似。
位运算符(了解)
位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。
如果操作的对象是char
、
byte
、
short
,位移动作发生前其值会自动晋升为
int
,运算结果也为int
条件运算符
语法格式
x ? y : z
唯一的三目运算符
执行过程
其中
x
为
boolean
类型表达式,先计算
x
的值,若为
true
,则整个三目运算的结果为表达式
y
的 值,否则整个运算结果为表达式 z
的值。
经常用来代替简单的
if-else
判断!
运算符的优先级
基本数据类型之间的转换
在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
转换方式:
自动转换
强制转换
除
boolean
类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
除
boolean
类型外,所有的基本数据类型包括:整型,浮点型,字符型。
基本数据类型之间的转换
算术运算时的转换
整型
,
浮点型
,
字符型数据可以混合运算。
运算中相邻两个操作数先转化为同一类型,转换从低级到高级,然后进行运算;运算的结果
再下一个操作数据进行运算,规则相同
3+'A'+45L
5+3.6+ 'A'+3.14f
赋值运算时的转换
自动类型转换(左>
右)
类型转换的方向
低
------------------------------------------------------>
高
byte —> short,char—>int —>long—>float —>double
强制类型转换(左<
右)
强转时,当心丢失数据或失真
当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一
个 完全不同的值。
总结
=右侧:所有变量先转换为字节数最多的数据类型,再计算
=两侧:左侧宽度
>
右侧宽度 自动转换
左侧宽度<
右侧宽度 强制转换
特例
可以将整型常量直接赋值给
byte, short, char
等类型变量,而不需要进行强制类型转换,只要
不超 出其表数范围
short b = 12; //合法
short b = 1234567; //
非法