常见面试题,我应该会的

本文详细介绍了多线程的基本概念及其与多进程的区别,通过实例展示了JDBC操作Oracle数据库的方法。此外还概述了MVC架构的工作原理及优势,并提供了冒泡排序等编程实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

别人分享的,拿来学习下:

一:什么是多线程?为什么要用多线程?与多进程的区别是什么?
答:线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程. 
                使用线程可以把占据长时间的程序中的任务放到后台去处理 
                用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,
                可以弹出一个进度条来显示处理的进度 
                程序的运行速度可能加快
                线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,
                每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,
               发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。

写一个JDBC程序连接oracle,并打印结果集。

import java.sql.*;



public class Test {

	public static void main(String[] args) {

		try {

			Class.forName("oracle...."); // 注册驱动省略

		} catch (ClassNotFoundException e) {

			e.printStackTrace();

		}

		Connection con = null;

		PreparedStatement pst = null;

		ResultSet rs = null;

		try {

			con = DriverManager.getConnection("...", "...", "..."); // url,user,password省略

			pst = con.prepareStatement("select * from table where uid = ?");

			pst.setInt(1, 100);

			rs = pst.executeQuery();

			while (rs.next()) {

				System.out.println(rs.getInt(1)); // 打印数据

				System.out.println(rs.getString(2));

			}

		} catch (Exception e) {

			e.printStackTrace();

		} finally {

			while (rs != null) { // 关闭连接资源

				try {

					rs.close();

				} catch (Exception e2) {

					e2.printStackTrace();

				}

			}

			// pst con 关闭同上

		}

	}

}


概述MVC体系结构 为什么要用MVC结构?
 MVC模式是"Model-View-Controller"的缩写 中文翻译为模式视图控制器
         Wiew通常是JSP,即页面显示部分。Controller通常是Servlet 即页面显示的逻辑部分实现
         Model通常用服务端的javaBean或者EJB实现 即业务逻辑部分的实现
         优点:低耦合性 高重用性和可适用性 较低的生命周期成本 可维护性  有利于团队开发

如何理解面向对象。如何理解String这个类,和StringBuffer  StringBuilder的区别
ArrayList  LinkedList  Vector的区别
简要画出MVC模式的流程图

orderID(PK,合同ID)        region(地区)        sales(销售人员)     total(合同金额)

1          A                            张三                          1000     

2          A                            李四                           5000

3          C                            赵五                          3000

4          A                             张三                          4000

5          C                            赵五                          2000

6          A                             张三                          3000

7          B                            王六                           5000

8          B                            钱七                           2500

9          B                            王六                           6000


一:统计出每个地区的合同金额合计并按此倒序排列显示

select region,sum(total) from salesorder group by region;


二:统计出每个地区的销售人员数量

select region,count(*) from salesorder group by region;


三:统计出每个地区合同金额最少的销售人员

select s.orderID,s.sales  from (select min(total) as mintotal,region from salesorder group by region)q,salesorder s where q.mintotal=s.total and s.region=q.region


四:统计出所有超过本地区合同金额平均值的合同及金额

select distinct q.* from (select avg(total) as avgtotal,region  from salesorder group by region)p,salesorder

q where q.total>p.avgtotal;


简答题:window.onload=function(){};什么含义?是否可以存在多个?
Cookie和session的区别与联系
阐述一下java多线程中"锁"的概念?
堆栈和队列的区别?
编程:java实现冒泡排序

<strong>public class Test {



	public static void main(String[] args) {

		int temp[] = {13,52,3,8,5,16,41,29};

		//执行temp.length次

		for (int i = 0; i < temp.length; i++) {

			for (int j = 0; j < temp.length-i-1; j++) {

				if(temp[j]>temp[j+1]){ //前一个数和后一个数比较

					int a = temp[j];

					temp[j] = temp[j+1];

					temp[j+1] = a;

				}

			}

		}

		for (int i = 0; i < temp.length; i++) {

			System.out.print(temp[i]+" ");

		}

	}

}</strong>


写一个方法 实现字符串替换 如输入bbbwlirbbb  输出bbbhhtccc
这道题我叨咕了半天没写出来,我还以为是要找什么方法或规律呢
网上一搜答案,简直吐血了

String str = "bbbwlirbbb";

		String s = str.replaceAll("wlirbbb", "hhtccc");

		System.out.println(s);


还有好多,就到这吧,没写出答案的 可以从网上搜索的到,自己要有主动精神

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值