Java基本语法知识

2.1标识符及关键词

1.java关键字的使用

1.keyword定义:关键字就是Java语言中已经被赋予特定意义的一些单词,用做专门用途的字符串(单词),不可以把这类词作为标识符使用。
特点:关键字中所字母都为小写
具体哪些关键字:

在这里插入图片描述
在这里插入图片描述
2.保留字(reserved word):现Java版本尚未使用,但以后版本可能会作为关键字使用。具体哪些保留字:goto 、const注意:自己命名标识符时要避免使用这些保留字

2.标识符的使用

定义:用来标识类名、变量名、方法名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。(凡是自己可以起名字的地方都叫标识符。)

涉及到的结构
包名、类名、接口名、变量名、方法名、常量名
规则:Java语言规定标识符由字母、下划线、美元符号($)和数字组成,并且第一个字符不能是数字字符。标识符是区分大小写的。(必须要遵守。否则,编译不通过)

由26个英文字母大小写,0-9,_或$组成
数字不可以开头
不可以使用关键字和保留字,但能包含关键字和保留字
java中严格区分大小写,长度无限制
标识符不能包含空格

规范:(可以不遵守,不影响编译和运行。但是要求大家遵守)

包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ

2.2数据类型

定义:数据类型是从数据所占用存储空间大小以及对数据的操作方式两方面性质的抽象描述。
分类:基本数据类型、引用数据类型
1.基本数据类型即简单数据类型。
分别是boolean、byte 、short、int、long、float、double、char。
逻辑类型:boolean (8)
字符类型:char (16)
整数类型:byte(8)、short(16)、int(32)、long(64)
浮点类型:float(32)、double(64)
2.引用数据类型
Java中以类、接口和数组的形式定义的数据类型。
class MyDate{
int year;
int month;
int day;
……
}
引用数据类型是通过包含的成员的数据类型来决定存储空间大小和对数据的操作方式。

2.3 常量与变量

1.常量
所谓常量,是指在程序运行的整个过程中其值始终不可
改变的量。Java中常量有布尔常量、整型常量、字符常量、字符串常量和浮点常量。
逻辑类型常量:true,false
整数类型:二进制(0b)、十进制数、八进制数(0)和十六进制数(0x);默认为 int。
浮点类型:含有小数部分的数值常量,单精度f(F),双精度d(D);一般表示法和指数表示法;
字符常量:单引号括起来的一个字符。表2.2转义字符
字符串常量:用双引号括起的一串若干个字符(可以是0个),可以包括转义符和八进制/十六进制符号。

2.变量
tips:(java是强类型,也就是说每个变量必须明确指出它是什么类型,变量包括变量类型,变量名,存储的值)
(1)变量的定义与声明 :变量必须先声明后使用,声明时要指明变量的数据类型和变量名称,必要时还可以指定变量的初值.
(2)两种类型变量结构和含义不同
基本类型变量:只包含单个值,该值的长度和格式符合变量所属的数据类型的要求,如int型变量的值是32位二进制补码格式的数据,而char型变量的值是16位Unicode字符格式的数据。
引用类型变量:引用类型的变量的值是指向内存空间的地址(引用)。所指向的内存中保存着变量所表示的一个值或一组值。
在这里插入图片描述

在这里插入图片描述

详细说明:
//1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
① byte范围:-128 ~ 127
② 声明long型变量,必须以"l"或"L"结尾
③ 通常,定义整型变量时,使用int型。
④整型的常量,默认类型是:int型
//2. 浮点型:float(4字节) \ double(8字节)
① 浮点型,表示带小数点的数值
② float表示数值的范围比long还大
/③ 定义float类型变量时,变量要以"f"或"F"结尾
④ 通常,定义浮点型变量时,使用double型。
⑤ 浮点型的常量,默认类型为:double
//3. 字符型:char (1字符=2字节)
① 定义char型变量,通常使用一对’’,内部只能写一个字符,字符常量是用单引号(‘ ’)括起来的单个字符
Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。
例如:char c3 = ‘\n’; // '\n’表示换行符
在这里插入图片描述
② 表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
//4.布尔型:boolean
① 只能取两个值之一:true 、 false
② 常常在条件判断、循环结构中使用

按声明的位置分类(了解)
在这里插入图片描述

(3)两种类型变量声明不同
基本类型变量:声明时,系统直接为其分配数据存储空间。故程序可直接操作该空间对变量进行初始化。
int a; a=34;
引用类型变量:引用类型的变量在声明时,系统只给它分配指向内存空间的引用(地址),而数据空间未分配。所以引用类型变量声明后不能直接使用,必须申请了数据空间后,才能对变量所指向的空间进行访问。
在这里插入图片描述
(4)变量赋值
基本类型变量之间赋值
引用类型变量之间赋值
(5)变量作用域(变量的可见性)
局部变量
方法参数
异常处理参数
类的成员变量
(6)变量初始化
类的成员变量的初始值是由系统进行默认初始化;
局部变量使用前必须由用户显式进行赋初值。

