概述
java期末
第一章
1.Java是什么?
Java是一种完全面向对象的语言
2.java的运行步骤
(1)编写java源代码
(2)编译java程序
(3)运行java程序
3.java.class是字节码文件
**4.jvm:**是一个虚构出来的计算机
Jdk:提供编译、运行java程序所需的各种工具及资源。
5.java的特点:
继承,多态,封装
6. Q&A的问题
- 问题:Exception in thread “main” java.lang.NoClassFoundError
答:无该类,文件路径或名称不对,也可能时类名与文件名不一致。
- 问题:Exception in thread “main” java.lang.NoSuchMethodError: main
答:主方法格式错误或缺少主方法。
- 问题:Hello World.java:4找不到符号
答:一把多产生于语法错误。
第二章
1.标识符的命名规则:
- 可以包含数字但不能以数字开头
- 只能包含 ,$符号
- 区分字母大小写
- 不能使用java关键字
2. 关键字表
关键字 | 大致含义 |
---|---|
abstract | 表明类或者成员方法具有抽象属性 |
assert | 断言,用来进行程序调试 |
boolean | 基本数据类型之一,声明布尔类型的关键字 |
break | 提前跳出一个块 |
byte | 基本数据类型之一,字节类型 |
case | 用在 switch 语句之中,表示其中的一个分支 |
catch | 用在异常处理中,用来捕捉异常 |
char | 基本数据类型之一,字符类型 |
class | 声明一个类 |
const | 保留关键字,没有具体含义 |
continue | 回到一个块的开始处 |
default | 默认,例如,用在 switch 语句中,表明一个默认的分支 |
do | 用在 do-while 循环结构中 |
double | 基本数据类型之一,双精度浮点数类型 |
else | 用在条件语句中,表明当条件不成立时的分支 |
enum | 枚举 |
extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
final | 表示不可变,最终的 |
finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
float | 基本数据类型之一,单精度浮点数类型 |
for | 一种循环结构的引导词 |
goto | 保留关键字,没有具体含义 |
if | 条件语句的引导词 |
implements | 表明一个类实现了给定的接口 |
import | 表明要访问指定的类或包 |
instanceof | 用来测试一个对象是否是指定类型的实例对象 |
int | 基本数据类型之一,整数类型 |
interface | 接口 |
long | 基本数据类型之一,长整数类型 |
native | 用来声明一个方法是由与计算机相关的语言(如 C/C++语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明 FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754 算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
null | 引用数据类型默认初始值 |
3.Q&A
- 问题 Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException:10
答:引发数组下标越界。
- 问题:Exception in thread “main” java.lang.ArithmeticException:/by zero
答:因整数除以0引发的算数错误。
数据类型
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | 负的2的7次方 ~ 2的7次方-1(-128~127) |
短整型 | short | 2 | 负的2的15次方 ~ 2的15次方-1(-32768~32767) |
整型 | int | 4 | 负的2的31次方 ~ 2的31次方-1 |
长整型 | long | 8 | 负的2的63次方 ~ 2的63次方-1 |
浮点数 | float | 4 | 1.401298e-45 ~ 3.402823e+38 |
双精度 | double | 8 | 4.9000000e-324 ~ 1.797693e+308 |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
第三章
1. 访问控制符的范围:
private: 表示私有的,表示类访问权限.只能在本类中访问,离开本类之后,就不能直接访问.
**不写(缺省)????*表示包私有,表示包访问权限. 访问者的包必须和当前定义类的包相同才能访问.(两个类在同一个包下)
**protected:**表示子类访问权限,同包中的可以访问,即使不同包,但是有继承关系,也可以访问.
public: 表示全局的,可以公共访问权限,如某个字段/方法,使用了public修饰,则可以在当前项目中任何地方访问.
2. 类的声明
[访问符] [修饰符] class 类名{
[属性]
[方法]
}
3. 对象的创建和使用
类名 对象名 = new 类名();
4. 方法的定义
//第一种
public static void 方法名(){
//方法体
}
//第二种
public static void 方法名(形参1,形参2,……){
//方法体
}
//第三种
public static void 方法名(形参1,形参2,……){
//方法体
return 返回值
}
5. 方法重载
①同一个类中
②方法名字相同
③参数列表不同
- 参数个数不同
- 参数的数据类型不同
- 不同数据类型的参数顺序不同
6. 可变参数
[访问符] [修饰符] [返回类型] 函数名([参数列表],数据类型 ...变量){
//方法体
}
- 可变参数只能处于参数列表的最后
- 一个方法中最多只包含一个可变参数
- 可变参数的本质就是数组,因此在调用包含可变参数的方法时,既可以传入多个参数,也可以传入一个数组
7. Q&A
- 问题:Exception in thread “main” java.lang.NullPointerException
答:对象没有使用new 实例化就使用会引发空异常
- 问题:为什么方法的返回类型不能用于区分重载的方法
答:在编译方法时返回值还没有产生,因此不能使用方法的返回值类型区分方法的重载依据
- 问题:equals()方法与“==”之间的区别
答:equals()方法比较的是两个对象的内容是否相同,==是比较两个对象地址是否相同,即引用的是同一个对象
- 问题:StringBuffer与StringBuilder之间的区别
答:两者都可以创建字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全
第五章
类之间的关系
继承:一个类继承另一个类,也称为泛化,体现共性与特性的关系。
实现:一个类实现接口中声明的方法。
依赖:在一个类的方法中操作另一个类的对象,称为第一个类依赖于第二个类。
关联:在一个类中使用另一个类的对象作为该类的成员变量,体现两个类之间的强依赖关系。
聚合:关联的一种特例,体现整体与部分的关系(has-a)。
组成:关联的一种特例,体现整体与部分的关系(constains-a)。
this关键字
this关键字代表当前所在类将来产生的对象,即将来用该类new出来的对象,用于获取当前类的对象的引用,以便解决变量名的命名冲突和不确定性的问题。
super关键字
super关键字代表父类对象,
- 在字类的构造方法中调用父类的构造方法
- 在字类中访问父类的属性或方法
final关键字
final关键字表示不可改变的最终的意思,用于修饰变量、方法和类。
- 当final关键字修饰变量时,表示该变量是不可改变的量,即常量
- 当final关键字修饰方法时,表示该方法不可被子类重写,即最终方法
- 当final关键字修饰类时,表示该类不可被子类继承,即最终类
throw与throws的区别
回答:throw语句抛出的不是异常类,而是一个异常实例对象,并且每次只能抛出一个异常实例对象。Throws用来声明方法可能抛出的异常序列,throws只能在定义方法时使用,后面跟着异常类,而不是异常对象。
方法重写
方法的重写(覆盖) override 子类和父类有同名方法
方法重写的现象:
方法重写需满足:
- 父类中的方法 和 子类中的方法
- 方法名必须一致
- 方法参数必须一致
- 子类的方法的访问修饰符不能缩小访问权限
- 返回值类型要一致(子类的返回值类型 也可以是 父类的返回值类型的子类)Object
接口
java只支持单一继承,不支持多重继承,即一个类只能继承一个父类,这一缺陷可以用接口弥补。、
- 定义接口
[访问符] interface 接口名[extend 父接口1, 父接口2,父接口3,...]{
//接口体
}
-
实现接口
接口不能直接实例化,但是可以用接口引用类型的变量,该变量可以引用到接口的实现类的实例对象上,接口的主要用途被实现类实现,一个类可以实现一个或多个接口。
[访问符] class 类名 implements 接口[接口1,父接口2,...]{ //类体 }
异常
- 常见的检查性异常:输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)等
- 常见的运行时异常:空指针异常(NullPointerException)、除零异常(ArithmeticException)、数组越界异常(ArrayIndexOutOfBoundsException)等;
考试大题
打印菱形或三角型
for (int i=1;i<=5;i++){
for(int j=1;j<=5-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
for(int i=5;i>=1;i--){
for(int j=1;j<=5-i;j++){
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++){
System.out.print("*");
}
System.out.println();
}
判断闰年
public static boolean isLeap(int leap){
if((leap%4==0&&leap%100!=0)||leap%400==0){
return true;
}
return false;
}
标准的javaBen类
package com.gzmz.demo3;
public class Book {
private String name;
private int pages;
public Book() {
}
public Book(String name, int pages) {
this.name = name;
this.pages = pages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
}
水仙花数
System.out.println("请输入一个三位数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int b, s, g;
b = num / 100;
s = num / 10 % 10;
g = num % 10;
if ((b * b * b + s * s * s + g * g * g) == num) {
System.out.println("是水仙花数");
} else {
System.out.println("不是");
}
求三位数的和
System.out.println("请输入一个三位数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int b, s, g;
b = num / 100;
s = num / 10 % 10;
g = num % 10;
int sum = b+s+g;
System.out.println("和是:"+sum);
}
最后
以上就是搞怪蜡烛为你收集整理的期末java基础复习java期末的全部内容,希望文章能够帮你解决期末java基础复习java期末所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复