Java基础语法
Java的关键字及保留字
关键字(Keyword)
关键字的定义和特点
定义:被Java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写
注意事项:
1)true、false、null 不是关键字!是字面量。
2)main 不是关键字,是一个特殊单词,可以被 JVM 识别,主函数是固定格式,作为程序的入口。
保留字(Reserved Word)
现有Java版本尚未使用,但是以后的版本可能会使用关键字,命名标识符时要避免这些保留字(goto、const)
标识符及命名规则
给类、方法、变量起的名字,凡是自己可以起名字的都叫标识符。
定义合法标识符规则:
1)必须以字母或下划线或 $ 符号开始,其余字符可以是字母、数字、$ 符号和下划线。
2)只能包含两个特殊字符,即下划线 _ 和美元符号 $ 。不允许有任何其他特殊字符。
3)数字不可以开头。
4)不可以使用Java中的关键字和保留字,但能包含关键字和保留字。
5)Java中严格区分大小写。
6)标识符不能包含空格。
* 使用驼峰命名法,为了提高阅读性,见名知意。Java中的名称规范:[参照:阿里巴巴Java开发手册.pdf]
常用的命令规范:
1)包名(package):多单词组成时所有字母都小写。xxxyyyzzz
2)类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz
3)变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz
4)常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ
* 为了提高阅读性,建议见名知意。Java中采用Unicode字符集,所以标识符也可以使用汉字去声明,不建议使用。
Java中的注释
用于注解说明解释程序的文字就是注释。注释的好处:提高了代码的阅读性。
Java中的注释格式[三种]:
> 对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。[查看源文件的属性大小作比较比较直观的了解]
>
对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc
所解析,生成一套以网页文件形式体现的该程序的说明文档。注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,在用代码去体现。因为代码仅仅是思想的一种体现形式而已。
变量和常量
变量(Variable)
内存中一块存储空间,可保存当前数据。在程序运行过程中,其值是可以改变的。
使用变量的注意事项
1)必须先声明并且初始化以后再使用(在同一个作用域中不能重复声明变量)!
2)变量必须有明确类型(Java 是强类型语言)。
3)变量有作用域(变量在声明的地方开始,到块{}结束)。变量作用域越小越好。
4)局部变量在使用前一定要初始化!成员变量在对象被创建后有默认值,可直接用。
5)在方法中定义的局部变量是在该方法被加载时创建。
局部变量:在方法内部定义的变量,称为局部变量(代码块里面变量).
局部变量的特点:局部变量必须先定义后使用;局部变量的内存在栈中分配。
为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用
使用变量注意:
1、变量的作用域(一对{ }之间有效)
2、定义变量的格式:数据类型 变量名 = 初始化值 => int x=3;
3、局部变量的命名规范:首字符小写,如果是多个单词构成,从第二个单词开始每个单词的首字符大写。
4、终态变量的命名规范:所有字符全部大写,多个单词构成,使用下划线分隔。
常量
在程序运行过程中,其值不可以改变的量。
Java中常量的分类
1)整数常量:所有整数
2)小数常量:所有小数
3)布尔(boolean)型常量:较为特有,只有两个数值。true false。
4)字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
5)字符串常量。将一个或者多个字符用双引号(" ")标识。
6)null常量。只有一个数值就是:null.
Java中对于整数:有四种表现形式。
二进制:0,1 ,满2进1
八进制:0-7 ,满8进1. 用0开头表示。
十进制:0-9 ,满10进1.
十六进制:0-9,A-F,满16进1. 用0x开头表示。(数字0,并不是字母O)
注意事项:
1)字面量、常量和变量的运算机制不同,字面量、常量由编译器计算,变量由运算器处理,目的是为了提高效率。
2)不管是常量还是变量,必须先定义,才能够使用。即先在内存中开辟存储空间,才能够往里面放入数据。
3)不管是常量还是变量,其存储空间是有数据类型的差别的,即有些变量的存储空间用于存储整数,有些变量的存储空间用于存储小数。
Java的数据类型(基本数据类型、引用数据类型)
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
数据类型的作用:
1)决定了占用内存空间的大小。
2)底层的存储的格式
3)决定了最终显式的形式。
*数据的具体类型有2种指定的方式:显式指定,隐式指定(通常是针对字面值。由编译器默认指定)
字符类型
char 类型:可以当作整数来对待。 无符号的短整型。没有负数.取值范围 [0-65535]
字符集:字符的集合。字符集合中的每一个字符都对应着一个唯一的整数。
1) ASCII:单字节字符集。只用到了一个字节的后7位。128个字符。
2) ISO8859-1:西欧使用的字符集,单字节字符集。256个字符。兼容了ASCII。
3) GB2312:双字节字符集。兼容了ASCII。主要收录了中文简体。
4) GBK:兼容了 gb2312.增加了繁体中文,还有各个少数民族的符号。
5) UTF-8:三字节的字符集。兼容了 ASCII。
6) Unicode:万国码。java 使用的字符集。jvm 使用的。保证所有的国家的符号都能识别。
转义字符(7种常用的转义字符)
\t: 水平制表符 对应着键盘上的Tab键。
作用: \t占用的半角的个数为[1-8]。从\t包括之前的输出的内容。总共占用的半角的位数必须是8的倍数。\t用来补齐8个半角位的倍数的。
\b:退格符: 对应着键盘上的 Backspace 键。
\r: 回车符: 让光标回到当前行的行首,后续的输出从行首输出。
\n:换行符: 让光标去下一行。Enter 键对应两个字符:\r\n 让光标去到下一行的行首。
\' : 字符单引号。
\" :字符双引号。
\\ :字符反斜杠
常用的基本数据类型
package com.boom.test; /**
* 基本数据类型代码演示
* @author xiaoyin
*
*/
public class Test { public static void main(String[] args) {
// 数据类型 变量名 = 初始化值
byte b = 3;
System.out.println("输出byte类型=>b=" + b);
short s = 4000;
System.out.println("输出short类型=>s=" + s);
int i = 12;
System.out.println("输出int类型=>i=" + i);
long l = 12345678;
System.out.println("输出long类型=>l=" + l);
long l2 = 541646465464465564l;/* 数值较大取值末尾+l */
System.out.println("输出long类型=>l2=" + l2);
// float f= 2.3;/*报错:单精度*/
float f2 = 2.3f;/* 强制转换f */
System.out.println("输出float类型=>f2=" + f2);
double d = 2.5;
System.out.println("输出double类型=>d=" + d);
char ch = 'C';
System.out.println("输出char类型=>ch=" + ch);
boolean b1 = true;
b1 = false;
System.out.println(b1); } }
基本数据类型代码演示
基本数据类型转换
方式:自动类型转换(也叫隐式类型转换), 强制类型转换(也叫显式类型转换)
类型转换:java 不支持 不同类型之间的运算。如果有不同类型之间的数据做运算的话,那么首先第一步做同类型转换。编译器来完成这种转换的。自动的完成的。
转换的规则
1:所有的 byte、short、char 的值将被提升到int型。
2:如果一个操作数是long型,计算结果就是long型;
3:如果一个操作数是float型,计算结果就是float型;
4:如果一个操作数是double型,计算结果就是double型。System.out.println(6 % 123456L);// 2.0
5:boolean类型不可以转换为其他的数据类型
上述的转换都是 编译器 来完成的。自动完成的。在编译期完成类型的转换,也就是将小类型的数据 当作大类型的数据来使用(如果需要)。
注意:1 和 2 自动转换 是 绝对安全的。 3、4 有可能存在精度的损失。java 语法上这样是允许的。
自动类型提升
强制类型转换(可能会丢失精度) 语法:(强制转换为的类型)(被转换的数据);
package com.boom.test; /**
* 数据类型转换
*
* @author xiaoyin
*
*/
public class Test { public static void main(String[] args) {
int x = 2;
byte b = 1;
x = x + b;// 占用较小的自动提升为int型
System.out.println("x=" + x);// x=3 byte b1 = 2;
b1 = (byte) (b1 + 5);// 强制类型转换
System.out.println("b1=" + b1);
// a=65+1=66 =>b
System.out.println("转换后输出字符:" + (char) ('a' + 1));// 强制转换为char 输出b byte b2 = 3;
byte b3 = 7;
int s;/* 强制转换 */
s = b2 + b3;// s=10
System.out.println("s=" + s); // Integer.MIX_VALUE int类型最大最小值
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
System.out.println("int_MAX=" + max + "\n" + "int_MIN=" + min); } }
数据类型转换