复习提纲 Java

第一章

java的特点:

  • 简单,易于编写,有垃圾处理机制
  • 与平台无关(Java虚拟机 : 在一个计算机上编译得到的字节码文件可以复制到任何一个安装了JRE的电脑上直接使用。字节码由JVM负责解释、运行,即Java虚拟机负责将字节码翻译为本地计算机的机器码,并将机器码交给本地操作系统来运行)
  • 面向对象
  • 多线程
  • 安全
  • 动态
    在这里插入图片描述

Java的使用:
编写源文件 -->经Java编译器产生字节码–>Java解释器执行字节码文件

第二章

标识符:

  1. 字母、数字、_、$
  2. 第一个字符不为数字
  3. 不能是关键字
  4. 不能为true, false, null
    注意:Java语言使用Unicode字符集,因此Java所包含的字母包括汉字、日文中的片假名和平假名、朝鲜文、俄文等…

关键字:
abstract assert enum extends final finally goto
implements instanceof interface native strictfp super
synchronized transient volatile

基本数据类型:

数据类型所占字节
boolean1
byte1(不存在byte型常量)
short2(不存在short型常量)
int4
long8 (12L, -2058L)
char2 (Java中一个字符占2个字节)
float4(必须要有f/F跟在float型常量后面 123.456F, 存储时仅保留8位有效数字
double8

数据类型转换:
低级别–系统自动转换–>高级别
高级别–手动强制类型转换–>低级别

float a = 12.34;
int b = a;//出错
int c = (int) a;//强制类型转换,正确赋值

数组:
1.声明数组:名字+数据类型

float boy[];
char cat[][];

2.创建数组:为数组分配内存空间

boy = new float[10];
cat = new char [3][10];
int a[][] = new int[3][];//二维数组
a[0] = new int[8];
a[1] = new int[20];
a[2] = ne wint[3];

3.数组的初始化:创建数组时系统会默认赋零或null

float boy[] = {1.2F, 3, 48, 5.6f};
float boy[] = new float[4];
boy[0] = 1.2F;
boy[1] = 3;
boy[2] = 48;
boy[3] = 5.6F;
int a[][] = {{1},{1,2},{1,2,1},{1,3,3,1}};//创建一个数组该数组有4个元素,分别是长度为1,2,3,4的四个数组

4.数组比较:
System.out.println(a);//输出数组a指向的内存地址
a == b //判断a和b是否指向同一片内存
a.equals(b); // 效果和a== b相同
Arrays.equals(a,b); //判断数组a和b的内容是否相同

注意:对于char型数组 System.out.println(a);不会输出引用,而会输出内容

5.数组复制:
(1)arraycopy方法

public static void arraycopy(source, index1, desti, index2, length)

(2)copyOf和coptOfRange方法

public static double[] copyOf(source, newLength);
public static int[] copyOf(source, newLength);
......
public static double[] copyOfRange(source, from, to);//[from, to)
public static float[] copyOfRange(source, from, to);
......

6.数组的其他方法

方法说明
Arrays.toString(array)以字符串形式表示array
Arrays.sort(array, from, to)对数组array进行[from, to)的升序排序
binarySearch(array, number)在数组array中查找number值并返回其索引,否则返回负数

第三章

for语句:

数组与for语句:

for(int i=0;i<a.length;i++)//传统方式
	System.out,println(a[i]);
for(int i:a)//改进方式
	System.out,println(i);

第四章 类和对象

面向对象的特点说明
封装将数据和数据的操作封装在一起
继承子类既可以继承父类的属性和方法又可以增添新的属性和方法
多态(方法重载)向操作传递不同消息以便让对象根据相应消息来产生行为(方法重写)/同一操作被不同类型对象调用时可能产生不同的行为

1.类的声明:详见书P58

class People{
	
}
class 日本人{

}

2.实例变量和类变量 实例方法和类方法

class Dog{
	float x = 3.14;//实例变量
	static int y;//类变量\静态变量
	float max(float m ,float n){...}//实例方法
	static float jerry(){...}//类方法 静态方法
	static void show(String s){...}//类方法
}
  1. 实例方法既能对类变量进行操作也能操作实例变量,类方法只能操作类变量
  2. 实例方法可以调用实例方法和类方法,类方法只能调用类方法
  3. 所有对象共享一个类变量
  4. 类变量可以通过某个对象访问,也可以直接通过类名访问

3.this关键字
this.x this.y
this不能出现在类方法中

3.成员变量和局部变量 P57

4.方法重载
Java多态 = Overload+Override
Overload重载:一个类可以有多个方法具有相同的名字不同的参数(参数个数或类型不同)

//与方法的返回类型参数的名字无关,只与参数类型和个数有关
float funcA(int a, int b);
int funcA(int a, char ch);
int funA(int a, int b[])

5.构造方法:可重载
一旦类中定义了构造方法,Java不提供默认的构造方法
如果成员变量在定义时没有初始化、构造函数也没有对它进行赋值,那么int 型为0, 浮点型为0.0,boolean型为false,引用型为null

6.析构方法 (不要求掌握)
java中有析构函数,但我们一般用不到它,因为java有自动内存回收机制,无需程序员来释放,也就不要担心内存泄露,只不过java中析构函数所采用的方式不是C++中的那样前加~号,在java中 对象析构时会调用void finalize()方法

7.纯代码块

8.调用顺序

9.对象的引用:
Java中 类的对象在堆中分配内存,对象的引用在栈中分配内存
空对象,没有引用指向它,Java提供自动的”垃圾收集“机制

10.对象的组合:

11.源代码编写顺序
package aaa.bbb.cc.dddd;
import java.io.XXX;
public class Example{
public static void main(String[] args){

}
}

12.类成员的访问权限
private 仅在类内部可访问
友好型 类内部和同包的类可访问
protected 类内部、同包的类和子类均可访问
public 均可以访问
注意:声明类时不能用private和protected修饰类

public class A{...}//正确
class B{...}//正确
protected class C{...}//错误定义类
private class C{...}//错误

13.基本数据类型的封装
自动装箱:把基本类型的值赋给基本数据类型对应的封装类对象

Integer a = 100;//装箱  必须保证类型一致
Integer b = new Integer(200);

自动拆箱:与装箱的过程相反

Integer a = new Integer(100);
int b = a;//拆箱 把封装类对象赋给基本类型

第五章 继承与接口

1.继承权限
子类和父类在同一个包里,继承父类的非private成员
子类和父类不在同一个包里,子类继承父类的protected和public成员,不能继承友好成员
注意:子类不继承父类的私有成员(虽然分配了相应内存空间)

2.方法重写:在子类中定义一个方法,这个方法的名字、参数个数、参数类型和父类的方法完全相同

3.super关键字
如果子类想使用被隐藏的方法,需调用super.funName(…);
子类调用父类构造函数 super(…);

4.final关键字(常量)
(1)final类:不允许有子类

final class A{...}

(2)final方法
不允许子类进行重写
(3)final变量(常量)
定义时必须初始化,定义后不能更改常量值

5.对象的上转型对象(多态的核心技术)

A a = new B();//A是父类 B是子类

上转型对象(1)不能操作子类新增的成员
(2)可以操作子类继承和隐藏的变量
(3)可以操作子类**继承和重写的方法**
可以将上转型对象强制转换为子类对象,这时该子类对象相当于正常子类对象

6.abstract类
(1)abstract类可以没有abstract方法
(2)abstract类不能创建对象
(3)非abstract类是另一个abstract类的子类,则必须重写父类中所有abstract方法
(4)abstract类只关心操作,不关心具体实现

7.abstract方法:只许声明,不许实现

abstract int min(int x, int y); //不能有方法体 

8.接口interface
接口定义 = 常量定义+abstract方法定义
(1)接口体只有常量和 abstract方法
(2)接口中所有成员都为public
(3)一个类只能继承一个类但可以实现多个接口

class Dog extends Animal implements Eatable, Sleepable{...};

(4)如果一个类实现了某接口,那么该类必须重写接口的所有abstract方法,并且重写的方法为public(继承/重写不能降低访问权限)

9.接口回调(与上转型对象类似,用于实现多态

interface Eatable{
	void showFood();
}
class Dog implements Eatable{
	@Override
	void showFood(){
		System.out.println("肉类食物");
	}
}
public static void main(String [] args){
	Eatable e = new Dog();//接口回调第一步
	e.showFood();//接口回调第二步  通过接口变量调用类中重写的方法***多态
}

(1)
(2)
(3)

10.抽象类与接口的区别(简答题)书P135

11.基本数据类型和对象的区别(简答题)
在这里插入图片描述

第七章 Java常见异常类

Java常见异常类总结
在这里插入图片描述

泛型和集合框架

泛型可以是任何对象和接口,但不能是基本数据类型

class Cone<E>{//定义泛型类
	E bottom;
	int height;
	public Cone(E b){
		bottom = b;
	}
}
Circle c = new Circle(3.14);
Cone<Circle> onecone = new Cone<Circle>(c);//实现泛型类的具体化

list的通用方法:
在这里插入图片描述
linkedlist:
在这里插入图片描述
Map:
在这里插入图片描述
在这里插入图片描述

List、Set、Map的区别

可能考到的编程题:

1.文本文件的读写
2.模仿 Int/String类的编写 书P99

存在的疑问:

  1. java.io包的File类是
    (A)字符流类 (B) 字节流类
    © 对象流类 (D) 非流类

  2. Java中基本类型的封装类的使用

  3. Java中catch,throw,try等工作机制
    throw 抛出错误
    throws 声明可能抛出的异常类型

public void loading() throws DangerException{
	...
	throw new DangerException();
	...
}
  1. 模式匹配还没复习
    boolean str.matches(regex)
    String str.replaceAll(regex, replacement)
    String[] str.split(regex)

编程题练习:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
期末考试题型: 一、 填空题(本题共15空 ,每空1分,共15分。) 二、 单项选择题(本题共20小题,每题1分,共20分。) 三、 是非题(对划“√”,错划“×”,本题共10小题,每题1分,共10分。) 四、 简答题(本题共5小题,每小题5分,共25分。) 五、 程序填空题(本题共5空 ,每空2分,共10分。) 六、 编程题(本题共2小题,每小题10分,共20分。) 二、填空题 1、Java语言是一种完全的_面相对象___程序设计语言。 2、布尔型常量有两个值,它们分别是_true__、_false___。 3、在定义一个方法时,一般都要指明该方法的返回值类型,如果它不返回任何值,则必须将其声明成 void 。 4、在Java的语言环境中已经包含了一组相关的核心类库,它们属于Java.lang包。 5、写出完整的main方法的声明 public static void main(String args[]) 。 6、要设计一个Applet小程序,必须先引入包 java.applet 。 7、设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为:2.75___ 8、被关键字_final___修饰的方法是不能被当前类的子类重新定义的方法。 9、Java中类成员的限定词有以下几种:private, _protected__, public__, 默认友好。 10、基类的公有成员在派生类中的访问权限由_基类___决定。 11、用static修饰的方法,称为静态方法。它们不是对象的方法,而是整个类的方法。静态方法只能处理用关键字_static___修饰的数据。 12、在Java中有一种叫作__构造方法__的特殊方法,我们在程序中用它来对类的对象成员进行初始化。 13、面向对象技术具有_封装性___、_继承性___、_抽象性___、多态性等特性。 14、Java中所有类都是类 _Object___的子类。 15、顺序执行以下两个语句的输出结果是: 10 。 String s = “我喜欢学习Java!”; System.out.println(s.length( )); 16、据程序的构成和运行环境的不同,Java源程序分为两大类: Application 程序和 Applet 程序。 17、如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 4 个文件名与类名相同而扩展名为 class 的字节码文件。 18、开发与运行Java程序需要经过的三个主要步骤为 编辑源文件 、 编译器编译生成字节码文件 和 解释器执行 。 19、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet 类的子类并且存储该源程序文件的文件名必须为 MyApplet.java 。 20、 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令: javac MyJavaApplication.javajava MyJavaApplication 。 21、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 2 字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用2 字节内存空间。 22、在Java程序中定义的类有两种成员: 静态成员 、 实例成员 。 23、Java源程序是由类定义组成的,每个程序中可以定义若干个类,但是只有一个类是主类。在Java Application中,这个主类是指包含 main 方法的类;在Java Applet里,这个主类是一个系统类 Applet 的子类。 24、创建一个名为 MyPackage 的包的语句是 package MyPackage ; , 该语句应该放在程序的位置为: 程序中非注释行的第一行 。 25、 抽象或abstract 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终后final 方法是不能被当前类的子类重新定义的方法。 26、多态是指 一种定义,多种实现 ,在Java中有两种多态,一种是使用方法的 重载 实现多态,另一种是使用方法的 覆盖 实现多态。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值