java 初中级程序员笔试题

**1、 **面向对象的特征有哪些方面?

答:抽象:

抽象就是忽略当前主题中与目标无关的那些方面,比便充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用注意细节。

继承:

继承允许和鼓励类的重用,提供了一种明确表述共性的方法。对象的一个新类可以从现有类中派生,这个过程成为继承。新类继承了原始类的特性,新类成为院士类的派生类(子类),而原始类成为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

封装:

封装过程和实现细节,对数据和方法的访问只能通过程序提供的公有方法和字段进行访问。

多态性:

允许不同类的对象对同一消息作出响应。多态具有灵活、抽象、行为共享、代码共享的优势。

2、 String和StringBuffer的区别?

答:它们都是操作字符串的,但是String是final类,字符串的值不会改变。而StringBuffer类提供的字符串可以修改。

**3、 **同步和异步有什么区别?在什么情况下使用?

答:如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

java 初中级程序员笔试题_第1张图片

4、 gc是什么?为什么要有gc?

答:GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
  System.gc()
  Runtime.getRuntime().gc()

**5、 ****Math.round(11.5)**等于多少?Math.round(-11.5)等于多少?

答:12   -11

6、 absract的mathod是否可以同时是static,是否可以同时是native,是否可以同时是synchronized?

答:都不能

注:absract应该为abstract

**7、 **线程的基本概念、基本状态及状态之间的关系?

答:线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束

8、 mvc的各个部分都有哪些技术实现?如何实现?

答: M model业务逻辑(javaBean ,EJB组件)

V view 表示层(jsp页面)

C controller 控制层 (servlet)

视图层接受用户的输入和请求等,然后请求到达Servlet的控制器后,转发到相应的业务逻辑,业务逻辑运算完成后,再将数据呈现给相应表现层view

java 初中级程序员笔试题_第2张图片

9、 xml文档定义有几种形式?之间的区别?解析xml文档有哪几种方式?

答:两种形式 dtd  schema,

本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),

有DOM,SAX,STAX等

DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问

SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

STAX:Streaming API for XML (StAX)

10、    servlet的生命周期?

答:Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

11**、描述一下jvm加载class文件的原理机制?**

答:JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。

12**.Spring最有用的功能是什么****?举例说明IOCAOP****的作用。**

答:IOC依赖注入。

IOC通过容器而不是直接将java对象间的关系注入应用程序中,可以应用程序就实现了解耦,分层。

AOP 面向切面编程,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。

13**、sql语句性能调优的方法有哪些?**

答:1、合理使用索引

2、用exists/not exists代替in/not in操作

3、尽量用联表查询不用子查询

4、用存储过程往往更有效率

14**、假设有如下表:**

TABLE: test

|

ID

|

A

|

B

|
|

1

|

4

|

2

|
|

2

|

1

|

2

|
|

3

|

1

|

3

|
|

4

|

3

|

2

|
|

5

|

1

|

5

|
|

6

|

1

|

2

|
|

7

|

4

|

-1

|
|

8

|

1

|

2

|

写一条SQL语句,选择所有a=1或b=2的记录,使得a=1且b=2的记录排在最前面,并且a=1且b=2的记录按id降序排列。

答:select * from (select * from test where a = 1 and b =2 order by id desc )

union select * from (select * from test where id not in (select id from test where a = 1 and b =2)) t

where t.a = 1 or t.b =2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值