首页 > 编程语言 >【CUMT】《Java语言与网络编程》(张爱娟)部分课后简答题及答案参考

【CUMT】《Java语言与网络编程》(张爱娟)部分课后简答题及答案参考

时间:2024-11-18 21:57:22浏览次数:1  
标签:Java 简答题 int 方法 多态 对象 课后 异常

chapter1.Java概述

1.编写、运行 Java 程序的基本过程是怎样的?

(1) 在IDE中:用java语言编写代码,编译后执行

(2) 在文本编辑器中:编写代码后打开命令行,使用javac命令编译代码源文件(.java),编译成功则生成同名字节码文件(.class);使用java命令,JVM解释执行字节码文件。

2.Java 的跨平台性是如何实现的?

(1) 字节码作为中间代码: 将平台相关的细节隐藏起来,使代码具有平台无关性。

(2) JVM 作为虚拟机: 提供了一个统一的运行环境,将字节码翻译成目标平台的机器码。

3.Java 源文件和字节码文件的扩展名分别是什么?

.java

.class

4.使用 JDK 时应该如何配置环境变量 Path 和 Classpath,其目的是什么?

(1)
JDK路径->JAVA_HOME->Path->ClassPath

(2)
目的:为了让操作系统找到并执行java相关命令(path-javav/java),并让java程序能找到相关类文件(classpath-.class)

5.Java语言的主要特点

(1) 简单性:引用代替指针,提供自动垃圾回收机制,使程序员无需考虑内存管理

(2) 面向对象的程序设计:解决问题方式更接近人类固有思维

(3) 跨平台性:一次编译到处运行

(4) 安全性:强类型语言,不支持指针,提供异常处理机制

(5) 多线程性:Java语言运行时环境本身就是多线程的

(6) 动态性:调用类都是运行时动态的加载到内存

chapter2.基本程序设计

1.类名、方法名、常量、变量的命名习惯是什么?

习惯 词性
常量 全大写,下划线_分隔 定值,final修饰
类名 大驼峰 n,概念/实体
方法名 小驼峰 v,功能/作用
变量 小驼峰 变值

2.假设今天是星期二,用Java 表达式表示100天后将是星期几

int day=100%7+2;    

3.Java 的注释有哪几种? 注释太多会不会影响程序的执行效率?

(1) 单行//,多行/**/,文档/** */

(2) 不会被编译成字节码,因此不会直接影响程序的运行

4.请找出下列数据中正确的字面值

字面量 判断 描述
5_2534e+1 下划线_可以作为数字分隔符,仅用于提高可读性,不影响数值本身。类似千分符
_2534.0 × 数字不能以下划线_开头
5_2
5_ × 下划线_不能单独存在,必须在数字之间
23.4e-2
39F
40D

5.整数会溢出吗?浮点数运算会导致溢出吗?溢出会导致什么后果?

(1) int/float运算都会溢出

(2) 计算结果错误;程序崩溃;数据损坏;安全漏洞...

chapter3.流程控制

1.接收从命令行输入的n个整数,并进行冒泡排序,最后将排好序的数据打印在屏幕上。

import java.util.Scanner;

public class test{

    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] arr=new int[n];
        for(int i=0;i<n;i++)
            arr[i]=sc.nextInt();
        //BubbleSort
        for(int i=0;i<n-1;i++)
            for(int j=0;j<n-i-1;j++)
                if(arr[j]>arr[j+1]){
                    int tmp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tmp;
                }
        //Output
        for(var v:arr)
            System.out.print(v+" ");
        sc.close();
    }
}

2.下面程序段的输出结果是

for(int i=1;i<=20;i++){
    if(i==20-i)
        break;
    if(i%2!=0)
        continue;
    System.out.println(i+" ");
}

Output:

2 
4 
6 
8

chapter4.面向对象与类

1.简述面向对象的概念和基本特征。

(1) 概念:面向对象是一种程序设计方法。它将计算机程序视为一系列相互作用的对象,每个对象包含数据(成员变量),和操作数据的方法(成员函数)。

(2) 基本特征:封装+继承+多态。

  • 封装:实现数据隐藏,分离数据的使用者和设计者
  • 继承:实现代码的重用和扩展
  • 多态:单一接口/方法具有不同的动作

