- 二分查找要求节点(A)
A.有序,顺序存储
B.有序,链接存储
C.无序,顺序存储
D.无序,链接存储 - 下面关于二分查找的叙述中正确的是(D)
A.表必须有序,表可以顺序方式存储,也可以链表方式存储
B.表必须有序且表中数据必须是整型,实型或字符型
C.表必须有序,而且只能从小到大排列
D.表必须有序,且表只能以顺序方式存储
解析:二分查找是一个基础的算法。
二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组据徐查找;如果大于中间键,就在右子数组中查找,否则,中间间就是要找的元素。二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 它的算法要求是必须是顺序存储结构,必须有序排列。
3. 引入线索二叉树的目的是(A)。
A. 加速查找节点的前驱或后继节点的速度。
B. 为了能在二叉树中方便插入和删除
C. 为了能方便找到双亲
D. 使二叉树的遍历结果唯一
解析:什么是线索二叉树?线索二叉树是对二叉链表中空指针的充分利用,使得原本是空指针的转化成在某种遍历的顺序下,指向该节点的前驱和后继。线索就是前驱节点和后继节点的指针,引入线索的目的是加速对二叉树的遍历。
4. 请简述http协议中get请求和post请求的区别?
答:get是指从指定的资源请求数据,一般用于获取/查询资源信息,就像数据库查询猜哦用一样,不会修改和影响资源的状态,一般不会产生副作用;
①请求可被缓存
②请求保留在浏览器历史记录中
③请求可被收藏为书签
④请求有长度限制;
post是指向指定的资源提交要被处理的数据,一般用于更新资源信息。
①请求不会被缓存
②请求不会保留在浏览器历史记录中
③请求不能被收藏为书签
④请求对数据长度没有长度限制;
**补充:**Http协议定义了与服务器交互的不同方法,最基本的方法有4种,分别是get、post、put、delete。
在浏览器中输入网址访问资源一般都是通过get方式;
URL全称就是资源描述符,可以认为一个URL地址用于描述一个网络上的资源。而HTTP种的get、post、put、delete就对应着这个资源的查、改、增、删四个操作。
5. 请简述session和cookie的区别?
①Session是存储在服务器端的,cookie是存储在客户端的,所以session的安全性要高于cookie.所以,cookie里面的信息可以被盗取,而session自然就会很安全。
②session保存是有上限的,服务器存储有限。通常将一些重要的东西放在session里,将一些不太重要的东西放在客户端cookie里。因为,session是存放在服务器里的,所以,session里的东西不断增加会增加服务器的负担。
③cookie可以保存我们浏览网页时的信息,记录,session就是在网页需要登陆时,保存我们登陆的信息,下次,使用时,可以直接访问,不用重新登陆。
6. 请简述Servlet与JSP的关系?
①Servelet是java编写的服务器小程序,它的主要功能在于交互式地浏览和修改数据,shengche能够动态Web内容。
②JSP属于镶嵌型语言,它将JSP TAG镶嵌到HTML语句中,简化和方便了网页地设计和修改。在JSP中编写静态HTML更加方便。
7. 写出2个常用的设计模式,并简述应用场景。
①设计模式有什么用?
设计模式是在软件工程实践过程中,程序员们总结出的良好的编程方法。设计模式就是软件开发过程中的设计思路与实现思路,便于后期项目的扩展和研发。
②单例模式:
1)核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
优点:由于单例模式只有一个实例,减小系统性能开销,当一个对象的产生需要需要比较多的资源时,如读取配置、产生其它依赖对象时,则可以通过在应用启动时直接创建一个单例对象,然后永久驻留内存的方式来解决。
单例模式可以在系统设置全局访问点,优化环共享资源访问,例如可以设置一个单例类,负责所有数据的映射处理。
2)应用场景:
A. windows的Task Manager(任务管理器)就是一个典型的单例模式
B. windows的Recycle Bin(回收站)也是典型的单例模式,在整个系统运行过程中,回收站一直维护着仅有的一个实例。
C.在Spring中,每个Bean默认就是单例的,这样做的优点就是Spring容器可以管理。
D.在servlet编程中,每个servlet也是单例的。
3)单例模式的实现方式:饿汉式和懒汉式
饿汉式:线程安全,调用效率高,但是,不能延时加载
懒汉式:线程安全,调用效率不高,但是,可以延时加载
③工厂模式
1)核心作用:
提供过度接口,屏蔽过程,提高灵活性
2)应用场景:
生成复杂对象的场合,需要引入一个工厂类
8. HashMap和HashTable的区别?
HashTable是Dictionary的子类,HashMap是AbstractMap的子类,
HashMap和HashTable都实现了Map接口,但是在决定用哪个以前要弄清楚它们之间的区别,包括线程安全性,同步,以及速度。
1) HashTable是线程同步的,HashMapz则不是,这使得HashMap在非线程安全应用中性能更好,因为,非线程同步的对象通常性能比线程同步对象更好。(性能好,体现在什么地方?)
2) HashTable的键和值不能为空,但是,HashMap的允许一个空键和任何数量的空值。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
3) HashTable是synchronized的,而HashMap是非synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个HashTable.
4) HashTable是线程安全的,也是synchronized,所以,在单线程环境下它比HashMap要慢。所以,如果线程不需要同步,且只需要单一线程,那么使用HashMap性能要好过HashTable。
5) HashMap不能保证随着时间的推移Map中元素次序是不变的。
6)但HashMap的同步问题可通过Collections的一个静态方法得到解决
9. int和integer的区别?
1) Integer是int的包装类,int则是java的一种基本数据类型
2) Integer变量必须实例化后才能使用,而int变量不需要
3) Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4) Integer的默认值是null,int的默认值是0
Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)
10. 视图是一个“虚表”,视图的构造基于(A)
A.基本表
B.视图
C.基本表或视图
D.数据字典
**解析:**MySQL内容。
视图保存的并不是真实的数据,而是一张虚拟的表,不占用内存空间。
什么是视图?就是一条SELECT语句执行后返回的结果集。所以,我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。
视图的特性:视图是对若干张基本表的引用,一章虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);可以跟基本表一样,进行增删查改操作;
视图的作用: 1)提高重用性,就像一个函数 2)对数据库重构,确不影响程序的运行 3)提高了安全性能,可以对不同的用户 4)让数据更加清晰。
11. 下列选项中,降低进程优先级的合理时机是( A)。
A.进程的时间片用完
B.进程刚完成I/O,进入就绪队列
C.进程长期处于就绪队列中
D.进程从就绪状态转为运行态
解析:本题目考查进程的基本状态转换。完成I/O进入就绪队列的进程尚未执行,不能降低其优先级;长期处于就绪队列的进程应提高其优先级;进程刚刚转入运行态,也不应降低其优先级;当进程的时间片用完,调度程序需要调度其他程序进入处理机执行,此时降低进程优先级是合理的。因此应该选A。
后续更新……….