java语言作为一种人机交互的语言,会有很多固定的格式,这样计算机才能有效的按照这些固定的格式去读懂人给它的语言。在我的理解中这就是java语言的语法。这当然也是我们学习java语言的基础。java语法包括以下八大基本组成:
关键字、标示符、注释、常量变量、运算符、语句、函数以及数组
关键字
1、定义:是被java赋予了特殊含义的单词
2、特点:关键字中所有字母都小写,。关键字是已经被java语言赋予特殊含义的词语,也就不能用作其他用途。
3、常见关键字:private、 protected、 public、abstract 、final 、static 、synchronized、extends、 implements、if 、else、switch、true、false、null等。
4、特别需要注意的点:
1)main不是关键字,但是它是java程序默认的入口,因此也不可被用作其他用途
2)在写java程序时,一个java文件中只能存在一个公共类,也就是一个.java文件中只能有一个类被pulbic修饰
3)如果一个类被pulbic修饰,那么该类存在的java文件名一定要与该类名相同
标示符
1、定义:在程序中自定义的一些名称。可由数字、字母、_、$组成。
2、特点:
1)不能以数字开头;
2)不能使用关键字和保留字;如main,goto等。
3)java严格区分大小写。最好不要使用大小写的不同来区别不同的标示符,容易出现混乱。
注意:虽然java语言容许任何符合以上规则的任意字符组作为标示符,但是为了提高阅读性,我们需要尽量使用有意义的字符组。
3、java命名规范:
1)包名:多单词组成时所有字母都小写。如: xxxyyyzzz
2)类名接口名:多单词组成时,所有单词的首字母大写。如: XxxYyyZzz
3)变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。如:xxxYyyZzz
4)常量名:所有字母都大写。多单词时每个单词用下划线连接。如: XXX_YYY
注释
1、定义:用于注解说明和解释程序的文字就是注释
2、作用:为了提高程序的可读性
3、Java中的注释格式分为三种:
1)单行注释 格式: //注释文字
2)多行注释 格式:/* 注释文字*/
3) 文档注释 格式:/** 注释文字*/
注意:在多行注释里面不允许多行嵌套。
使用javadoc.exe可把java程序中的文档注释转化成帮助文档。如java提供的jdk帮助文档就是这样做成的。
常量与变量
1、定义:
常量与变量是不可分割的两个概念,常量和变量都是用来存储数据或表示数据的抽象概念。但是常量是不能被改变值的,而变量则可以。
2、常量的分类:
1)整数常量,所有整数 如1,-1
2)浮点数常量,所有小数 如1.1
3)布尔型常量,表示true false
4)字符常量,将一个数字、字母或者符号用单引号' '标识,如'3',只能放一个。
5)字符串常量,将一个或者多个字符用双引号" "标识,"a","ab"。
6)null常量,只有一个数值就是null
3、变量的分类:
4、整数的表现形式
二进制0--1 满2进1
十进制 0--9满10进1
八进制0--7 满8进1
十六进制 0--9 A B C D E F满16进1
由于计算机是通过电信号来存储数据的,因此计算机中数据都是以二进制的形式存在的。但是对与人类来讲十进制才是日常生活中最多的,二进制比较难理解,也难以书写,就出现八进制和十六进制
5、使用格式:
格式1: 数据类型 变量名 = 初始化值;
格式2:数据类型 变量名;
变量名 = 初始化值;
理解:变量就如同数学中的未知数。
内存中的一个存储区域,在该区域有自己的名称和类型,该区域内数据可以在同一类型范围内不断变化。
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
运算符
1、算数运算符
运算符 | 运算 | 范例 | 结果 |
+ | 正号 | +3 | 3 |
- | 负号 | b=4,-b | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-4 | 2 |
* | 乘 | 2*2 | 4 |
/ | 除 | 2/2 | 1 |
% | 取模 | 5%5 | 0 |
++ | 自增(前) | a=2,b=++a | a=3,b=3 |
++ | 自增(后) | a=2,b=a++ | a=3,b=2 |
-- | 自减(前) | a=2,b=--a | a=1,b=1 |
-- | 自减(后) | a=2,b=a-- | a=1,b=2 |
+ | 字符串相加 | "He"+"llo" | "Hello" |
2、比较运算符
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | false |
instance of | 检查是否是类的对象 | "Hello" | instance of String true |
3、逻辑运算符
运算符 | 运算 | 范例 | 结果 |
AND与 | false&true | false | |
| | OR或 | false|true | true |
^ | XOR异或 | false^true | true |
! | NOT非 | !true | false |
&& | AND短路 | false&&true | false |
|| | OR短路 | false||true | true |
4、位运算符
位运算 | 运算 | 范例 |
<< | 左移 | 3<<2=12 ------3*2*2=12 |
>> | 右移 | 3>>1=1 ------3/2=1 |
>>> | 无符号右移 | 3>>>1=1 ------3/2=1 |
& | 与运算 | 6&3=2 |
|| | 或运算 | 6|3=7 |
^ | 异或运算 | 6^3=5 |
~ | 反码 | ~6=-7 |
为一
5、三元运算符
格式:(条件表达式)?值1:值2 ;
如果条件表达式结果为true,则运算后的结果是值1,
如果条件表达式结果为flase,则运算后的结果是值2 ,
语句
1、判断结构:
1)if语句格式如下,
if(条件表达式)
{
执行语句;
}
条件表达式)
{
}
else
{
}
在实际运用中根据需要可以不要else if或else中的任意语句段。且else if可以有多个。
使用实列:
<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; text-indent: 28px; background-color: rgb(240, 240, 240);">class IfTest </span>{
public static void main(String[] args)
{
//需求1:根据用户定义的数值不同。打印对应的星期英文。
/*
int num = 1;
if(num==1)
System.out.println("monday");
else if(num==2)
System.out.println("tsd");
else
System.out.println("nono");
*/
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
int x = 4;
if(x==3 || x==4 || x==5)
System.out.println(x+"春季");
else if(x==6 || x==7 || x==8)
System.out.println(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");
if(x>12 || x<1)
System.out.println(x+"月份不存在");
else if(x>=3 && x<=5)
System.out.println(x+"春季");
else if(x>=6 && x<=8)
System.out.println(x+"夏季");
else if(x>=9 && x<=11)
System.out.println(x+"秋季");
else
System.out.println(x+"冬季");
}
}
2、选择语句
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
选择语句的特点:
1)switch语句判断的表达式的类型只能是以下四种:byte,short,int,char。
2)case之间与default有顺序。从第一个case开始依次执行,如取值与表达式相等则执行case下的执行语句。没有则执行下一条。
3)遇到break则跳出选择语句,不再执行选择语句下面的语句。
使用实列:
class SwitchTest
{
public static void main(String[] args)
{
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
int x = 4;
switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"春季");
break;
case 6:
case 7:
case 8:
System.out.println(x+"夏季");
break;
case 9:
case 10:
case 11:
System.out.println(x+"秋季");
break;
case 12:
case 1:
case 2:
System.out.println(x+"冬季");
break;
default:
System.out.println("nono");
}
/*
if和switch语句很像。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
*/
System.out.println("Hello World!");
}
}