1.在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作。(单选)

A) FileInputStream

B) FileReader

C) FileWriter

D) File

2. Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是()(单选)

A) ArrayList和LinkedList均实现了List接口

B) ArrayList的访问速度比LinkedList快

C) 添加和删除元素时,ArrayList的表现更佳

D) HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值

ArrayList 保存所有元素 包括null,优点:根据索引快速访问;缺点:指定索引位置插入删除慢

Linkedlist链表结构保存对象,优点:便于插入删除;缺点:随机访问,效率低

几个面试常见问题:

1.Q:ArrayList和Vector有什么区别?HashMap和HashTable有什么区别?

A:Vector和HashTable是线程同步的(synchronized)。性能上,ArrayList和HashMap分别比Vector和Hashtable要好。

2.Q:大致讲解java集合的体系结构

A:List、Set、Map是这个集合体系中最主要的三个接口。

其中List和Set继承自Collection接口。

Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。

List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。

Map也属于集合系统,但和Collection接口不同。Map是key对value的映射集合,其中key列就是一个集合。key不能重复,但是value可以重复。HashMap、TreeMap和Hashtable是三个主要的实现类。

SortedSet和SortedMap接口对元素按指定规则排序,SortedMap是对key列进行排序。

3. 在使用super 和this关键字时,以下描述正确的是()(单选)

A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

记住正确选项错误已删除

4. 在Java中,JDBC API定义了一组用于与数据库进行通信的接口和类,它们包括在()包中。(单选)

A) java.lang

B) java.sql

C) java.util

D) java.math

5. Java中,以下( )接口以键_值对的方式存储对象。(单选)

A) java.util.Collection

B) java.util.Map

C) java.util.List

D) java.util.Set

6. 以下关于对象序列化描述正确的是()(多选)

A) 使用FileOutputStream可以将对象进行传输 、、文件

B) 使用PrintWriter可以将对象进行传输

C) 使用ObjectOutputStream类完成对象存储,使用ObjectInputStream类完成对象读取

D) 对象序列化的所属类需要实现Serializable接口

Java对象序列化ObjectOutputStream和ObjectInputStream Java中ObjectInputStream 与

ObjectOutputStream这两个包装类可用于输入流中读取对象类数据和将对象类型的数据写入到底层输入流

。ObjectInputStream 与 ObjectOutputStream 类所读写的对象必须实现了 Serializable

接口。需要注意的是:对象中的 transient 和 static 类型的成员变量不会被读取和写入 。

7. 在Java中,( )类可用于创建链表数据结构的对象。(单选)

A) LinkedList

B) ArrayList

C) Collection

D) HashMap

8. 分析下面这段Java代码,它的运行结果是( )。(单选)

Import java.io.*;

Public class B{

Public static void main(string [] args){

int i=12;

System.out.println(i+=i-=i*=i);}}

A) 100

B) 0

C) -120

D) 程序无法编译

先分解 i+=i;(a) i*=i;(b) i-=i;(c); 这个公式是从左向右走的 比如i=5; 先走a i+=i;

+=这种算法是先加再等于 i=i+i;这样是不对的 i+=i;整体是10 但是i依然是5,这个不知道你能明白吗? 再往右走因为后面有乘法先做乘法b 同上 i*=i; i一直是5但是 i*=i为25 把i=i*i看成一个整体是25但是i还是5;

再走c的时候 i-=i 其实是i=a-b;就是10-25=-15;

9. 使用JDBC事务的步骤是()(多选)

A) 取消Connection的事务自动提交方式

B) 发生异常回滚事务

C) 获取Connection对象

D) 操作完毕提交事务

数据库开启事务命令 方式一:利用SQL语句管理事务 start

transaction;–开启事务,这条语句之后的sql语句将处在一个事务当中,这些sql语句并不会立即执行

Commit–提交事务,一旦提交事务,事务中的所有sql语句才会执行。 Rollback – 回滚事务,将之前所有的sql取消。

