一、关键字
关键字的定义和特点
定义:被Java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写
用于定义数据类型的关键字
class |
interface |
enum |
byte |
short |
int |
long |
float |
double |
char |
boolean |
void |
用于定义数据类型值的关键字
true |
false |
null |
用于定义流程控制的关键字
if |
else |
switch |
case |
default |
while |
do |
for |
break |
continue |
return |
用于定义访问权限修饰符的关键字
private |
protected |
public |
用于定义类,函数,变量修饰符的关键字
abstract |
final |
static |
synchronized |
用于定义类与类之间关系的关键字
extends |
implements |
用于定义建立实例及引用实例,判断实例的关键字
new |
this |
super |
instanceof |
用于异常处理的关键字
try |
catch |
finally |
throw |
throws |
用于包的关键字
package |
import |
其他修饰符关键字
native |
strictfp |
transient |
volatile |
assert |
二、标识符
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则:
1.由26个英文字母大小写,数字:0-9,_或 $组成
2.数字不可以开头。
3.不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。
注意:在起名字的时,为了提高阅读性,要尽量有意义,“见名知意”。
Java中的名称规范:
包名:多单词组成时所有字母都小写。
• xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
• XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
• xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
• XXX_YYY_ZZZ
三、注释
用于注解说明解释程序的文字就是注释。
提高了代码的阅读性。
Java中的注释格式:
• 单行注释
• 格式://注释文字
• 多行注释
• 格式:/* 注释文字 */
• 文档注释
• 格式:/**注释文字 */
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
注释是一个程序员必须要具有的良好编程习惯。
初学者编写程序可以养成习惯:先写注释再写代码。
将自己的思想通过注释先整理出来,在用代码去体现。
因为代码仅仅是思想的一种体现形式而已。
四、常量与变量
常量表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5,字符串常量。将一个或者多个字符用双引号标识。
6,null常量。只有一个数值就是:null.
变量:其实就是内存中的一个存储空间,用于存储常量数据。
作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
变量的概念:
• 内存中的一个存储区域
• 该区域有自己的名称(变量名)和类型(数据类型)
• 该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
• 用来不断的存放同一类型的常量,并可以重复使用
使用变量注意:
• 变量的作用范围(一对{}之间有效)
• 初始化值
定义变量的格式:
• 数据类型 变量名 = 初始化值;
• 注:格式是固定的,记住格式,以不变应万变。
理解:变量就如同数学中的未知数。
什么时候定义变量?只要是数据不确定的时候,就定义变量。
变量空间的开辟需要什么要素呢?
1,这个空间要存储什么数据?数据类型。
2,这个空间叫什么名字啊?变量名称。
3,这个空间的第一次的数据是什么? 变量的初始化值。
变量的作用域和生存期:
变量的作用域:
作用域从变量定义的位置开始,到该变量所在的那对大括号结束;
生命周期:
变量从定义的位置开始就在内存中活了;
变量到达它所在的作用域的时候就在内存中消失了;
进制
• 对于整数,有四种表示方式:
– 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
– 十进制:0-9 ,满 10 进 1.
– 八进制:0-7 ,满 8 进1. 以数字 0 开头表示。
– 十六进制:0-9 及 A-F,满 16 进1. 以 0x 或 0X开头表示。此处的A-F不区分大小写。
所有数字在计算机底层都以二进制形式存在。
– 计算机以补码的形式保存所有的整数。
– 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
– 原码:直接将一个数值换成二进制数。
– 反码:是对原码按位取反,只是最高位(符号位)保持不变。
– Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位
–
l 进制的基本转换
• 十进制 二进制 互转
• 十进制转成二进制 除以2取余数
• 二进制转成十进制 乘以2的幂数
• 十进制 八进制 互转
• 十进制 十六进制 互转
• 负数的二进制表现形式
• 对应的正数二进制取反加1
变量的分类
• 按被声明的位置划分:
– 成员变量:方法外部、类的内部定义的变量
– 局部变量:方法或语句块内部定义的变量
– 注意:类外面(类对应的大括号外面)不能有变量的声明
• 按所属的数据类型划分:
– 基本数据类型变量
– 引用数据类型变量
整数类型:byte、short、int、long
• Java各整数类型有固定的表数范围和字段长度,不受具体 OS 的影响,以保证 java 程序的可移植性。
• Java 的整型常量默认为 int 型,声明 long 型常量须后加 ‘l’ 或 ‘L’
浮点类型:float、double
• 与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。
• Java 的浮点型常量默认为double 型,声明float 型常量,须后加 ‘f’ 或 ‘F’。
• 浮点型常量有两种表示形式:
– 十进制数形式:如:5.12 512.0f .512 (必须有小数点)
– 科学计数法形式:如:5.12e2 512E2 100E-2
字符类型:char
• char 型数据用来表示通常意义上"字符"。
• 字符型常量的三种表现形式:
– 字符常量是用单引号(‘ ’)括起来的单个字符,涵盖世界上所有书面语的字符。例如:charc1 = 'a'; char c2 = '中'; char c3 = '9';
– Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n'; -- '\n'表示换行符
– 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a表示\n。
• char 类型是可以进行运算的。因为它都对应有Unicode 值。
布尔类型:boolean
boolean 类型适于逻辑运算,一般用于程序流程控制:
– if条件控制语句;
– while循环控制语句;
– do-while循环控制语句;
– for循环控制语句;
• boolean类型数据只允许取值true和false,不可以0或非 0 的整数替代true和false,这点和C语言不同。
五、数据类型的转换
自动类型转换(也叫隐式类型转换)
• 容量小的类型自动转换为容量大的数据类型。
• 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
• byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
• 当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
强制类型转换(也叫显式类型转换)
• 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),但可能造成精度降低或溢出,格外要注意。
• 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。如: String a = “43”; int i = Integer.parseInt(a);
• boolean类型不可以转换为其它的数据类型。
类型转换的原理
什么时候要用强制类型转换?
表达式的数据类型自动提升
• 所有的byte型、short型和char的值将被提升到int型。
• 如果一个操作数是long型,计算结果就是long型;
• 如果一个操作数是float型,计算结果就是float型;
• 如果一个操作数是double型,计算结果就是double型。
自动类型提升
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换
byte b = 3;
b = b + 4;//报错
b = (byte)b+4;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b。
下面是代码示例:
public classTest
{
//成员变量
int c = 12;
public static void main(String[] args)
{
//申明了一个变量,局部变量
int a = 12;
a = 15;
System.out.println(a);
//关于变量的作用域
{
int b= 20;
System.out.println(b);
System.out.println(a);
}
//System.out.println(b);
//整型
byte i1 = 127;
short i2 = 3456;
int i3 = 3456789;
long i4 = 2345L;
//浮点型
//Java 的浮点型常量默认为 double型,声明 float型常量,须后加‘f’或‘F’。
float i5 = 12.34F;
//注意:直接给byte类型的变量赋值为一个合法范围内的数值,可以通过编译
//而直接给float类型的变量赋值为一个合法范围内的浮点型数值,则无法通过编译
byte i6 = 12;
float i7 = 12;
//i6 = 9;
//int i8 = 9;
//出现编译错误
//i6 = i8;
//字符型
char c1 = '马';
System.out.println(c1);
String str = "黑马";
System.out.println(str);
//转义字符
char c2 = '\n';
System.out.print(c2);
//System.out.println ();打印后换行,System.out.print();打印后不换行
System.out.println(c1);
//使用 unicode编码来标示字符
char c3 = '\u0061';
System.out.println(c3);//'a'
//使用强制类型转换
System.out.println((char)(c3 + 1));
//boolean 类型
boolean b1 = true;
System.out.println(b1);
b1 = false;
System.out.println(b1);
//不可以0或非 0的整数替代true和false,这点和C语言不同。
//b1 = 0;
//关于基本数据类型转换
//1.自动类型转换
int i9 = 123;
float i10 = i9;
//2.强制类型转换,使用时要加上强制转换符()
float i11 = 12F;
int i12 = (int)i11;
//注意:不兼容的数据类型之间不能转换
//1.字符串不能直接转换为基本类型
//2.boolean类型不可以转换为其它的数据类型
//3.有多种类型的数据混合运算时,
//系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
//两个 int类型相除的结果仍是一个 int类型
//以下代码编译出错
//int i13 = 12 / 5.0F;
//System.out.println(i13);
//4.byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
byte i14 = 12;
byte i15 = 13;
//以下代码编译出错
//byte i16 = i14 + i15;
}
}
//int x=13;//类的外面(类对应的大括号外面)不能有变量的声明
------- android培训、 java培训、期待与您交流! ----------