java面试汇总二

第一部分 Java SE基础(2)

1.8   Session 和 COOKIE

1.session 和 cookie 区别

cookie 是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个 Web服务器存储 cookie。以后浏览器在给特定的 Web 服务器发请求的时候,同时会发送所有为
该服务器存储的 cookie。下面列出了 session 和 cookie 的区别补充:

1.无论客户端浏览器做怎么样的设置,session 都应该能正常工作。客户端可以选择禁用cookie,但是,session 仍然是能够工作的,因为客户端无法禁用服务端的 session。

2.在存储的数据量方面 session 和 cookies 也是不一样的。session 能够存储任意的 Java 对象,cookie 只能存储 String 类型的对象。
1.9  equls 和 == 的区别

注意:equals 方法不能用于基本数据类型的变量,如果没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址。

1.10  ArrayList和LinkedList的区别?

ArrayList底层使用的是数组,LinkedList使用的是链表

数组具有索引,查询特定的元素比较快,而插入和删除,修改比较慢 (数组在内存中是一块连续的内存,如果插入或删除时需要移动内存)

链表不要求内存时连续的,在当前元素中存放下一个或上一个元素的地址,查询时需要从头开始,一个一个地找,查询效率低,而插入时不需要移动内存,只需要改变引用指向即可。所以插入或删除效率高

ArrayList适用于查询比较多,但是插入和删除比较少的情况。

而LinkedList使用在查询比较少,但是插入和删除比较多的情况。

1.11  HashMap和HashTable的区别?

1.HashMap和HashTable都可以使用来存储key-value的数据。

2.HashMap是可以吧null作为key或者value的,而hashTable是不可以的。

3.HashMap是线程不安全的,效率较高。HashTable是线程安全的,效率较低。

问题:我想线程安全又想效率高?使用CurrentHashMap

通过把整个Map分为N个Segment(类似于HashTable),可以提供相同的线程安全,但效率提升N倍,默认是提升16倍。

1.12 & 和 && 的区别

&运算符有两种用法:(1)按位与;(2)逻辑与。

&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。

&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为 username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,
因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。
注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。
1.13 是否可以继承 String

String 类是 final 类,不可以被继承。

继承 String 本身就是一个错误的行为,对 String 类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。
1.14 值传递与引用传递

值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。一般认为,java 内的传递都是值传递. java 中实例对象的传递是引用传递。
1.15 字节流 字符流

InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。

参考文章:与https://www.cnblogs.com/creative-work/p/12494798.html参考相同

原文地址:https://www.cnblogs.com/creative-work/p/12495104.html

时间: 2024-10-20 02:31:00

java面试汇总二的相关文章

Java面试汇总

转自:http://zy19982004.iteye.com/blog/1846537#comments 一.All 最近找工作,遇到的笔试面试题,归纳如下,供大家参考. 二.J2SE 容器 HashMap,LinkedHashMap,TreeMap的实现,算法时间复杂度. HashSet,LinkedHashSet,TreeSet的实现. ArrayList,LinkedList的实现.某公司机试:自己实现一个List. 同步容器.java.util.Collections类. 多线程 多线程

Java面试(二)

1 同步方法 VS 同步代码块: java中,每一个对象都有一把锁,线程用synchronized获取对象上的锁. 非静态同步方法:锁是类的对象的锁. 静态同步方法:锁的是类本身. 同步方法块:锁是可以选择的.所以能更加精确的控制.粒度更细致,可以更精确的控制对象锁. 2 确保N个线程可以访问N个资源而不死锁? 指定资源获取顺序.所有线程都按照同样的顺序请求资源. 3  Java集合框架接口 Collection:  代表一组对象. Set: List: Map: 4 为什么集合类没有实现Clo

[Java面试十二]数据库概念相关

1. 什么是存储过程?它有什么优点? 答:存储过程是一组予编译的SQL语句,它的优点有: 允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次. 允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快. 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码. 更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程. 2. oracle的存储过程和函数有什么区别? Orac

Java面试技巧

[Java面试一]面试复习大纲. [Java面试二]Java基础知识精华部分. [Java面试三]JavaWeb基础知识总结. [Java面试四]Strust2总结及在面试中的一些问题. [Java面试五]Spring总结以及在面试中的一些问题. [Java面试六]SpringMVC总结以及在面试中的一些问题. [Java面试七]Mybatis总结以及在面试中的一些问题. [Java面试八]Hibernate总结以及在面试中的一些问题. [Java面试九]脚本语言知识总结. [Java面试十]浏

java面试大汇总

java面试笔试题大汇总     第一,谈谈final, finally, finalize的区别. 最常被问到. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统). 第四,&和&&的区别. 这个问得很少. 第五,HashMap和Hashtable的区

java面试笔试题大汇总

java面试笔试题大汇总(一)JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),

【Java基础】Java面试题目整理与解说(二)

1.Collection 和 Collections 的差别. Collection 是集合类的上级接口,继承于他的接口主要有 Set 和 List. Collections 是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索.排序.线程安全化等操作. 2.HashMap 和 Hashtable 的差别. HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完毕了 Map 接口,HashMap是非线程安全,效率上可能高于 Hashtable.在多个线程

Java面试-数据库篇(二)

准备Java面试期间所见到的面试题和自己的整理归纳(仅供我个人学习使用的资料) 1. 主键 超键 候选键 外键 主    键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超    键: 在关系中能唯一标识元组的属性集称为关系模式的超键.一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键.超键包含候选键和主键. 候选键: 是最小超键,即没有冗余元素的超键. 外    键: 在一个表中存在

java复习汇总之面试篇

这些个人感觉都是基础,希望看的园友不要喷. 1.什么是servlet线程安全,如何解决? 2.spring事物管理,在项目中你是怎么管理事物的? 3.java中的有几种线程? 4.java有几种锁? 5.怎么理解java中的多态,项目中何时用到抽象类? 6.如何处理js,sql注入? 7.struts2拦截器的原理? 8.如何理解spring AOP? 11.java中常用的集合,在项目中用到时,有什么需要注意的? 12.如果优化项目中sql,为什么要那样优化? 13.java性能优化? 14.