本篇博文主要总结java的基础语法,主要的内容包括:关键字、标识符、注释、常量和变量、运算符几部分。
一、关键字
关键字是被Java语言赋予了特殊含义的单词。关键字中所有的字母都是小写。
java中的关键字主要包括如下几部分:
1、用于定义数据类型的关键字
应用数据类型:class(类) interface(接口)
八种基本数据类型,byte、short、int、long、float、double、char、boolean
void(定义函数U没有返回值类型)
2、用于定义数据类型值得关键字
boolean类型的两个值,true(真),false(假)
null表示应用类型所指向对象为空。
3、用于定义流程控制的关键字
主要是用来做判断、循环控制等的关键字,每一项都很熟悉就不一一介绍了。
判断:if else switch case default
循环:for while do
继续循环:continue
结束循环或选择结构:break
返回:return
4、 用于定义访问权限修饰符的关键字
private(私有的) protected(受保护的) public(公有的)
5、 用于定义类、函数,变量修饰符的关键字
abstract(抽象的) final(最终的) static(静态的) synchronized(同步的)
6、用于定义类与类之间关系的关键字
extends(继承类) implements(实现接口)
7、 用于定义建立实例及引用实例,判断实例的关键字
new(建立实例) this(当前引用) super(父类引用) instanceof(判断对象类型)
8、 用于异常处理的关键字
try(检查异常) catch(捕获异常) finally(最终执行)
throw throws:两多表示抛出异常,但使用位置不同
9、 用于包的关键字
package(创建包) import(导入包)
10、其他修饰关键字
native(本地)
strictfp(strict float point,精确浮点)
transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)
volatile(类型修饰符,用来修饰被不同线程访问和修改的变量)
assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)
注意:main不是关键字,却是被虚拟机所识别的一个名称。
二、标识符
标识符是在程序中定义的一些名称。由26个英文字母大小写,数字:0-9,符号:_、$组成,且数字不能作为标识符的开头。
java中的标识符的命名规则
1、包名:多单词组成时所有字母都小写。如:xxxyyyzzz。
2、类名接口名:多单词组成时,所有单词的首字母大写。如:XxxYyyZzz。
3、变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。如:xxxYyyZzz。
4、常量名:所有字母都大写。多单词时每个单词用下划线连接。如:XXX_YYY_ZZZ
三、注释
用于解释说明程序的就是注释,注释的存在是为了提高程序的可阅读性。我们写的程序不光是要给自己看,还需要给别人看,所以良好的注释习惯能够大大提高代码的可读性,对工作大有裨益。
java中的注释主要有三种:
1、单行注释,格式是 //注释文字
2、多行注释,格式是 /*注释文字*/
3、文档注释,格式是 /**注释文字*/
在注释时有几个重要的知识点我们需要掌握:
1、对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。所以,即使添加再多的注释,编译后生成的class文件占用硬盘字节多少不变。
2、对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
3、注释是一个程序员必须要具有的良好编程习惯。初学者编写程序必须养成习惯:先写注释再写代码。
4、将自己的思想通过注释先整理出来,再用代码去体现,因为代码仅仅是思想的一种体现形式而已。
四、常量
常量是是不能改变的数值,java中的常量包括:
1、整数常量:所有整数。
2、小数常量:所有小数
3、布尔型常量:true,false
4、字符常量:将一个数字字母或者符号用单引号('')标识,如:'a'。
5、字符串常量:将一个或者多个字符用双引号("")标识,如:"helloworld"、"a"、""(空字符串)。
6、null常量:只有一个数值就是:null。
五、变量
变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。变量的特点其实就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。
java语言的数据类型包括8种基本类型,3种引用类型。
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
float 4个字节
double 8个字节
char 2个字节
boolean 1个字节
注意:整数默认类型:int类型,小数默认类型:double类型。
变量的类型转换是我们在开发过程中经常遇到的问题,类型转换共分为两种,自动类型转换(也称隐式转换)和强制类型转换。
下面是一个自动类型转换的例子:
1 class CastDemo 2 { 3 public static void main(String[]args) 4 { 5 int x=3; 6 byte b=5; 7 x=x+b;//int类型的变量占4个字节,当byte类型的变量与其相加的时候,首先会将byte类型的变量自动转化为4个字节的int类型,然后再进行加法操作。 8 System.out.println(x); 9 } 10 }
这里的结果输出 8。
下面是一个强制类型转换的实例:
1 class CastDemo 2 { 3 public static void main(String[] args) 4 { 5 System.out.println((char)('a'+1));//‘a'+1实现了自动类型转换,结果是int类型的值,通过(char)强制转换成为了char类型的值。 6 } 7 }
输出结果为 b:
在表达之中数据类型能够自动转换,自动转换的规律如下:
1、所有的byte型、short型和char的值将被提升到int型。
2、如果一个操作数是long型,计算结果就是long型。
3、如果一个操作数是float型,计算结果就是float型。
4、如果一个操作数是double型,计算结果就是double型。
六、运算符
上面的运算符都是我们在编程中经常用到的运算符。
这里讲一个在面试中经常会出现的问题。
下面的代码是否有错?如果有错,指出错误。如果没有,请指出运行结果。
1 class CastDemo 2 { 3 public static void main(String[] args) 4 { 5 short temp=3; 6 temp=temp+3; 7 System.out.println(temp); 8 } 9 }
上面的代码编译会出错:
原因很简单:我们在上面的叙述中提到在short类型的变量temp在和整型常量3运算是发生了类型提升,结果变成了int型,此时将int型的结果赋值给short型的变量temp编译会出错。
到这里还是很简单的,那么接下来改一下题目:
由temp=temp+3改为temp+=3;结果是否会是一样的呢?
1 class CastDemo 2 { 3 public static void main(String[] args) 4 { 5 short temp=3; 6 temp+=3; 7 System.out.println(temp); 8 } 9 }
我们先运行一下看看结果:
编译没有出错了,结果输出是6,
原因是:在执行s+=4;语句时,编译器在编译的时候,默认进行了强制类型转换,也就是将int类型的数据转换成short类型的数据。
逻辑运算符
关于&&与&、||与|的相同点和不同点
&&、||和& |的运算结果相同,只是运算的过程不同。&&:当左边为false时,右边不参加运算,当左边为true时,右边不参加运算,这样可以提升效率。而|、&无论左边的运算结果是什么,右边都参与运算。使用&&和||比使用&和|更高效一些。另外&和|还可以参与位运算。
在位运算中最经典的问题就是不使用第三方变量实现两个变量的交换。代码如下:
1 class OperatorDemo 2 { 3 public static void main(String[] args) 4 { 5 //定义两个要互相交换的变量 6 int a = 3,b = 5; 7 8 System.out.println( "a = " + a + ",b = " + b ); 9 //连续的异或运算实现互换 10 a = a ^ b; 11 b = a ^ b; 12 a = a ^ b; 13 14 System.out.println( "a = " + a + ",b = " + b ); 15 } 16 }
输出结果为:
到这里java基础语法的第一篇就总结完了,虽然简单,但是还是有很多值得琢磨的小知识点,特别是数据转换这块,如果不明白原理,有些代码和结果看上去是莫名其妙的,但是一旦我们真正掌握了,看过去一目了然,简单而且有非常的有意思。
不断努力加油!为了明天更好的自己。