期末java基础复习

java期末

第一章

1.Java是什么?

Java是一种完全面向对象的语言

2.java的运行步骤

(1)编写java源代码

(2)编译java程序

(3)运行java程序

3.java.class是字节码文件

**4.jvm:**是一个虚构出来的计算机

Jdk:提供编译、运行java程序所需的各种工具及资源。

5.java的特点:

继承,多态,封装

6. Q&A的问题

  1. 问题:Exception in thread “main” java.lang.NoClassFoundError

答:无该类,文件路径或名称不对,也可能时类名与文件名不一致。

  1. 问题:Exception in thread “main” java.lang.NoSuchMethodError: main

答:主方法格式错误或缺少主方法。

  1. 问题: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

  1. 问题 Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException:10

答:引发数组下标越界。

  1. 问题:Exception in thread “main” java.lang.ArithmeticException:/by zero

答:因整数除以0引发的算数错误。

数据类型

数据类型关键字内存占用取值范围
整数byte1负的2的7次方 ~ 2的7次方-1(-128~127)
短整型short2负的2的15次方 ~ 2的15次方-1(-32768~32767)
整型int4负的2的31次方 ~ 2的31次方-1
长整型long8负的2的63次方 ~ 2的63次方-1
浮点数float41.401298e-45 ~ 3.402823e+38
双精度double84.9000000e-324 ~ 1.797693e+308
字符char20-65535
布尔boolean1true,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. 方法重载

①同一个类中

②方法名字相同

③参数列表不同

  1. 参数个数不同
  2. 参数的数据类型不同
  3. 不同数据类型的参数顺序不同

6. 可变参数

[访问符] [修饰符] [返回类型] 函数名([参数列表],数据类型 ...变量){
    //方法体
}
  • 可变参数只能处于参数列表的最后
  • 一个方法中最多只包含一个可变参数
  • 可变参数的本质就是数组,因此在调用包含可变参数的方法时,既可以传入多个参数,也可以传入一个数组

7. Q&A

  1. 问题:Exception in thread “main” java.lang.NullPointerException

答:对象没有使用new 实例化就使用会引发空异常

  1. 问题:为什么方法的返回类型不能用于区分重载的方法

答:在编译方法时返回值还没有产生,因此不能使用方法的返回值类型区分方法的重载依据

  1. 问题:equals()方法与“==”之间的区别

答:equals()方法比较的是两个对象的内容是否相同,==是比较两个对象地址是否相同,即引用的是同一个对象

  1. 问题:StringBuffer与StringBuilder之间的区别

答:两者都可以创建字符串,不同的是StringBuffer是线程安全的,而StringBuilder没有实现线程安全

第五章

类之间的关系

继承:一个类继承另一个类,也称为泛化,体现共性与特性的关系。
实现:一个类实现接口中声明的方法。
依赖:在一个类的方法中操作另一个类的对象,称为第一个类依赖于第二个类。
关联:在一个类中使用另一个类的对象作为该类的成员变量,体现两个类之间的强依赖关系。
聚合:关联的一种特例,体现整体与部分的关系(has-a)。
组成:关联的一种特例,体现整体与部分的关系(constains-a)。
this关键字

​ this关键字代表当前所在类将来产生的对象,即将来用该类new出来的对象,用于获取当前类的对象的引用,以便解决变量名的命名冲突和不确定性的问题。

super关键字

​ super关键字代表父类对象,

  • 在字类的构造方法中调用父类的构造方法
  • 在字类中访问父类的属性或方法

final关键字

​ final关键字表示不可改变的最终的意思,用于修饰变量、方法和类。

  • 当final关键字修饰变量时,表示该变量是不可改变的量,即常量
  • 当final关键字修饰方法时,表示该方法不可被子类重写,即最终方法
  • 当final关键字修饰类时,表示该类不可被子类继承,即最终类

throw与throws的区别

回答:throw语句抛出的不是异常类,而是一个异常实例对象,并且每次只能抛出一个异常实例对象。Throws用来声明方法可能抛出的异常序列,throws只能在定义方法时使用,后面跟着异常类,而不是异常对象。

方法重写

方法的重写(覆盖) override 子类和父类有同名方法
方法重写的现象:
方法重写需满足:

  1. 父类中的方法 和 子类中的方法
  2. 方法名必须一致
  3. 方法参数必须一致
  4. 子类的方法的访问修饰符不能缩小访问权限
  5. 返回值类型要一致(子类的返回值类型 也可以是 父类的返回值类型的子类)Object

接口

​ java只支持单一继承,不支持多重继承,即一个类只能继承一个父类,这一缺陷可以用接口弥补。、

  1. 定义接口
[访问符] interface 接口名[extend 父接口1, 父接口2,父接口3,...]{
		//接口体
}
  1. 实现接口

    接口不能直接实例化,但是可以用接口引用类型的变量,该变量可以引用到接口的实现类的实例对象上,接口的主要用途被实现类实现,一个类可以实现一个或多个接口。

    [访问符] 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);
    }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值