Java期末复习知识点总结(三)

Java语言程序设计(第三版)

这里接上一篇 第二章 面向对象程序设计基本概念
JAVA期末复习知识点总结(二)

第三章 Java语言基础

1.标识符

1.1标识符定义规则
  • 标识符包括 变量名,类名,方法名
  • 以字母,下划线,或$开头,后面可以跟字母、下划线、美元符、数字
  • 数字不能作为标识符的第一个字符
  • 标识符不能是Java语言的关键字
  • 大小写敏感,且长度没有限定

举例

合法举例:userNme /  user_name / _sys_varl / $change
非法举例:3line / class / room# / *point
1.2风格约定
  • 方法名使用动词(动名词),类名与接口名使用名词,如draw、Circle
  • 变量名、方法名首单词小写,其余单词只有首字母大写,如 anyVariableWorld、userName、findByName
  • 接口名、类名首单词第一个字母大写,如HelloWorld、UserDAO
  • 常量:完全大写 ,如:PI、MAX、COUNT_SIZE
  • 注释:// 注释一行
    /* */ 注释一行或多行
    / * *   */ 可用javadoc命令转化为HTML文件 (javadoc是JDK中API文档生成器)
1.3 关键字及分类

在这里插入图片描述

2.数据类型

2.1基本数据类型

在这里插入图片描述
在这里插入图片描述

2.2整数类型
在这里插入图片描述
8位=1字节
2.3浮点型
在这里插入图片描述
.

3.运算符与表达式

3.1 运算符与表达式

与C不同

  • Java是强制型语言,类型限制比C严格多,运算符的操作对象的类型会受到更多限制
  • Java不提供指针运算符,增加了对象操作符 instanceof ,字符串运算符+零填充的右移>>>等。
  • 算术运算操作符:+,-,*,/, %, ++, - -
  • 关系操作符:>, >=, < ,<=, ==, !=
  • 位操作符:>>, <<, >>>, & , |, ^(逐位异或),~ (按位取反)
  • 逻辑操作符:& , | , !, ^(异或), &&, ||
  • 赋值操作符:=, +=, -=, *=, /=, %=,&=, |=, ^=, <<=, >>=, >>>=
  • 其它操作符: ?: , [], . , ( ),(type), new, instanceof
3.2 算术操作符

在这里插入图片描述

3.3 +运算符

连接字符串

public class TestOperator {
	public static void main(String[] args) {
		String salutation = "Dr.";
		String name = "Pete" + "Seymour";
		String title = salutation + name;
		System.out.println("title的值为:"+ title);
	}
}

运行结果
在这里插入图片描述
+是 “加号” 还是 “连接符”?
先看几行代码(答案在后面)

System.out.println('a');
System.out.println('a'+1);
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");

答案:

System.out.println('a');  //a
System.out.println('a'+1);    //98
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5");//10=5+5

//字符串数据和其他数据做”+ ”运算,结果是字符串类型,这里的+是”字符串连接符”。
3.4 位操作符

对于任何一种整数类型数值,可以直接使用位运算符对这些组成整数的二进制位进行操作。

位逻辑运算符在这里插入图片描述
移位运算符
在这里插入图片描述
逻辑操作符
在这里插入图片描述

public class TestOperator {
	public static void main(String[] args) {
		int a=1;
		int b=2;
		boolean result =((a=9+3)<10) &&((b=8-3)>4);
		System.out.println("result=" + result);
		System.out.println("a=" + a);
		System.out.println("b=" + b);
	}
}

运行结果
在这里插入图片描述
赋值运算符
在这里插入图片描述
递增(减)运算符

public class TestOperator {
	public static void main(String[] args) {
		int a=10;
		System.out.println(a++);  //10 
		System.out.println(a);   //11
		System.out.println(a--);   //11
		System.out.println(a);   //10
		System.out.println(++a);  //11
		System.out.println(a);   //11
		System.out.println(--a);   //10
		System.out.println(a);   //10
	}
}

强制类型转换

  • 一般形式:(type) expression
    例:double a = 3.14;
    int b =(int) a;
  • 对强制类型转换的限制:
    整型与浮点型可以相互转换,但基本类型和数组、对象等复合类型之间不能互相转换。

4. 程序流控制

程序流控制语句可以是程序运行时,有条件的执行或重复执行某些语句,改变程序正规的顺序执行流向。Java语言提供了如下4类程序流控制语句:

  • 循环语句:包括while语句、do while语句和for语句。
  • 分支语句:包括 if 语句和switch语句。
  • 跳转语句:包括break语句,continue语句,label语句,return语句。
  • 异常处理语句:包括 try catch finally语句和throw语句。
4.1while和do while语句

while循环
在这里插入图片描述
do while循环
在这里插入图片描述
两种循环比较
在这里插入图片描述

4.2 for循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 if else语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4switch语句

在这里插入图片描述

表达式必须是一个整数,值是一个整数的类型有:byte,short,int,char而浮点型(float,double)或long型则不行;
常量表达式中不能出现变量;
当常量表达式的值跟switch表达式值相等时,就从该case语句开始执行,直到遇到break语句为止;
Switch可以用if else if结构来实现,switch语句简单结构性强,但数据类型受到了限制。

4.5 循环跳转语句

Java中可以用break和continue两个循环跳转语句进一步控制循环
在这里插入图片描述
在这里插入图片描述

