2020Java常见面试题整理(一)

注:素材来源于网络收集,侵删

一、JDK 常用的包

  • java.lang: 这个是系统的基础类,比如 String、Math、Integer、System 和 Thread, 提供常用功能。在 java.lang 包中还有一个子包:java.lang.reflect 用于实现 java 类…
  • java.io: 这里面是所有输入输出有关的类,比如文件操作等
  • java.net: 这里面是与网络有关的类,比如 URL,URLConnection 等。
  • java.util : 这个是系统辅助类,特别是集合类 Collection,List,Map 等。
  • java.sql: 这个是数据库操作的类,Connection, Statememt,ResultSet 等

二、Get 和 Post 的区别

  • 1.get 是从服务器上获取数据,post 是向服务器传送数据,
  • 2.get 传送的数据量较小,不能大于 2KB。post 传送的数据量较大,一般被默认为不 受限制。
  • 3.get 安全性非常低,post 安全性较高。但是执行效率却比 Post 方法好。
  • 4.在进行文件上传时只能使用 post 而不能是 get

三、Java 多态的具体体现

面向对象编程有四个特征:抽象,封装,继承,多态。 多态有四种体现形式:

  • 1.接口和接口的继承。
  • 2.类和类的继承。
  • 3.重载。
  • 4.重写

其中重载和重写为核心。 重载:重载发生在同一个类中,在该类中如果存在多个同名方 法,但是方法的参数类型和个数不一样,那么说明该方法被重
载了。 重写:重写发生在子类继承父类的关系中,父类中的方法被子 类继承,方法名,返回值类型,参数完全一样,但是方法体不
一样,那么说明父类中的该方法被子类重写了。

四、StringBuffer StringBuilder String 区别

String 字符串常量 不可变 使用字符串拼接时是不同的 2 个空间
StringBuffer 字符串常量 可变 字符串拼接直接在字符串后追加 线程安全
StringBuilder 字符串常量 可变 字符串拼接直接在字符串后追加 线程不安全
  • 1.StringBuilder 执行效率高于 StringBuffer 高于 String.
  • 2.String 是一个常量,是不可变的,所以对于每一次+=赋值都会创建一个新的对象, StringBuffer 和 StringBuilder 都是可变的,当进行字符串拼接时采用 append 方 法,在原来的基础上进行追加,所以性能比 String 要高,又因为 StringBuffer 是 线程安全的而 StringBuilder 是线程非安全的,所以 StringBuilder 的效率高于 StringBuffer.
  • 3.对于大数据量的字符串的拼接,采用 StringBuffer,StringBuilder.

五、Hashtable 与 HashMap 的区别

HashMap 不是线程安全的,HashTable 是线程安全。 HashMap 允许空(null)的键和值(key),HashTable 则不允许。 HashMap 性能优于 Hashtable。

Map

  • 1.Map 是一个以键值对存储的接口。Map 下有两个具体的实现,分别是 HashMap 和 HashTable.
  • 2.HashMap 是线程非安全的,HashTable 是线程安全的,所以 HashMap 的效率高于 HashTable.
  • 3.HashMap 允许键或值为空,而 HashTable 不允许键或值为空.

六、九大隐式对象

输入/输出对象: request response out

作用域通信对象: session application pageContext

Servlet 对象: page config

错误对象: exception

七、Forword(请求转发)与 Redirect(重定向)

  • 1、从数据共享上 Forword 是一个请求的延续,可以共享 request 的数据 。Redirect 开启一个新的请求,不可以共享 request 的数据
  • 2、从地址栏 Forword 转发地址栏不发生变化 Redirect 转发地址栏发生变化

八、JQurey 总结

jquery 是一个轻量级的 js 框架,具有跨浏览器的特性,兼容性好, 并且封装了很多工具,方便使用。 常用的有: 选择器 ,dom 操作 ,ajax(ajax 不能跨域) ,特效,工具类