2.4 运算符与表达式

1.算术运算符及表达式

(1) 双目运算符
在这里插入图片描述
说明:若操作数为整数,%运算规则为:a%b=a-(a/b)b;
若操作数为浮点数, %运算规则规则为:a%b=a-(b
q),这里q=(int)(a/b)
(2) 单目运算符
在这里插入图片描述

2.关系运算符及表达式

<1>关系运算符:<,>,<=,>=,!=,==
<2>关系运算符用来比较两个操作数的关系;
<3>操作数是数值型的常量、变量或表达式
<4>关系表达式=操作数+关系运算符
<5>关系表达式的运算结果是boolean类型

3.逻辑运算符及表达式

<1>逻辑运算符包括:&&,||,!,&,|。
&&、&、|| 、|为双目运算符,实现逻辑与、逻辑或;!为单目运算符,实现逻辑非。
<2>逻辑运算符的操作数必须是boolean型数据 .
<3>逻辑运算符可以用来连接关系表达式。
例1:(2>8)&&(9>2)的结果为false,
例2:(2>8)||(9>2)的结果为true。
<4>逻辑表达式=boolean类型变量或表达式+逻辑运算符。

4.位运算符及表达式

<1>位运算符分为:位逻辑和位移位运算
<2>位逻辑运算符
“&”是双目运算符; “|”是双目或运算符。
“~”是单目取反运算符;“^”是双目异或运算符。
<3>位移位运算符
1.左移位运算符“<<”,运算符左边的操作元称为被移位数,右面的操作数称为移位量。运算规则是左边的高位0或1被移出丢弃,并用0填充右边的低位。
2.右移运算符“>>”, 运算规则是如操作数是正数,右移时高位用0填充,是负数时用1填充。
3.无符号右移“>>>”右移后左边空位填0。无符号右移运算符>>> 只是对32位和64位的值有意义,在表达式中过小的值总是被自动扩大为int 型。
<4>位运算符的操作数是整数

5.赋值运算符及表达式

<1>赋值运算符:=
<2>赋值运算符是双目运算符,左面的操作数必须是变量,不能是常量或表达式。
<3>赋值运算符的优先级较低,结合方向右到左。
<4>赋值表达式的值就是“=”左面变量的值。
<5>注意:不要将赋值运算符“=”与等号运算符“==”混淆。
<6> 另外,Java还规定了11种复合赋值运算符,例如 在这里插入图片描述

6.其他运算符及表达式

(1) 三目条件运算符
<1>运算符:? :
<2>格式:op1?op2:op3

op1的值是boolean类型
运算规则:当op1为true,返回的结果值为op2的值;否则为op3的值

(2) instanceof 运算符(适用于引用数据类型)
格式:op1 instanceof op2

op1是一个对象;op2是一个类。
当op1是op2创建的对象时,该运算符运算的结果是true ,否则是false。

2.5 数据类型转换

1.数据类型转换含义
把一种基本数据类型变量的值赋给另一种基本类型变量。
2.涉及基本数据类型转换的类型除逻辑类型有: byte short int long float double
3.数据类型转换方式
隐式转换(自动转换):实现低级数据类型向高级数据类型转换。

结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型
说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量

显式转换(强制转换):高级数据类型向低级数据类型转换。需要使用强转符:(): 格式为:(类型名)要转换的数据;
4.隐式转换是安全的;显式转换是不安全,容易丢失数据精度。
5.String与8种基本数据类型间的运算
①String属于引用数据类型,翻译为:字符串
②声明String类型变量时,使用一对""
③ String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
④运算的结果仍然是String类型
避免:
String s = 123;//编译错误
String s1 = “123”;
int i = (int)s1;//编译错误

2.6 控制语句

1.Java 语言的控制语句

  • 条件控制语句

<1>if 语句的一般形式:
if(表达式)
{ 若干语句
}
<2>if-else 语句的一般形式
if(表达式)
{ 若干语句
}
else
{ 若干语句
}

class IfElseTest {
	public static void main(String[] args) 
	{
		int month=4;
		String season;
		if((month==12)||(month==1)||(month==2))
			season="冬季";
		else if((month==3)||(month==4)||(month==5))
			season="春季";
		else if((month==6)||(month==7)||(month==8))
			season="夏季";
		else if((month==9)||(month==10)||(month==11))
			season="秋季";
		else 
			season="Bogus Month";
			System.out.println(month+"月是"+season+"。");
	}
}
  • 分支语句:switch语句
    switch 语句一般格式定义(其中break语句是可选)