2.Java有哪些访问权限修饰符?说明其权限范围。

20241116120516

3.什么是静态语句块,静态语句块的主要用处是什么?

(1) 是由static修饰的一组语句。当类第一次被使用时,static{ }会自动运行,且只运行一次。

(2) 执行一些初始化操作,以及类加载的准备工作

4.什么是方法重载,如何定位重载方法?

(1) 在一个类中定义多个方法名相同,参数列表不同的方法

(2) 编译器在调用方法时,根据参数类型、顺序、个数确定调用哪个重载方法。该过程被称为重载解析。

5.基本类型和对象类型的参数传递有何区别?

基本类型 对象类型
传递内容 值的副本 对象的引用(内存地址),形参实参指向同一地址
方法内修改 不影响原值 影响原对象

6.什么是包,包的作用是什么?

Java中组织类的机制,类似文件夹

作用:

  • 组织相关源代码文件
  • 避免命名冲突:提供层次命名空间,不同包内允许同名类,通过包名来区分
  • 控制访问权限
  • 模块化:将项目划分为不同的包,可实现代码的模块化开发,提高代码的复用性

7.简述 this 和 super 关键字代表的含义,以及各自的作用。

this super
含义 对当前对象的引用 对父类对象的引用
作用 调用当前对象本身的变量(与形参重名时)、方法 访问父类对象的成员,即使方法被子类重写
构造方法首行为this( )时,调用本身的构造函数 子类构造方法第一行为super( )时,调用父类构造方法
方法内返回当前对象本身

8.类中定义的实例变量在什么时候会被分配内存空间?

创建对象时

9.什么是静态初始化块,它的特点是什么?与构造方法有什么不同?

与静态语句块本质相同,只是不同教材的用词习惯不同造成的差异

(1) static修饰的语句块。在类被第一次加载时自动运行,且只运行一次

(2) 特点:

  • 执行顺序早于构造方法,且在所有对象创建之前
  • 执行时机:类加载时,且只执行一次
  • 作用域:是类一级成员,属于类,不属于对象

(3) 构造方法每创建一个对象就执行一次,作用域为实例对象

chapter5.类的进阶设计

1.什么是多态,使用多态有什么优点?

(1) 同一个方法在不同的对象上有不同的行为,具体分为运行时多态和编译时多态。实现运行时多态有三个条件:向上转型,方法重写,动态绑定。

(2) 优点:

  • 可扩展性:通过继承和实现接口来添加新的子类,无需修改原有代码
  • 可维护性:将公共方法定义父类,减少重复代码,便于维护
  • 可读性:用多态将相关类组织成层次结构,使代码清晰易懂

2.将父类对象引用进行强制类型转换,转化成子类对象的引用,在什么情况下可以奏效?

在父类的引用实际指向的是一个子类对象时才能奏效

3.方法中定义的内部类(局部内部类)是否可以存取方法中的局部变量?

可以。

但前提是该局部变量必须为final/effectively final

chapter6.异常处理

1.什么是运行时异常? 什么是受检查异常?

运行时异常RuntimeException 受检查异常CheckedException
成因 程序逻辑错误 程序与外部环境交互
编译器要求捕获或声明 不强制 强制
举例 数组越界、空指针 文件找不到、网络连接失败

非受检查异常UncheckedException = RuntimeException + Error

2.Java处理异常的机制有哪些?

(1) 抛出异常:throw

检测到异常程序,创建一个合适的异常对象并抛出

(2) 声明异常:throws

定义方法时声明可能发生的异常

(3) 捕获处理异常:try-catch-finally结构捕获处理代码并运行

3.声明异常的目的是什么? 怎样声明一个异常?

(1) 方法可能出现异常,但该方法不想/不能自己处理这些异常,就用throws关键字声明。

(2) 格式如下:

返回类型 方法名([形参列表]) throws 异常类1,异常类2,... { 方法体 }

4.Java中的异常是如何进行分类的,怎样抛出一个异常?

20241117001014

使用throw关键字抛出:

throw new ExceptionType("Messages");

