上汽集团Java开发笔试题目.docx
《上汽集团Java开发笔试题目.docx》由会员分享,可在线阅读,更多相关《上汽集团Java开发笔试题目.docx(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 上汽集团Java开发笔试题目 简述String和StringBuffer的区分。 String 对一串字符进展操作。不行变。一旦被创立,就不能修改它的值。 StringBuffer 也是对一串字符进展操作,但是可变类。 运行时特别(RuntimeException)与一般特别有何不同? 一般特别是可捕获到的。运行时特别是不行预知的特别。 Sleep()和wait()有什么区分? sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,把执行时机给其他线程,但是监控状态依旧保持,到时后会自动恢复。调用sleep不会释放对象锁。 wait().会释放锁 实现多线程有几种方法? 三种
2、, 1.继承Thread类,重写run函数 2.实现Runnable接口,重写run函数 3.实现Callable接口,重写call函数 简述线程的根本状态及状态之间的关系。 Thread.ThreadState 属性供应一个位掩码,用它指示线程的当前状态。一个线程至少总是处于 ThreadState 枚举中一个可能状态,并且可以同时处于多个状态。 一旦线程由于调用 Thread.Start 而离开 Unstarted 状态,则它将永久无法返回到 Unstarted 状态。同样,线程也永久无法离开 Stopped 状态。 什么是线程同步,何照实现线程的同步? 当两个或多个线程需要访问同一资源时
3、,它们需要以某种挨次来确保该资源某一时刻只能被一个线程使用的方式称为同步。要想实现同步操作,必需要获得每一个线程对象的锁。获得它可以保证在同一时刻只有一个线程访问对象中的共享关键代码,并且在这个锁被释放之前,其他线程就不能再进入这个共享代码。此时,假如还有其他线程想要获得该对象的锁,只得进入等待队列等待。只有当拥有该对象锁的线程退出共享代码时,锁被释放,等待队列中第一个线程才能获得该锁,从而进入共享代码区。 JSP或Servlet中的forward和redirect有什么区分? forward是效劳器内部重定向,程序收到恳求后重新定向到另一个程序,客户机并不知道;redirect则是效劳器收到
4、恳求后发送一个状态头给客户,客户将再恳求一次,这里多了两次网络通信的来往。redirect 是送到客户端后再一次 request , 所以资料不被保存. 简述JDBC调用数据库的根本步骤。 1,加载驱动 2,创立连接 3,猎取语句对象 4,执行sql语句 5,假如是查询,还可以使用结果集 6,关闭连接 7,捕获和处理特别 简述Servlet的生命周期。 Servlet被效劳器实例化后,容器运行其init方法,恳求到达时运行其service方法,service方法自动派遣运行与恳求对应的do方法(doGet,doPost)等,当效劳器打算将实例销毁的时候调用其destroy方法。 二、算法(总共
5、20分) 请列举几种排序算法,并用JAVA实现快速排序算法。(6分) 冒泡排序,快速排序,shaker排序,堆排序。 public void quick(Integer str) if (str.length 0) /查看数组是否为空 _quickSort(str, 0, str.length 1); public void _quickSort(Integer list, int low, int high) if (low high) int middle = getMiddle(list, low, high); /将list数组进展一分为二 _quickSort(list, low,
6、middle 1); /对低字表进展递归排序 _quickSort(list, middle + 1, high); /对高字表进展递归排序 public int getMiddle(Integer list, int low, int high) int tmp = listlow; /数组的第一个作为中轴 while (low high) while (low high listhigh tmp) high; listlow = listhigh; /比中轴小的记录移到低端 while (low high listlow tmp) low+; listhigh = listlow; /比中
7、轴大的记录移到高端 listlow = tmp; /中轴记录到尾 return low; /返回中轴的位置 用Java实现二叉树前序遍历、中序遍历和后序遍历。(8分) public class Tree private int data;/ 数据节点 private Tree left;/ 左子树 private Tree right;/ 右子树 public Tree(int data) this.data = data; this.left = null; this.right = null; /* * 创立二叉树,返回根结点 */ public static Tree createTre
8、e(int input) Tree root = null; Tree temp = null; for (int i = 0; i input.length; i+) / 创立根节点 if (root = null) root = temp = new Tree(inputi); else / 回到根结点 temp = root; / 添加节点 while (temp.data != inputi) if (inputi = temp.data) if (temp.left != null) temp = temp.left; else temp.left = new Tree(inputi
9、); else if (temp.right != null) temp = temp.right; else temp.right = new Tree(inputi); return root; /* * 前序遍历 */ public static void preOrder(Tree tree) if (tree != null) System.out.print(tree.data + “”); preOrder(tree.left); preOrder(tree.right); /* * 中序遍历 */ public static void midOrder(Tree tree) i
10、f (tree != null) midOrder(tree.left); System.out.print(tree.data + “”); midOrder(tree.right); /* * 后序遍历 */ public static void posOrder(Tree tree) if (tree != null) posOrder(tree.left); posOrder(tree.right); System.out.print(tree.data + “”); /* * 求二叉树的深度 */ public static int length(Tree tree) int dep
11、th1; int depth2; if(tree = null) return 0; /左子树的深度 depth1 = length(tree.left); /右子树的深度 depth2 = length(tree.right); if(depth1depth2) return depth1+1; else return depth2+1; public static void main(String args) int input = 4, 2, 6, 1, 3, 5, 7,8,10 ; Tree tree = createTree(input); System.out.print(“前序遍
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上汽 集团 Java 开发 笔试 题目
限制150内