5.数组

在这里插入图片描述

5.1数组的声明

可以声明任何类型数组,包括基本类型和类类型数组。
数组声明和其他类型的变量声明一样,包括两部分:数组的类型和数组的名字

  • 将表示数组的 [ ] 跟随在数组变量之后。
    这种格式是C, C++和Java的标准格式。例如:
    char s [ ];
    Point p[ ]; //Point 是一个类
  • 将表示数组的“[ ]”跟随在数组类型之后。
    这种格式是Java特有的。例如:
    char [ ] s;
    Point [ ] p;
    这种格式中,在数组标志“[ ]”后出现的所有变量都将是数组变量。例如:
    char [ ] s,m,n; //声明了三个字符数组变量s,m,n
    注意:在数组的声明中不指定数组长度。
      在Java中数组是作为类来处理的。在Java中类类型变量的声明并不创建该类的对象。所以数组的声明并不创建实例数组的数据空间,而是给该数组变量分配一个可用来引用该数组的引用空间。
5.2 数组的创建与初始化
5.2.1用new创建数组

数组的所有元素所需的内存空间是通过new运算符或通过数组初始化分配的。通过new运算符创建数组格式如下:
new elementType[arraySize]
在这里插入图片描述

5.2.2静态初始化

静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。
在这里插入图片描述

5.2.3动态初始化

在这里插入图片描述
在这里插入图片描述

5.2.4数组的长度

Java中为所有数组设置了一个表示数组元素个数的特性变量length,它作为数组的一部分存储起来。

  • Java用length变量在运行时进行越界检查,应用程序中也可以访问该变量获取数组的长度,格式 :arrayname.length
  • 数组在创建后长度是不可变的。因此不能改变数组的长度,但可以用该数组变量指向另一个全新数组,则通过该变量将不能访问原来的数组值,例如:
int a[] = new int [6];
a[0] = 10;
……
a = new int [10];//不用再次声明a,此时a[0]的值为0,而不是10
……
5.2.5对象数组

除了创建基本类型数组,还可以创建对象数组。例如,下列语句声明并创建了一个Point类型的数组:

Point  p[];
p=new Point[10];   //创建包含10 个Point类型对象应用数组
//创建10个Point对象
for(int i=0;i<10;i++){
	p[i]=new Point(i,i+1);
}

上述语句执行后,数组p在内存中的布局如下图所示:
在这里插入图片描述

5.3 多维数组

Java语言的多位数组可以看做是数组的数组,即n维数组是n-1维数组的数组。

5.3.1多维数组的声明

多维数组的声明格式与一维数组类似,只要用多对[ ]表示数组的维数,一般n维数组要用n对[ ]。例如二维:
int a [ ] [ ] ;
int [ ] [ ] a;
这两条语句等价。
在这里插入图片描述

5.3.2多维数组的应用

题目:
在这里插入图片描述

public class ArrayTest {
	public static void main(String[] args) {
		int[][] a={{35,82,13,10},{12,19,5,55},{67,98,72,10}};
		int max,min;
		max=min=a[0][0];
		for(int i=0;i<3;i++){
			for(int j=0;j<4;j++){
				if (max<a[i][j]){
					max=a[i][j];
				}
				if(min>a[i][j]){
					min=a[i][j];
				}
			}
		}
	System.out.println("数组中最大的元素值是:"+max);
	System.out.println("数组中最大的元素值是:"+min);
	}
}
5. 4 增强的for循环

在JDK5.0以后,为了便于数组的集合(collections)中的元素进行迭代处理,Java中引用了一种增强的for循环形式,其定义如下

for(类型 标识符 :可迭代类型的表达式) 语句;

其中,括号中的“类型 标识符”指定了一种类型的标识符,该标识符的类型应与冒号后面的表达式的类型兼容。
"可迭代类型表达式"一般是数组或集合,“:”可理解为in。
例如:

int [] numbers = {1,2,3,4,5,6,7,8,9,10};
for(int element : numbers) {
	System.out.println(element);
}

上述for循环课被读为:
for each element in numbers do {……}

5. 5 数组的复制

数组变量之间赋值是引用赋值,不能实现数组数据的复制,如下:

int a[ ] = new int [6];
int b = [ ];
b=a;

进行数组数据复制,要是用Java语言在java.lang.System类中提供的数组复制方法。该方法定义如下:

public  static void arraycopy(Object source,
								int srcIndex,
								Object dest,
								int destIndex,
								int length)

其中: source —— 源数组;srcIndex —— 源数组开始复制的位置;dest —— 目的数组;destIndex —— 目的数组开始存放复制数据位置;length —— 复制元素的个数。

在这里插入图片描述
例题:
在这里插入图片描述
数组的复制拓展

import java.util.Arrays;


public class TestArray {
	public static void main(String[] args) {
		int[] a = {10,20,30,40,50};
		int[] b = Arrays.copyOf(a, 3);
		int[] c = Arrays.copyOfRange(a, 1,5);
		int[] d = new int[3];
		System.arraycopy(a, 1, d, 0, 3);
		System.out.println(Arrays.toString(a));
		System.out.println(Arrays.toString(b));
		System.out.println(Arrays.toString(c));
		System.out.println(Arrays.toString(d));
	}
}

输出结果:
在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑君吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值