中兴JAVA岗主要做什么_中兴提前批面试部分问题JAVA开发岗(2016.06.28)

本文涵盖了Java开发中的关键知识点,包括Collection接口的List和Set实现,堆栈区与静态区的区别,序列化与反序列化的流程,线程中的sleep和wait方法比较,Servlet运行机制,设计模式概述,数据库表与视图的差异,存储过程的使用,Statement与PreparedStatement的异同,以及左连接和右连接的概念。这些内容对于理解Java开发和面试准备极具价值。
摘要由CSDN通过智能技术生成

1.Collection接口中有两个常用的子接口:List(列表),Set(集)。

List:可存放重复元素,元素存取是有序的。

ArrayList:底层为数组结构。查询速度快。增删稍慢。线程不同步。

LinkedList:底层为链表结构。增删速度快,查询稍慢。线程不同步

Vector:底层为数组结构。线程同步。被ArrayList替代了。因为效率低。

Set:不可以存放重复元素,元素存取是无序的

HashSet:数据结构是哈希表。线程不同步。hashCode和equals

TreeSet:可以对Set集合中的元素进行排序,数据结构为二叉树

实现Comparable接口,覆盖compareTo(Object obj)方法

实现Comparator接口,覆盖compare(Object o1,Object o2)方法

Map:存储键值对,键不可以重复,值可以重复。

取出map集合元素的两种方式方法keySet()和entrySet()

Hashtable: 数据结构为哈希表,不可以存入null键null值,线程同步。

HashMap:数据结构为哈希表,允许使用 null 值和 null 键,线程不同步。

TreeMap:数据结构为二叉树。线程不同步。

HashMap与HashTable的区别:1)HashTable继承自Dictionary,HashMap继承自AbstractMap;2)hashMap非线程安全的,允许空值为键值,hashTable线程安全的不允许null为键或者值3)hashTable的方法是同步的,而HashMap的方法是不同步的4)二者实现的算法大都一样的,所以性能不会有很大差异

List和Set的区别:都是继承自Collection类,2)list确保维护元素特定的顺序而set不保证维护元素的次序3)set的每个元素必须唯一

2.堆区栈区静态区:

堆区:1)存储的全部是对象,每个对象都包含一个与之对应的class的信息。2)jvm只有一个堆区被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身。

栈区:1)每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用,对象都存放在堆区。2)每个栈中的数据都是私有的,其他栈不能访问。3)栈分为3个部分:基础类型变量区、执行环境上下文、操作指令区

静态区:方法区又叫静态区,跟堆一样被所有线程共享。方法区包含所有的class和static变量

3. 序列化与反序列化:

把对象转换为字节序列的过程称为对象的序列化

把字节序列恢复为对象的过程称为对象的反序列化

对象序列化步骤:

1)创建一个对象输出流,可以包装一个其他类型的目标输出流,如文件输出流;2)通过对象输出流的writeObject()方法写对象;3

对象反序列化步骤:

1)创建一个对象输入流,可以包装一个其他类型的源输入流如文件输入流;2)通过对象输入流的readObject()方法读取对象。

作用:把对象的字节序列永久地保存在硬盘上,通常放在一个文件中;2)在网络上传送对象的字节序列

应用举例:web服务器中Session对象,序列化之后存入硬盘中,而不是占据内存空间,比如10万用户并发访问,内存吃不消,把session先序列化到硬盘中,需要用的时候再把保存在硬盘中的对象还原到内存中。

4. sleep和wait方法的区别:

1)sleep方法是属于Thread类的方法,而wait方法是Object类的方法。

2)sleep方法不会释放锁,wait方法会释放锁

3)wait方法只能执行在同步代码块内,sleep可以在任意地放执行

4)sleep方法会抛出异常,而wait方法不会抛出异常

5. serverlet运行机制:

1)客户端发送请求道服务器端

2)服务器将请求信息发送至Servlet

3)Servlet生成响应内容并将其传给Server。响应内容动态生成,却绝于客户端的请求。

4)服务器将响应返回给客户端。

生命周期:

1)初始化阶段,调用init()方法

2)响应客户请求阶段 调用service()方法

3)终止阶段 调用destroy()方法

工作原理:客户端发送请求,Servelet调用service()方法对请求响应,service方法()对请求的方式进行匹配,选择调用doGet,doPost方法然后调用逻辑层的方法,对客户端进行响应。

6.设计模式:转载常用设计模式详解:http://shenzhenchufa.blog.51cto.com/730213/161581

7. 数据库表和view区别

1)视图是编译好的sql语句,表不是

2)视图没有实际的物理记录,表有

3)表示内容,视图是窗口

4)表只用物理空间而视图不占用物理空间,视图是逻辑概念

5)表示内模式,视图是外模式

6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据

7)表示属于全局的,是实表,视图是属于局部的,是虚表。

8)视图的删除和建立只影响视图本身,不影响对应的基本表。

8. 存储过程

存储过程是一个记录集,像一个方法一样实现一些功能(对单表或者多表的操作)

java调用存储过程:加载驱动,获得连接,创建存储过程对象,如果有参数就对参数赋值,然后执行存储过程

9. statement 和prepareStatement区别

1)PrepareStatement多用于批处理效率很高,Statement多用于顺序执行

2)statement用于执行静态sql语句,在执行时,必须指定一个事先准备好的sql语句,Preparestatement是预编译sql语句对象,语句中参数用?代替,在对?处动态设置参数

10. 左连接和右连接

左连接:包含所有左边表中有的记录,即使右边表中没有

右连接:包含右边表中所有记录,即使左边没有的

11. 游标

将受影响的数据暂时放在一个内存区域的虚表中,这个虚表就是游标

作用:1)根据游标的内容对数据进行回滚操作

类型:1)隐示游标:增删改操作会自动创建游标,暂时保存操作结果,也就是能够回滚的操作会引发游标的创建

2)显示游标:由开发人员通过程序显示控制,用于从表中取出多行数据,并将多行数据一行一行的单独处理

还有些数据结构计算机网络常见的问题并未整理。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值