--------- android培训、java培训、期待与您交流! ----------
任何编程语言都有基础组成部分。关键字、标示符、注释、常量和变量、运算符语句、函数、数组。下面总结一下这些部分。
一、关键字
关键字的定义和特点
定义:被java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写据类型的关键字
数据类型的关键字
byte | short | int | long | class |
float | double | char | boolean | void |
interface |
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 |
二、标示符
在程序中自定义的一些名词。
由26个英文字母大小写,数字:0-9 符号:_ $组成
定义合法标示符规则:
1.数字不可以开头
2.不可以使用关键字
java中严格区分大小写
注意:在起名字的时,为了提高阅读性,要尽量有意义。
java中的名称规范:
包名:多单词组成时所有字母都小写。如果多级包,用"."分开 如 www.itheima.com
aaabbbccc
类名接口名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
aaaBbbCcc
常量名:所有字母都大写。多单词时每个单词用下划线连接。
AAA_BBB_CCC
三、注释
什么是注释:用于说明解释程序的文件
好处:a.提高了代码的阅读性。被注释的文字,不会被JVM解释执行。
b.为以后调试错误。
对于文档注释,是java特有的注释,其中注释内容可以被jdk提供的工具javadoc所解析,
生成一套以网页文件形式体系的该程序的说明文档
java中注释格式
1.单行注释 格式://注释文
a:以//开头,以回车结束
b:单行注释是可以嵌套单行注释的
2.多行注释 格式:/*注释文字*/
a:以/*开头,以*/结束。
b:多行注释是不可以嵌套多行注释的,但可以嵌套单行注释。
3.文档注释 格式:/**注释文字*/
将来被Javadoc工具解析,生成一个说明书。
四、常量与变量
常量
表示不能改变的数值
java常量分类
1.整数常量。所有整数 1,2
2.小数常量。所有小数 12.2, -56.00
3.布尔常量。只有两个数 true false
4.字符常量。将一个数字字母或者符号用单引号('')标识。'A','a'
5.字符串常量。将一个或者多个字符用双引号("")标识。"java"
6.null常量。只有一个数值就是null
对于整数:java有几种表示形式
a.二进制 0-1,满2进1。以Ob开头 jdk1.7以后新特性
b.八进制:0-7,满8进1.用0开头表示
C.十进制:0-9,满10进1。
d.十六进制: 0-9,A-F,满16进1 用0x开头
变量
变量的概念:内存中的一个存储区域该区域有自己的名称(变量名)和类型(数据类型)
该区域的数据可以再同一类型范围内不断变化
为什么要定义变量: 用来不断存放同一类型的常量,并可以重复使用
使用变量注意:变量的作用范围(一对{}之间有效) 和 初始化值
public class Temp {
/**
* 格式1 数据类型 变量名 = 初始化值;
*
* 格式2 数据类型 变量名;
* 变量名 = 初始化值;
*/
public static void main(String[] args) {
int a = 10;
int b;
b = 2;
System.out.print(a+","+b);
}
}
五、java数据类型
java语言是强类型语言,对每一种数据都定义明确的具体数据类型,在内存中分配了不同大小的内存空间
java中的数据类型分为基本数据类型和引用数据类型。他们的共性之处在于,都是存在于栈内存中的。但是基本数据类型和引用数据类型在内存中的本质是有区别的,基本数据类型本身的值就是在栈内存中的,无需引用任何数据,自己管自己的。但是引用数据类型则不一样,它在栈内存中也有值,只不过这值是地址值,拿别人的。下面简单总结一下基本数据类型。
1、数据大小
整数型:
byte:字节型1字节 short:短整形2字节 int:整数型4字节 long:长整型8字节
浮点型
float:单精度浮点型4字节 double:双精度浮点型8个字节
字符型
char:字符类2字节
布尔型
boolean布尔型 不明确大小 两个值true false
注:整数默认是int类型。long类型要加L或者l后缀
浮点默认是double类型。float类型要加F或者f后缀
2、基本类型初始化
整数默认初始化为:0
浮点型默认初始化为:0.0f
字符型默认初始化为:null
布尔型默认初始化:false
3、类型转换
a、boolean类型不参与转换。(应为boolean是常量,默认值有两个值)
b、自动类型转换也叫隐式转换
(从小到大)byte-->(short,char)-->int-->long-->float-->double
c、强制转换也叫显示类型转换
<pre name="code" class="java">public class Temp {
public static void main(String[] args) {
byte b = 6;
int x = 4;
//运算两端同类型
x = x + 1;
//自动类型提升,运算两端不同类型不能运算 数值型例外
x = x + b;//b自动提升为int类型
//强制类型转换
// b = b + 4; 编译失败丢失精度,左边为byte类型,右边byte和int类型相加
b = (byte)(b+4); //强转为byte
System.out.println((char)('a'+1));// 'a'ascii码是97 97+1=98 对应的字符b
/**
* b+=4 和 b=b+4 区别
* b+=4 为1步运算相当于 b =(byte)(b+4) 编译器自动类型转换
* b=b+4 编译失败没自动转换
* 1.b为变量类型不明确
* 2.b+4 类型提升不能赋给byte
*/
}
}
<pre name="code" class="java">public class Temp {
public static void main(String[] args) {
/**
* 思考:
* byte b1 = 3,b2 = 4,b;
* b = 3 + 4;
* b = b1 + b2;
* 哪个编译失败。
*
* b = 3 + 4编译成功 因为左边为byte右边为int类型
* 编译器先判断右边是不是在byte字节这个范围之内(-128~127),如果在的话,把这个做了一个默认的强转,
* 把最后一个字节赋到b中,这时b是在byte范围内所以编译不会报错。
*
* b = b1 + b2编译失败。因为b1,b2为变量不确定。编译器不能判断是否在byte范围类
* b1可能为127
*
* 如果b为int类型 则b=b1+b2 编译通过因为int为整数默认数据类型如果超出范围就会自动转换负数
*/
}
}
4、数据溢出
public class Temp {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
long lg = Long.MAX_VALUE;
System.out.println("整型最大值: "+max); //2147483647
System.out.println("整形最大值+1: "+(max+1));// 数据溢出 -2147483648
//为了避免int溢出,可以在该表达式中任意常量后加L 或在变量前面加long,做强类型转换。
System.out.println("整型最大值+1: "+(max+1L)); // 2147483648
System.out.println("整型最大值+2: "+((long)max+2));//2147483649
//如果为long 类型溢出则没办法 需要判断了
System.out.println("长整型最大值+1: "+(lg+1));//-9223372036854775808
}
}