九、XML 和 Json 的特点

Xml 特点:

  1. 有且只有一个根节点;
  2. 数据传输的载体
  3. 所有的标签都需要自定义
  4. 是纯文本文件

Json(JavaScript Object Notation)特点: json 分为两种格式: json 对象(就是在{}中存储键值对,键和值之间用冒号分隔, 键 值 对之间用逗号分隔); json 数组(就是[]中存储多个 json 对象,json 对象之间用逗号分隔) (两者间可以进行相互嵌套)数据传输的载体之一

区别:传输同样格式的数据,xml 需要使用更多的字符进行描述, 流行的是基于 json 的数据传输。 xml 的层次结构比 json
更清晰。 共同点:xml 和 json 都是数据传输的载体,并且具有跨平台跨语言的特性。

十、request.getSession()、reqeust.getSession(false) 和

request.getSession(true) getSession()/getSession(true):当 session 存在时返回该 session,否则新建一个 session 并返回该对象 getSession(false):当 session 存在时返回该 session,否则返回 null

十一、Page 和 PageContext 的区别

Page 是 servlet 对象;使用 this 关键字,它的作用范围是在同一页面。 PageContext 是作用域通信对象;通常使用 setAttribute()和 getAttribute()来设置和获取 存放对象的值。

十二、Ajax 总结

AJAX 全称: 异步 JavaScript 及 XML(Asynchronous JavaScript And XML) Ajax 的核心是 JavaScript 对象 XmlHttpRequest(XHR)。 Ajax 的优点:

  • 提高用户体验度(UE)
  • 提高应用程序的性能 进行局部刷新
  1. AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用 程序的技术。
  2. 通过 AJAX,我们的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接 与服务器进行通信。通过这个对象,我们的 JavaScript 可在不重载页面的情况与 Web 服 务器交换数据,即可局部刷新。
  3. AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网 页从服务器请求少量的信息,而不是整个页面,减轻服务器的负担,提升站点的性能。 AJAX 可使因特网应用程序更小、更快,更友好,用户体验(UE)好。
  4. Ajax 是基于标准化并被广泛支持的技术,并且不需要插件和下载小程序

十三、JSP9 大隐视对象中四个作用域的大小与作用范围

四个作用域从大到小:appliaction>session>request>page

application:全局作用范围,整个应用程序共享.生命周期为:应用程序启动到停止。

session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记 住这个会话状态。

request:请求作用域,就是客户端的一次请求。

page:一个 JSP 页面。 以上作用范围使越来越小, request 和 page 的生命周期都是短暂的,

他们之间的区 别就是:一个 request 可以包含多个 page

十四、List,Set,Collection,Collections

  • List 和 Set 都是接口,他们都继承于接口 Collection,List 是一个有序的可重复的集合,而 Set 的无序的不可重复的集合。Collection 是集合的顶层接口,Collections 是一个封装了 众多关于集合操作的静态方法的工具类,因为构造方法是私有的,所以不能实例化。
  • 2.List 接口实现类有 ArrayList,LinkedList,Vector。ArrayList 和 Vector 是基于数组实现的, 所以查询的时候速度快,而在进行增加和删除的时候速度较慢 LinkedList 是基于链式存储 结构,所以在进行查询的时候速度较慢但在进行增加和删除的时候速度较快。又因为 Vector 是线程安全的,所以他和 ArrayList 相比而言,查询效率要低。

十五、java 的基本数据类型

  • 数据类型 大小
  • byte(字节) 1(8 位)
  • short(短整型) 2(16 位)
  • int(整型)4(32 位)
  • long(长整型) 8(32 位)
  • float(浮点型) 4(32 位)
  • double(双精度) 8(64 位)
  • char(字符型) 2(16 位)
  • boolean(布尔型) 1 位

猜你喜欢

转载自blog.csdn.net/qq_43078445/article/details/106986432