5.没有异常发生时,try-catch块会引起额外的系统开销吗?

会。

时间开销:额外的指令、查找异常处理表会消耗CPU时间

空间开销:异常对象、栈帧等占用内存空间

chapter7.常用类

1.什么是自动装箱、自动拆箱?

(1) 自动装箱:将基本数据类型自动转换为对应的包装类型

int num=10;
Integer ig=num;

(2) 自动拆箱:将包装类型自动转换为对应的基本数据类型

Integer ig=new Integer(1);
int num=ig;

2常用的遍历容器的方法有哪几种?

4种

ArrayList<Integer> arr=new ArrayList<>(5);

//普通for循环
for(int i=0;i<arr.size();i++)
    System.out.println(arr.get(i));

//增强式for循环
for(var v:arr)
    System.out.println(v);

//forEach
arr.forEach(o->{System.out.println(o)});

//迭代器
Interator<Integer> i=arr.iterator();
while(i.hasNext())
    System.out.println(i.next());

chapter9.线程与并发编程

1.建立线程有几种方法?

3种

扩展Thread

实现Runnable接口

实现Callable接口

2.在多线程中,什么情况下需要引入同步机制?

多个线程同时访问共享资源时

chapter11.网络编程

教材超字数被老师删减了只有ppt有内容,故无课后参考题

标签:Java,简答题,int,方法,多态,对象,课后,异常
From: https://www.cnblogs.com/Weenz-y/p/18553773

相关文章

  • 数据结构java:插入排序
    插入排序插入排序基本思想:直接插入排序希尔排序(缩小增量排序)插入排序基本思想:直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序中,直到所有的记录插入完为止,得到一个新的有序序列。实际......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现八
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现七
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • Java设计模式 —— Java七大设计原则详解
    文章目录前言一、单一职责原则1、概述2、案例演示二、接口隔离原则1、概述2、案例演示三、依赖倒转原则1、概述2、案例演示四、里氏替换原则1、概述2、案例演示五、开闭原则1、概述2、案例演示六、迪米特法则1、概述2、案例演示七、合成/聚合复用原则1、概述......
  • 如何控制java虚拟线程的并发度?
    jdk21中的虚拟线程已经推出好一段时间了,确实很轻量,先来一段示例:假如有一段提交订单的业务代码:1publicvoidsubmitOrder(IntegerorderId){2sleep(1000);3System.out.println("order:"+orderId+"issubmitted");4}ViewCode这里我们......
  • JAVA反序列化学习-CommonsCollections1(基于ysoserial)
    准备环境JDK1.7(7u80)、commons-collections(3.x4.x均可这里使用3.2版本)JDK:https://repo.huaweicloud.com/java/jdk/7u80-b15/jdk-7u80-windows-x64.execc3.2:<dependency><groupId>commons-collections</groupId><artifactId>commons-collection......
  • Java多线程回顾总结
    目录一.线程与创建线程方式简介二.Thread继承三.实现Runnable接口四.Callable接口五.使用线程池一.线程与创建线程方式简介线程与进程的区别:1、一个进程至少包含一个线程2、比如电脑上QQ,运行起来就是一个进程,QQ可以聊天同时也可以传文件,聊天和传文件就是两个不同......
  • [Java] 获取操作系统类型
    需求描述在进行Java开发时,我们有时需要根据不同的操作系统执行不同的操作,例如在Windows系统下执行不同的命令,或者在Linux系统下调用不同的库函数。因此,判断当前运行的操作系统是十分重要的。此文将介绍如何使用Java判断当前操作系统,并给出相应的代码示例。代码示例OsUt......
  • ssm140基于java的奶茶店管理系统的设计与实现+jsp(论文+源码)_kaic
    毕业设计(论文)奶茶店管理系统 学   院                       专   业                       班   级                       学   号                   ......
  • JavaScript 字符串的常用方法有哪些
    速览JavaScript字符串的常用方法包括charAt、charCodeAt、concat、indexOf、lastIndexOf、slice、substring、toLowerCase、toUpperCase、trim、replace、split、padStart、padEnd等。详答1.基本信息JavaScript中的字符串是一种原始数据类型,提供了丰富的操作方法来处......