习题--答案--22/6/8

一、选择题(每题2分,共10分)

1.以下对继承的描述错误的是()

​ A)Java中的继承允许一个子类承多个父类

​ B)父类更具有通用性,子类更具体

​ C)Java中的继承存在着传递性

​ D)当实例化子类时会递归调用父类中的构造方法

A

2.多态的表现形式有()

​ A)重写ww

​ B)抽象

​ C)继承

​ D)封装

A

3.以下代码,描述正确的有()

​ interface IDemo{

​ public static final string name; 1

​ void print(); 2

​ public void getlnfo(); 3

​ }

​ abstract class Person implements IDemo{ 4

​ public void print() {}

​ }

​ A)第1行错误,没有给变量赋值

​ B)第2行错误,方法没有修饰符头

​ C)第4行错误,没有实现接口的全部方法

​ D)第3行错误,没有方法的实现

A

4.在 try-catch-finally 语句块中,以下可以单独与finally一起使用的是()

​ A) catch

​ B) try

C) throws

​ D) throw

A

5. 一个栈的进栈序列是a、b、c、d、e,则栈的不可能的输出序列是()

​ A) edcba

​ B) decba

​ C) dceab

​ D) abcde

C

二、填空题(每题2分,共10分)

1.一颗二叉树的先序通历序列为ABCDEF,中序遍历序列为CBAEDF,则后序遍历序列为 。

CBEFDA

2.以下程序运行结果是 。

public class Test extends Father{
    private String name = "test";
    public static void main(String[] args){
        Test test = new Test();
        System.out.println(test.getName());
    }
}

class Father{
    private String name = "father";
    public String getName(){
        return name;
    }
}

father

3.在Java中如果声明一个类为final,表示 。

该类不能被继承,是顶级类。

4. 面向对象程序设计的三个特征是 。

封装性

继承性

多态性

5. Java创建线程的两种方式分别为 和 。

方法一:继承Thread类,重写run()方法。

方法二:实现Runnable接口

三、问答题(每题10分,共50分)

1.什么是数据库的事务?事务有哪些特性?

1.事务一般是指将一系列sql操作封装在一个单元中,要么完全的执行,要么完全的不执行。

2.事务有四大特性:

  1. 原子性 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。
  2. 一致性 事务开始前和结束后,数据库的完整性约束没有被破坏 。
  3. 持久性 事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。
  4. 隔离性 同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰

2. left join和right join的区别。

left join和right join的区别为:基表不同、操作不同、结果不同。left join:left join以左数据表为基表。right join:right join以右数据表为基表。

操作不同

1、left join:left join会把左表中的全部信息输出,然后搜索右表中符合条件的记录。

2、right join:right join会把右表中的全部信息输出,然后左搜索表中符合条件的记录。

结果不同

1、left join:left join查出来的结果是左边的所有数据和与左边有交集部分的数据。

2、right join:right join查出来的结果是右边的所有数据和与右边有交集部分的数据。

3.简述链表和数组的区别。

数组静态分配内存,链表动态分配内存;

数组在内存中连续,链表不连续;

数组元素在栈区,链表元素在堆区;

数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);

数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。

4.简述浏览器解析URL 的过程。

浏览器向本地DNS服务器发送请求,如果本地没有缓存该域名的IP地址,就需要通过递归或迭代的方式向根域名服务器、顶级域名服务器、权威域名服务器发起查询请求,直至返回一个IP地址给浏览器。然后根据该IP地址建立TCP连接,客户端发送HTTP请求,服务器返回报文,关闭TCP连接,再由浏览器进行解析渲染页面,最后TCP四次挥手结束连接(404:服务器找不到请求的页面)

5.什么是微服务?微服务有哪些优势?有哪些常见的微服务框架?

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。

=====================

  • 独立开发: 小型的独立组件可由小型的独立团队构建。一个小组可以专门负责开发“Upload”服务,不用去管其他服务。每个组件的功能变得简单,这样一来,开发人员了解组件的时间大大减少,更容易开发新功能。
  • 独立部署: 每个单独的组件都可以独立部署。这样一来发布新功能的速度就更快,风险也更小。假设“Streaming”组件修复了 bug 或者新增了功能,那么部署时并不会影响其他组件。
  • 独立扩展: 每个组件可以独立地进行扩展。在新节目刚发布的繁忙时期,可以扩展“Download”组件,以支持增加的负载,而不必扩展所有组件,这样一来扩展更具弹性并且降低了成本。
  • 可重用性: 每个组件各自实现一个小的、特定的功能。这意味着它们可以很容易地适用于其他系统、服务或者产品。“Transcode”组件可以被其他业务单元使用,甚至可以改写成一个新的业务,从而为其他组提供转码服务。

从以上细节层面可见,微服务模式相比整体式架构的好处显而易见。

========================

主流微服务架构有SpringCloud、ServiceComb、ZeroC ICE、Motan、Thrift

四、编程题(每题15分,共30分)

1.用Java实现:输入某年某月某日,判断这一天是这一年的第几天?

import java.util.*;
public class exercise11 {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("请输入年:");
		int a1 = s.nextInt();
		System.out.print("请输入月:");
		int a2 = s.nextInt();
		System.out.print("请输入日:");
		int a3 = s.nextInt();
		
		int sum=0;
		for(int i=1;i<=a2-1;i++)
		{
			int day=0;
			switch(i)
			{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:day=31;break;
			
			case 4:
			case 6:
			case 9:
			case 11:day=30;break;
			
			case 2:{
				if((a1%400==0) || (a1%4==0 && a1%100!=0))
				{
					day=29;break;
				}else {
					day=28;break;
				}
			}
			}
			sum+=day;
		}
		sum+=a3;
		System.out.println("这是这一年中第"+sum+"天");
	}
}

2.已知学生、课程、成绩三张表,如下:

学生表student
idnamebirthsex
学生编号学生姓名出生年月学生性别
课程表course
idname
课程编号课程名称
成绩表score
s_idc_idscore
学生编号课程编号分数

(1)查询20岁及以上的学生编号、姓名、年龄、性别。

select id,name,birth,sex
from student
where birth <= 2002

(2)查询90分以上的学生编号、姓名、年龄、性别。

select id,name,birth,sex
from student,score
where id = s_id and score > 90

(3)查询“数据结构”这门课分数低于平均分的学生编号、姓名、年龄、性别、分数。

Select s_id, name, birth, sex, score
from student, score, coure
where id = s_id and course_id = c_id and course_name = "数据结构" and 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值