方式二:在数据库中存在一个自动提交变量,通过show variables like ‘%commit%’—–autocommit

值是on,说明开启了事务自动提交。 可以 set autocommint = off(set

autocommint=0),关闭自动提交,此时输入的sql语句就不会自动提交了,需要手动roolback或commit

(1)当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,可使用下列语句:

(2)JDBC控制事务语句 Connection.setAutoCommit(false); // 相当于start

transaction Connection.rollback(); rollback Connection.commit();

commit (3)设置事务回滚点 Savepoint sp = conn.setSavepoint();

Conn.rollback(sp); Conn.commit(); //回滚后必须要提交

10. 以下对JDBC事务描述错误的是()(单选)

A) JDBC事务属于JAVA事务的一种

B) JDBC事务属于容器事务类型

C) JDBC事务可以保证操作的完整性和一致性

D) JDBC事务是由Connection发起的,并由Connection控制

Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。

1、JDBC事务

JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( java.sql.Connection

)提供了两种事务模式:自动提交和手工提交。 java.sql.Connection 提供了以下控制事务的方法:

public void setAutoCommit(boolean) public boolean getAutoCommit()

public void commit() public void rollback()

使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。一个

JDBC 事务不能跨越多个数据库。

2、JTA(Java Transaction API)事务

JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。

JTA允许应用程序执行分布式事务处理–在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。

如果计划用 JTA 界定事务,那么就需要有一个实现 javax.sql.XADataSource 、

javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC

驱动程序。一个实现了这些接口的驱动程序将可以参与 JTA 事务。一个 XADataSource 对象就是一个 XAConnection

对象的工厂。 XAConnection s 是参与 JTA 事务的 JDBC 连接。

您将需要用应用服务器的管理工具设置 XADataSource 。从应用服务器和 JDBC 驱动程序的文档中可以了解到相关的指导。

J2EE 应用程序用 JNDI 查询数据源。一旦应用程序找到了数据源对象,它就调用

javax.sql.DataSource.getConnection() 以获得到数据库的连接。

XA 连接与非 XA 连接不同。一定要记住 XA 连接参与了 JTA 事务。这意味着 XA 连接不支持 JDBC

的自动提交功能。同时,应用程序一定不要对 XA 连接调用 java.sql.Connection.commit() 或者

java.sql.Connection.rollback() 。相反,应用程序应该使用 UserTransaction.begin()、

UserTransaction.commit() 和 serTransaction.rollback() 。

3、容器事务

容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。相对编码实现JTA事务管理,

我们可以通过EJB容器提供的容器事务管理机制(CMT)完成同一个功能,这项功能由J2EE应用服务器提供。这使得我们可以简单的指定将哪个方法加入事

务,一旦指定,容器将负责事务管理任务。这是我们土建的解决方式,因为通过这种方式我们可以将事务代码排除在逻辑编码之外,同时将所有困难交给

J2EE容器去解决。使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB。

四、三种事务差异

1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。

2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。

3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。

五、总结

事务控制是构建J2EE应用不可缺少的一部分,合理选择应用何种事务对整个应用系统来说至关重要。一般说来,在单个JDBC

连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务。

参考答案:

1.D 2.C 3.A 4.B 5.B

6.CD 7.A 8.C 9.CABD 10.B

后面陆续发布Java选择题,简答题,android 选择题,简答题,以及面试真题!!!敬请期待