switch(表达式) 表达式的值是整形或字符型,若jdk7,可为字符串
{
case 常量值1:
若干个语句
break;

case 常量值n:
若干个语句
break;
[default:
若干语句]
}
注意执行顺序,以及default语句的顺序。

  • 循环控制语句

for循环语句
for(表达式1;表达式2;表达式3)
{ 若干语句
}
while 循环
while(表达式)
{
若干语句
}
do-while循环
do
{
若干语句
}
while(表达式);

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach的语句格式:
for(元素类型 元素变量 : 数据集){

}
将一个集合作为一个整体放入for循环中,在for循环中可将集合中的元素进行逐个处理

例如: String[ ] names ={Wang,Zhang,Li,Wu};
  for(String option: names) {
      System.out.println(option);
         }
  • 跳转语句(break和continue语句)
    continue[label]
    不带标签: 跳过最内层循环的剩余语句,执行最内层循环的下一次循环
    带标签:结束标签所指外层循环的当前循环,开始执行该循环的下次循环
    break [label]
    不带标签:结束最内层的switch、for、while语句的执行
    带标签:结束标签所指示的循环,执行其后语句。
    label: statement

2.作用:用以实现良好的结构化程序设计
3.在实际应用中各控制语句可互相嵌套使用

2.7 数组

1.定义

数组是相同类型的数据按顺序组成的一种复合数据类型。
(1)数组中保存数值的个数称为数组长度。
(2)数组中所有数据按照顺序从0开始编号,此编号称为数组下标。
(3)通过数组名和数组下标来使用数组中的数据。

2.声明数组

(1)包括数组名字和元素的数据类型
(2)一维数组声明格式
数据元素类型 数组名字[ ];
数据元素类型 [ ] 数组名字;

例:
float boy[]; int girl[];
float[] boy; int[] girl;

(3)二维数组声明格式
数组元素类型 数组名字[ ] [ ];
数组元素类型[ ] [ ] 数组名字;

例:
float a[][]; double b[][];
float[][] a; double[][] b;

3.说明

数组声明不指定数据的长度;数据声明并不创建数组的存储空间,只是给该数组变量分配一个可引用该数组的地址空间。

4.数组创建

(1)为数组分配内存空间,同时确定数组长度,且不会改变。
(2)创建一维数组格式
数组名 = new 数组元素类型[数组长度];
(3)创建二维数组格式
数组名=new 数组元素类型[一维长度] [二维长度]
(4)静态创建数组格式:在声明数组的同时给数组中每个元素赋值,不需指定维度。

数组元素类型[] 数组名={数组元素值};
数组元素类型 数组名[] ={数组元素值};
数组元素类型[][] 数组名={{数组元素值},{},…};
数组类型 数组名[][] ={{数组元素值},{},…};

5.注意

(1)数组在创建后,其元素是被系统自动按默认类型进行初始化的。
(2)数据的长度可以用数组名.length获得。
(3)数组创建(是指为数组元素分配了存储空间)后,才可以访问或使用数组的元素。

数组创建举例
boy=new float[5];
a=new float[3][5];
char c[]={‘a’,’b’,’c’};
int [][] a={ {1,2,2},{2,4,3},{4,5,6}};
数组声明与创建并行
int boy[]=new int[20];
float[][] a=new float[3][5];

6.数组元素的使用

一维数组通过下标访问数组元素。例 a[1]。
二维数组也通过下标访问数组元素。例m[0][3]。

7.数组初始化

声明的同时初始化数组
创建数组后单独为每一个数组元素初始化

举例
int a[ ] = {1, 2, 3};
int[][] a={{1,2},{3,4}};
int a[]=new int[3]; a[0]=1;a[1]=2;a[2]=3;

8.数组赋值

(1)数组一旦创建,其大小不可变,但已有的数组变量可指向全新的数组;该数组原指的内容丢失
int a[ ] = new int[6];
a = new int[10] ; // 不必重新声明 a
(2)数组变量之间赋值是引用赋值。
1 int a[ ] = new int [6];
2 int b[ ];
3 b = a ;
在这里插入图片描述

9.数组拷贝

数组数据的复制,通过拷贝数组的函数。
System.arrayCopy(Object source, int srcIndex,
Object dest, int destIndex,
int length)
在这里插入图片描述

10.不规则数组创建及使用

(1)若是只指定了高维的长度而不给出最后一维的长度则可以构造不规则数组。创建不规则二维数组格式:
数组名=new 数组元素类型[行数][];
(2)利用new运算符为二维不规则数组分配存储空间时,只需指定二维数组的行数,不指定列数;然后根据需要分别为每行创建不同的存储空间。例如:
int[][] p = new int [2][]; //构造不规则数组
p[0] = new int [2]; //第一行有2个元素
p[1] = new int [3]; //第二行有3个元素
p[2] = new int [4]; //第三行有4个元素
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值