`
xinzhengjie
  • 浏览: 15801 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

博微Java笔试题

阅读更多

第15题求完善:???

1、 下面概念中,不属于面相对象方法的是(D)
A对象   B继承   C 类    D过程调用
补充:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。

2、 下列异常中,属于checked异常类型的是(B)
A NullPointerException B FileNotFoundException
C IllegalArgumentException  D ClassCastException
补充:
(uncheck)RuntimeExceptionClassCastException,IllegalArgumentException IndexOutOfBoundsException  NullPointerException   UnknownElementException
RuntimeException不需要在程序里面写catch,Exception如果要抛出必须显式定义抛给上级方法或者catch住
(check)FileNotFoundException –>IOException

3、 软件设计中,有利于提高模块独立性的一个准则(高内聚、低耦合)
4、 以下数据结构中不属于线性数据结构的是(C)
A 队列  B线性表 C 二叉树 D 栈
补充:A是先进先出的线性表;B是宏观概念,包括顺序表、链表、堆栈、队列…;D是先进后出的线性表

5、 两个对象值相同(x.equals(y) == true),则一定有相同的hash code。
hashCode相等对象未必相等。
补充: hash 就是 类似于数学集合, 每一个键,k可以对应一个或多个值,对象就类似于值,所以“相同的对象”具有相同的键值,也就是hashCode;

6、 下列未能实现MVC的是(D)
A Struts2  B Spring  C JSF  D Hibernate
补充:使用struts或jsf等mvc的框架,本身就是MVC的一个实现
hibernate只用来整数据库的 
7、 以下不属于类型修饰符的是(B)
A abstract B final C protected  D public
补充:
public     公共类
default    默认类(即class前什么都不假)
abstract   抽象类
fanal      不能被继承的类
static     静态类
private    只能修饰内部类,一般不推荐使用

B、final是一个关键字



8、下列排序算法中,属于稳定排序算法的是(C)
A 快速排序 B 希尔排序 C冒泡排序 D 堆排序
补充:
常见稳定排序算法:基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序
不稳定的排序算法:快速排序、希尔排序、堆排序、直接选择排序

(1)冒泡排序
  冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在 这两个元素之间。所以,如果两个元素相等,我想你是不会再无 聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改 变,所以冒泡排序是一种稳定排序算法。
  (2)选择排序
  选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二 个元素选择第二小的,依次类推,直到第n-1个元素,第n个 元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果当前元素比一个元素小,而该小的元素又出现在一个和当前元素相等的元素后面,那么 交换后稳定性就被破坏了。比较拗口,举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。
  (3)插入排序
  插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列 只有1个元素,就是第一个元素。比较是从有序序列的末尾开 始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相 等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳 定的。
  (4)快速排序
  快速排序有两个方向,左边的i下标一直往右走,当a[i] <= a[center_index],其中center_index是中枢元素的数组下标,一般取为数组第0个元素。而右边的j下标一直往左走,当a[j] > a[center_index]。如果i和j都走不动了,i <= j, 交换a[i]和a[j],重复上面的过程,直到i>j。 交换a[j]和a[center_index],完成一趟快速排序。在中枢元素和a[j]交换的时候,很有可能把前面的元素的稳定性打乱,比如序列为 5 3 3 4 3 8 9 10 11, 现在中枢元素5和3(第5个元素,下标从1开始计)交换就会把元素3的稳定性打乱,所以快速排序是一个不稳定的排序算法,不稳定发生在中枢元素和a[j] 交换的时刻。
  (5)归并排序
  归并排序是把序列递归地分成短序列,递归出口是短序列只有1个元素(认为直接有序)或者2个序 列(1次比较和交换),然后把各个有序的段序列合并成一个有 序的长序列,不断合并直到原序列全部排好序。可以发现,在1个或2个元素时,1个元素不会交换,2个元素如果大小相等也没有人故意交换,这不会破坏稳定 性。那么,在短的有序序列合并的过程中,稳定是是否受到破坏?没有,合并过程中我们可以保证如果两个当前元素相等时,我们把处在前面的序列的元素保存在结 果序列的前面,这样就保证了稳定性。所以,归并排序也是稳定的排序算法。
  (6)基数排序
  基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有 时候有些属性是有优先级顺序的,先按低优先级排序,再按高优 先级排序,最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以其是稳定的排序算法。
  (7)希尔排序(shell)
  希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排 序的元素个数很少,速度很快;当元素基本有序了,步长很小, 插入排序对于有序的序列效率很高。所以,希尔排序的时间复杂度会比o(n^2)好一些。由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相同元 素的相对顺序,但在不同的插入排序过程中,相同的元素可能在各自的插入排序中移动,最后其稳定性就会被打乱,所以shell排序是不稳定的。
  (8)堆排序
我们知道堆的结构是节点i的孩子为2*i和2*i+1节点,大顶堆要求父节点大于等于其2个子 节点,小顶堆要求父节点小于等于其2个子节点。在一个长为n 的序列,堆排序的过程是从第n/2开始和其子节点共3个值选择最大(大顶堆)或者最小(小顶堆),这3个元素之间的选择当然不会破坏稳定性。但当为n /2-1, n/2-2, ...1这些个父节点选择元素时,就会破坏稳定性。有可能第n/2个父节点交换把后面一个元素交换过去了,而第n/2-1个父节点把后面一个相同的元素没 有交换,那么这2个相同的元素之间的稳定性就被破坏了。所以,堆排序不是稳定的排序算法。

9、软件设计原则:自底向上、模块化、信息隐蔽,更多

10进程与线程大的叙述正确的是:一个进程可拥有若干个线程,线程是操作系统分配处理器时间的基本单位; 更多

11、java中堆与栈有什么区别?
在程序中各有什么区别?
12、java中创建对象有几种方式?请分别说明。
一.最基本的:类名  对象名
Person person = new Person();
二.匿名对象:new 类名()
new Person();
三.通过反射:
Class c = Class.forName("类的全路径");
Person person = (Person)c.newInstance();



13、请举例说明使用设计模式所带来的好处。

java的设计模式共有23种!都是表示类与类之间的构架关系,也就是表示对象的逻辑关系!
比较常用的有简单工厂,抽象工厂,单例模式,装饰模式,适配器模式等等,说白了模式就是前人经过大量的实践,总结出来的优化的对象关系!
你使用这些优秀的模式去搭建你的程序 无论从效率上还是可读性上,都给人一种很舒服的感觉。

举例:1、java B/S 主流设计模式  mvc  能够使项目层次 简洁明确,易于维护、二次开发等优点。
其作用也是为了开发项目,所有设计模式都是为了开发。
MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

2、抽象工厂模式允许客户使用抽象接口来创建一组相关的产品,客户类和工厂类分开,客户需要任何产品的时候,只需要向工厂请求即可,客户无须修改就可以获得新产品。这样一来,客户就从具体产品中解耦。

14、简述servlet的生命周期,并说明各阶段的方法和作用?

init调用 初始化,servlet的第一步,
service 服务。调用(doGet,doPost),servlet 的第二步,
dis什么什么的,servlet的最后一步。更多

15、表结构(id,name)中,id为整数类型,具有唯一性,name为字节整数类型,可重复。要删除name重复的数据并且保留id字段值最小的记录,如何实现,请写出sql语句。

16、酒1元钱1瓶,2个空瓶可以换一瓶酒,问20块钱可以喝多少瓶酒?用递归算法。

17、Java世界向来以分工明确著称,作为即将跨入这一领域的你,是希望成为一名前台工程师还是后台工程师,或者其他的选择?请简述谈谈你选择的理由。

 

分享到:
评论

相关推荐

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集.zip

    java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx ...

    农行Java笔试题

    【标题】"农行Java笔试题"涉及到的Java知识点涵盖了编程基础、面向对象特性、集合框架、多线程、异常处理、IO流、网络编程、数据库操作等多个领域,这些都是Java程序员必须掌握的核心技能。 首先,从编程基础角度来...

    Java笔试题代码.png

    该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题 该文件为山大地纬Java开发岗笔试试题

    变态版java笔试试题

    Java 笔试试题变态版知识点总结 Java 笔试试题变态版是 Java 开发者面试的常见题目,涵盖了 Java 基础知识、垃圾收集器、字符串、Math 函数、线程、数组、多态性、Set 集合等方面。 一、垃圾收集器(GC) 垃圾...

    2020 兴业银行Java笔试题

    【Java笔试题解析】 在2020年兴业银行的Java笔试中,涉及了多个核心的Java编程和技术概念。以下是对部分题目进行的详细解答: 1. 输入一个正整数,计算并输出距离它最近的对称数 对称数是指从左向右读和从右向左...

    Java笔试题大集合及答案(另附各大公司笔试题)

    Java作为一门广泛使用的编程语言,其笔试题涵盖了基础语法、数据结构、算法、多线程、网络编程、设计模式等多个方面。本资料集合了大量Java笔试题,旨在帮助求职者全面复习并准备Java相关的笔试环节,同时包含了各大...

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB.zip

    java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB“ 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx 8张...

    最新各大公司JAVA笔试题及答案

    京东最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案最新各大公司JAVA笔试题及答案...

    java面试笔试资料Java经典项目集锦java笔试题大集合及答案题库java笔试题汇总资料个合集(188).zip

    java面试笔试资料Java经典项目集锦java笔试题大集合及答案题库java笔试题汇总资料个合集(188) 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring...

    java笔试题加答案(单选,多选,判断,简答)

    Java笔试题是评估应聘者Java编程能力的重要环节,通常包括单选题、多选题、判断题和简答题。这些题目覆盖了Java语言的核心概念、类库、编程规范以及问题解决能力。以下是一些可能出现在Java笔试题中的关键知识点: ...

    Java面试笔试题大汇总(最全+详细答案)

    Java作为一门广泛使用的编程语言,其面试笔试题涵盖了众多领域,包括基础语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程、数据库操作、设计模式、JVM优化等。以下是对这些知识点的详细阐述: 1. **...

    Java基础知识笔试题及答案

    Java 基础知识笔试题及答案 Java 是一种广泛使用的编程语言,它具有强大的功能和灵活性。本资源汇总了 Java 基础知识笔试题及答案,涵盖了 Java 的基本概念、数据类型、运算符、控制结构、函数、数组、集合框架、...

    广州Java笔试题1109+总结.txt

    广州Java笔试题1109+总结,适合大部分想跳槽,而且急需公司面试问题,如果能帮助到你的话 点赞 收藏。。

    上海交通银行JAVA笔试编程题

    上海交通银行的JAVA笔试编程题主要考察应聘者的Java编程基础以及在实际问题中的应用能力。这类题目通常涵盖多个方面,包括但不限于数据类型转换、字符串处理、字符编码与解码等核心概念。以下是对这些知识点的详细...

    最全的Java笔试题库之选择题篇-总共234道

    最全的Java笔试题库之选择题篇-总共234道 15.下列哪一种叙述是正确的( ) A. abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D. 声明...

    西安软件公司java笔试题

    为了充分准备这些Java笔试题,建议进行大量实践,编写代码,解决实际问题。同时,通过阅读《Effective Java》、《Java并发编程实战》等经典书籍,可以提升你的理论水平和实战能力。愿你在西安的软件公司Java笔试中...

    2016年4月方正Java软件工程师笔试题

    【标题】2016年4月方正Java软件工程师笔试题 这是一份针对2016年4月方正公司招聘Java软件工程师时所使用的笔试题目集。方正集团是中国知名的IT企业,其对Java工程师的技术要求通常涵盖了基础语法、面向对象编程、...

    著名国企的JAVA笔试题

    某著名国企的JAVA笔试题,内部资料 著名国企的JAVA笔试题

Global site tag (gtag.js) - Google Analytics