android必看java_Android开发工程师必看笔试题:Java基础选择题(一)相关推荐

  1. 25个Web前端开发工程师必看的国外大牛和酷站

    逛了一周国外大牛们的博客与酷站,真是满满的钦佩.震撼.羡慕.惊喜---- Web设计是一个不断变化的领域,因此掌握最新的发展趋势及技术动向对设计师来说非常重要.无论是学习新技术,还是寻找免费资源与工具 ...

  2. Python开发工程师必知十大机器学习库

    Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,再加上其简单.易学.速度快.开源免费.可移植性.可扩展性以及面向对象的特点,Python成为2017年最受欢迎的最受欢迎的编程 ...

  3. python自动化运维与开发岗位_新课 | 运维开发工程师必学的Python自动化运维课程,学完后悔没早点学!...

    原标题:新课 | 运维开发工程师必学的Python自动化运维课程,学完后悔没早点学! 马哥教育2017年Python自动化开发实战班,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一 ...

  4. 北京java研发平均工资_各地java开发工程师平均工资 北京高级java开发工程师工资2万多...

    原标题:各地java开发工程师平均工资 北京高级java开发工程师工资2万多 java开发工程师工资水平一直都是程序员们比较关注的话题,毕竟java是最热门的编程的语言.每个城市的由于经济水平的差距, ...

  5. 网易2018实习生招聘笔试题-JAVA开发实习生

    网易2018实习生招聘笔试题-JAVA开发实习生 如何从有数字规律的网址抓取网页并保存在当前目录?假设网址为 http://test/0.xml,其中这个数字可以递增到100. for(int i=0 ...

  6. 360集团2016JAVA研发工程师内推笔试题

    360集团2016JAVA研发工程师内推笔试题 题目来源:牛客网 https://www.nowcoder.com/test/question/analytic?tid=21122281 1.执行以下 ...

  7. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  8. 2.2 华为-软件工程师-7.21笔试题

    文章目录 2.2 华为-软件工程师-7.21笔试题 2.2.1 编程一:资源占用 2.2.2 编程二:贪心+小根堆 2.2.3 编程三:图 2.2 华为-软件工程师-7.21笔试题 2.2.1 编程一 ...

  9. 互联网公司招聘--奇虎360--研发工程师--2016年笔试题

    互联网公司招聘–奇虎360–研发工程师–2016年笔试题 互联网公司招聘–奇虎360–研发工程师–2016年笔试题 互联网公司招聘–奇虎360–研发工程师–2016年笔试题 1.正在挑战一个 Crac ...

最新文章

  1. 你需要知道的10个最佳javascript开发实践
  2. html文字依次显示,利用定时器和css3动画制作文字依次渐变显示的效果
  3. 基于 Bootstrap 的响应式后台管理面板
  4. 解决firebug报“illegal character错误的问题
  5. odoo12 启动过程中出现的问题解决
  6. markdown如何修改为 微软雅黑 字体
  7. Logger.getLogger和LogFactory.getLog的区别
  8. ENVI5.3.1使用Landsat 8影像进行灰度分割(密度分割)
  9. linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
  10. 延时等待的gcode
  11. Learning from class-imbalanced data: Review of methods and applications 论文阅读
  12. php垃圾回收,PHP垃圾回收机制的理解
  13. nginx代理本地JBoss访问吃力的问题
  14. mysql密码认证插件_关于mysql:无法加载身份验证插件’caching_sha2_password’
  15. 「智慧医疗」HL7消息解析实战Demo
  16. 雨中的尾巴(线段树合并+树上差分)
  17. Navicat查看数据库密码
  18. Flume 以twitter为source,kafka为channel,hdfs为sink,再用spark streaming 读kafka topic
  19. Windows10必做的优化
  20. java计算机毕业设计养老院管理系统源码+系统+数据库+lw文档

热门文章

  1. Python案例:按键测试
  2. bzoj2751 [HAOI2012]容易题 数学
  3. 2017.10.14 【FOTILE模拟赛】L 失败总结
  4. 2017.10.11 灾难 失败总结
  5. 杨辉三角、组合数 性质的探究
  6. 嵌入式linux设备驱动程序是,嵌入式Linux设备驱动开发之:按键驱动程序实例-嵌入式系统-与非网...
  7. 程序员的自我修养——读《软技能-代码之外的生存指南》笔记
  8. swagger 修改dto注解_一文搞懂Swagger,让你明白用了Swagger的好处!!!
  9. 用php写的亲亲鲜花网站_php54鲜花销售网站
  10. 使用Metal打造令人惊叹的游戏效果