Java面试题(Java Web篇)】的更多相关文章

Java面试题之基础篇概览 1.一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,且public的类名必须与文件名相一致. 2.Java有没有goto? Java中的保留字,现在未在Java中使用. 3.说说&和&&的区别? &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为fal…
设计模式 88.说一下你熟悉的设计模式? 自行熟悉. 89.简单工厂和抽象工厂有什么区别? 简单理解简单工厂:对 一个对象的创建进行封装.抽象工厂:对 一组对象的创建进行封装. 比如生产 陶瓷马 和 陶瓷牛简单工厂模式:   分别开发 陶瓷马 和 陶瓷牛 的摸具   在用这两种摸具生产 陶瓷马 和 陶瓷牛抽象工厂模式:   先开发一个摸具生产器   再用摸具生产器  开发 陶瓷马 和 陶瓷牛 的摸具   在用这两种摸具生产 陶瓷马 和 陶瓷牛 Spring/Spring MVC 90.为什么要使…
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. 这里有10个经典的Java面试题,也为大家列出了答案.这是Java开发人员面试经常容易遇到的问题,相信你了解和掌握之后一定会有所提高.让我们一起来看看吧. 1.Java的HashMap是如何工作的? HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值. HashMap 基于 hashing 原理,我们通过 p…
如背景中介绍,作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向. 在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编程(JUC 包) JVM 内存管理 Java 8 知识点 网络协议相关 数据库相关 MVC 框架相关 大数据相关 Linux 命令相关 面试,是大家从学校走向社会的第一步. 互联网公司的校园招聘,从形式上说,面试一般分为 2-3 轮技术面试 +1 轮 HR 面试. 但是一些公司…
加入我的QQ群(701974765) 获取更多好用又好玩的软件,还有不定期发放的福利呦(- ̄▽ ̄)- Spring的优点/对Spring的理解 Spring的AOP编程 Spring的IOC Spring的生命周期 Spring常见注解 @Repository(用于标注数据访问组件,即DAO组件).@Autowired(默认按类型装配).@Resource(默认按名称装配).@Controller.@Service.@RequestMapping.@PathVariable Spring中Bea…
Redis 179.redis 是什么?都有哪些使用场景? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis 使用场景: 数据高并发的读写 海量数据的读写 对扩展性要求高的数据 180.redis 有哪些功能? 数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列 181.redis 和 memecache 有什么区别? memcached所有的值均是简单的字符串,redis作为…
多线程 35.并行和并发有什么区别? 1.并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔发生. 2.并行是在不同实体上的多个事件,并发是在同一实体上的多个事件. 3.在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务.如hadoop分布式集群. 所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能. 36.线程和进程的区别? 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程…
容器 18.java 容器都有哪些? 如图:   首先分为Collection.Map: Collection下分为List.Set和Queue: List下分为ArrayList和LinkedList: Set下分为HashSet.LinkedHashSet和TreeSet: Queue下有PriorityQueue. Map下分为HashMap.LinkedHashMap.TreeMap.WeakHashMap: Collection代表的是单个元素对象的序列:Map代表的是“键值对”对象的…
1.JAVA多态的实现方式:继承.重载.覆盖 2.JAVA有8种基本数据类型:byte.short.int.long.float.double.boolean.char 3.final.finally.finalize的区别: final:修饰符,如果一个类被声明为final,则意味着它不能再派生出新的子类.一个类不能既声明为abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读…
1.什么是ORM?  对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术: 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(在Java中可以用XML或者是注解),将程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一种形式转换到另外一种形式. 2.Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(…
1.List和Set比较,各自的子类比较 对比一:ArrayList与LinkedList比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里连续存放). 2.因为地址连续,ArrayList执行插入和删除操作效率较低. 3.LinkedList是基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址,对于新增和删除操作add和remove,LinkedList比较占优势. 4.因为LinkedLis…
JVM 194.说一下 jvm 的主要组成部分?及其作用? 类加载器(ClassLoader) 运行时数据区(Runtime Data Area) 执行引擎(Execution Engine) 本地库接口(Native Interface) 组件的作用: 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此需要特定的命…
Hibernate 113.为什么要使用 hibernate? 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现.他很大程度的简化DAO层的编码工作 hibernate使用Java反射机制,而不是字节码增强程序来实现透明性. hibernate的性能非常好,因为它是个轻量级框架.映射的灵活性很出色.它支持各种关系数据库,从一对一到多对多的各种复杂关系. 114.什么是 ORM 框架? 对象-关…
异常 74.throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型 75.final.finally.finalize 有什么区别? final可以修饰类.变量.方法,修饰类表示该类不能被继承.修饰方法表示该方法不能被重写.修饰变量表示该变量是一个常量不能被重新赋值. finally一般作用在try-catch代码块中,在处理异常的时候,通…
反射 57.什么是反射? 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力 Java反射: 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类. 在运行时构造任意一个类的对象. 在运行时判断任意一个类所具有的成员变量和方法. 在运行时调用任意一个对象的方法. 得到类的字节码文件相同,这三种方式. 1.Class cls1=类名.class 相对简单…
1.redis支持五种数据结构类型?   2.redis内部结构?   3.redis持久化机制?   4.redis集群方案与实现?   5.redis为什么是单线程的?   6.redis常见回收策略?   7.缓存雪崩.缓存穿透.缓存预热.缓存更新.缓存降级   8.redis主节点宕机了,还有没有同步的数据如何处理?   9.redis过期策略是如何实现的?   10.redis集群宕机如何处理?数据怎么进行迁移?   11.redis有哪些高级特性?   12.redis的zSet跳跃…
1.BIO.AIO和NIO的概念及区别? 2.什么是长连接和短连接? 3.http1.0.http1.1和http2.0的区别? 4.https和http的区别?   5.https的工作原理?   6.http和tcp以及udp的区别?   7.tcp三次握手和四次挥手?为什么需要三次和四次? 8.http为什么是无连接和无状态的?   9.tcp为什么可靠? 10.数据链路层的作用?流量控制?   11.tcp三次握手数据丢失了怎么办?如果后面又找到了怎么办?   12.两个不同ip地址之间…
1.JVM运行时内存区域划分?   2.内存溢出OOM和堆栈溢出SOE的案例.原因.排查及解决?   3.常用的JVM性能监控工具?   4.JVM参数设置?   5.类加载过程?   6.JVM内存模型?   7.四大引用类型?区别?   8.JVM性能调优?   9.Minor GC和Full GC 分别在什么时候触发?   10.GC算法有哪些?各自特点?   11.GC收集器有哪些?各自特点?   12.内存泄漏的原因和排查?   13.rt.jar被什么类加载器加载?何时加载?   1…
MySql 164.数据库的三范式是什么? 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项. 第二范式:要求实体的属性完全依赖于主关键字.所谓完全依赖是指不能存在仅依赖主关键字一部分的属性. 第三范式:任何非主属性不依赖于其它非主属性. 165.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几? 数据库引擎如果是 MyISAM ,那 id 就是 8. 数据库引擎如果是 InnoDB,那 id 就是 6…
Kafka 152.kafka 可以脱离 zookeeper 单独使用吗?为什么? kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器. 153.kafka 有几种数据保留的策略? kafka 有两种数据保存策略: 1.按照过期时间保留. 2.按照存储的消息大小保留. 154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理? 这个时候 kafk…
RabbitMQ 135. rabbitmq 的使用场景有哪些? ①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列.就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式. ②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口.基于消息队列的耦合,不需要发送方和接收方同时在线.在企业应用集成(EAI)中,文件传输,共享数据库,消息队列,远程过程调用都可以作为集成的方法. ③. 应用内的同…
Mybatis 125.mybatis 中 #{}和 ${}的区别是什么? #{}是预编译处理,${}是字符串替换: Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值: Mybatis在处理${}时,就是把${}替换成变量的值: 使用#{}可以有效的防止SQL注入,提高系统安全性. 126.mybatis 有几种分页方式? 数组分页.sql分页.拦截器分页.RowBounds分页 127.RowBounds 是一次性查询全部结…
网络 79.http 响应码 301 和 302 代表的是什么?有什么区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移. 区别: 301 redirect: 301 代表永久性转移(Permanently Moved). 302 redirect: 302 代表暂时性转移(Temporarily Moved ). 80.forward 和 redirect 的区别? Forward和Redirect代表了两种请求转发方式:直接转发和间接转发. 直接转发方式(Forwa…
1. 如何实现乐观锁(CAS)?如何避免ABA问题? 答:1)读取内存值的方式实现了乐观锁(比如:SVN系统),方法:第一,比较内存值和期望值:第二,替换内存值为要替换值.        2)带参数版本来避免aba问题,在读取和替换的时候进行判定版本是否一致 2. 读写锁可以用于什么应用场景? 答: 读写锁可以用于 “多读少写” 的场景,读写锁支持多个读操作并发执行,写操作只能由一个线程来操作        ReadWriteLock对向数据结构相对不频繁地写入,但是有多个任务要经常读取这个数据…
实现代码很简单:   package com.xiaozan.shopping;   import java.util.Arrays;   public class ShoppingCart {          public final static int PRODUCT_1_PRICE = 2000;    // 产品编号第一个数字为1的单价,单位(分)     public final static int PRODUCT_2_PRICE = 1000;    // 其他产品编号的单价,…
1. 静态工厂方法 静态工厂方法不必在每次调用它们的时候都创建一个新的对象: Boolean.valueOf(boolean): public final class Boolean { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); public static Boolean valueOf(boolean b) { ret…
一.Java容器分类 Java容器划分为两个概念Collection.Map Collection: 一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序保存元素,不关心是否重复:Set不能有重复元素:Queue一端插入一端输出.所有的Collection都可以用foreach语法遍历 实现:List:ArrayList.LinkedList:   Set:HashSet.TreeSet.LinkedHashSet   Map:HashMap.TreeMap.Linked…
实现代码很简单:   package com.xiaozan.shopping;   import java.util.Arrays;   public class ShoppingCart {          public final static int PRODUCT_1_PRICE = 2000;    // 产品编号第一个数字为1的单价,单位(分)     public final static int PRODUCT_2_PRICE = 1000;    // 其他产品编号的单价,…
1. ArrayList 和 Vector 的区别 ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据 Vector是线程安全的,但是性能比ArrayList要低. ArrayList,Vector主要区别为以下几点: (1):Vector是线程安全的,源码中有很多的synchronized可以看出,而ArrayList不是.导致Vector效率无法和ArrayList相比:     (2):ArrayList和Vector都采用线性连续存储空间,当存储空间不足的时…
更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考,查看更多相关笔试题目 ,请访问笔试题目频道. 今天为大家整理的是2014最新Java笔试题集锦,大家如果觉得有用的话,就收藏了吧! 1.MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过…