Java面试
专注Java面试整理
Java
展开
-
Java面试之数组(详细)
1、什么是数组?数组(Array)是一种线性表数据结构,它用一组连续的内存空间,来存储相同类型的数据。2 、什么是线性表(LinearList)?线性表就是数据排成一条线一样的结构,每个线性表的数据最多只有前后两个方向。例如:数组,链表,队列,栈等都是线性表结构。3、 什么是非线性表?例如:二叉树,堆,图,等,是非线性表,是因为,在非线性表中,数据之间并不是...原创 2019-04-17 17:14:25 · 4069 阅读 · 0 评论 -
Java高级开发Spring面试
1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring...原创 2019-01-16 17:04:35 · 1894 阅读 · 1 评论 -
Java面试之异常专题
1、下面关于java.lang.Exception类的说法正确的是()A 继承自Throwable B Serialable CD 不记得,反正不正确答案:A解析:Java异常的基类为java.lang.Throwable,java.lang.Error和java.lang.Exception继承 Throwable,RuntimeException和其它的Exce...原创 2019-01-21 17:14:01 · 404 阅读 · 0 评论 -
Java面试之泛型专题
1、在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率 http://baike.baidu.com/item/java%E6%B3%9B%E5%9E%8B 2、Java中的泛型是什么 ? 使用泛型的好处是什么?...原创 2019-01-21 16:29:09 · 678 阅读 · 0 评论 -
Java面试之IO专题
1、下面哪个流类属于面向字符的输入流( )A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader 答案:D,解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。面向字节的操作为以8位为单...原创 2019-01-21 16:11:50 · 1215 阅读 · 0 评论 -
Java面试之集合专题(下)
1、哪一个List实现了最快插入?LinkedList和ArrayList是另个不同变量列表的实现。ArrayList的优势在于动态的增长数组,非常适合初始时总长度未知的情况下使用。LinkedList的优势在于在中间位置插入和删除操作,速度是最快的。LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在Link...原创 2019-01-21 14:52:18 · 259 阅读 · 0 评论 -
Java面试之集合专题(上)
1、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。 2、层次关系Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。Lis...原创 2019-01-21 14:50:49 · 293 阅读 · 0 评论 -
几次面试中被问到关于Dubbo的问题
1、注册中心集群都挂掉,发布者和订阅者之间还能通信吗? 可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用,但是,如果服务提供则宕机,消费者变无法知道。那么集群中,任意一台宕掉后,默认会自动切换到另一台 。集群下服务提供者无状态,任一台 宕机后,不影响使用 。服务提供者全部宕机,服务消费者会无法使用,并按集群容错规则,重...原创 2019-01-15 16:54:53 · 1948 阅读 · 0 评论 -
防止表单重复提交
方案有两种:前端JS控制 后台Java代码控制实现如下一、前台防止重复提交通过JS方法使表单提交后按钮变为disabled,用户则无法继续点击。二.后台防止重复提交前端每次提交时候都携带时间或者随机数,后台每次接到请求都将值存入session中,每次获取出来与上一次比较,如果一致则拦截。 ...原创 2019-01-09 18:10:49 · 146 阅读 · 0 评论 -
Dubbo集群容错
启动多个相同的服务提供者,则为集群1、Failover Cluster(默认)调用dubbo方法时,失败自动切换,当出现失败,重试同一服务下的其它服务器 。通常用于读操作,但重试会带来更长延迟。可通过 retries="2"来设置重试次数(不含第一次)。重试次数配置如下:<dubbo:service retries="2" /><dubbo:reference...原创 2019-01-14 18:22:43 · 432 阅读 · 0 评论 -
Dubbo注册中心
1)Multicast 注册中心Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。提供方启动时广播自己的地址 消费方启动时广播订阅请求 提供方收到订阅请求时,单播自己的地址给订阅者,如果设置了 unicast=false,则广播给订阅者 消费方收到提供方地址时,连接该地址进行 RPC 调用。组播受网络结构限制,只适合小规模应用或开发阶段使用。组播...原创 2019-01-14 18:21:46 · 228 阅读 · 0 评论 -
Dubbo通讯协议
1、Dubbo通讯协议第一、dubbo(默认)Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。反之,Dubbo 缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。缺省协议,使用基于 netty 和 hessian 3.2.1 的 tbremoting 交互。连接个数:单连...原创 2019-01-14 18:20:24 · 5778 阅读 · 0 评论 -
Dubbo客户端原理
服务请求的基本原理1、client一个线程调用远程接口,生成一个唯一的ID,Dubbo是使用AtomicLong从0开始累计数字。2、将打包的方法调用信息和处理结果的回调对象callback,全部封装在一起,组成一个对象。3、向全局ConcurrentHashMap里面put(ID, object)。4、将ID和打包的方法调用信息封装成一对象connRequest,使用IoSess...原创 2019-01-14 18:17:30 · 296 阅读 · 0 评论 -
Java高级开发Spring面试之Aop
1、什么是aop,aop的作用是什么?面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管...原创 2019-01-16 17:05:41 · 518 阅读 · 0 评论 -
Java高级开发Spring面试之事务
1、Spring 事务的传播属性。七种传播属性。 所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量: TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事...原创 2019-01-16 17:08:04 · 429 阅读 · 0 评论 -
深圳某第三方支付公司(有支付牌照)Java面试
技术面一:1、case、decode用法考察2、dubbo的容错机制3、ActivMQ用法考察4、spring事物、JDBC事物、编程事物5、IOC、AOP是什么6、你的支付项目违规吗7、Redis作用8、SSL(https)流程说下9、结算流程是怎样的?10、js插件怎么写?11、JS闭包是什么?12、用什么开发工具?idea快捷键找到一个接口的实...原创 2019-03-28 17:36:00 · 3131 阅读 · 0 评论 -
Java顺序执行多个线程的9种方式
比如有线程A和B,在A执行完成后B再开始执行1、在线程A run方法最后启动线程B。2、共享一个volatile boolean类型的标识变量,B一直检查该变量的值,而A则在执行完成后改变A的值。3、使用中断机制,B一直检查Thread.currentThread().isInterrupted(),而A则在执行完成过后中断BthreadB.interrupt()。4、使用Ob...原创 2019-03-12 10:55:07 · 484 阅读 · 0 评论 -
Java常见异常(面试)
运行时异常算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCastException数组负下标异常:NegativeArrayException数组下标越界异常:ArrayIndexOutOfBoundsException违背安全原则异常:SecturityException字符串转换为...原创 2019-03-11 16:51:35 · 598 阅读 · 0 评论 -
Java高级程序员——面试综合练习五
Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载...原创 2019-03-14 16:55:58 · 2336 阅读 · 0 评论 -
Java高级程序员——面试综合练习四
Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载...原创 2019-03-14 16:55:16 · 2075 阅读 · 0 评论 -
Java高级程序员——面试综合练习三
Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载...原创 2019-03-14 16:54:33 · 2114 阅读 · 0 评论 -
Java高级程序员——面试综合练习二
Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载...原创 2019-03-14 16:53:54 · 332 阅读 · 0 评论 -
Java高级程序员——面试综合练习一
Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载...原创 2019-03-14 16:49:57 · 880 阅读 · 0 评论 -
Java面试之加密算法
1、Java中常用的加密算法散列算法MD5 SHA对称加密DES 3DES AES非对称加密RSA ECC2、什么是base64Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法,不属于加密算法,只是是编码方式。...原创 2019-01-29 16:38:31 · 2198 阅读 · 0 评论 -
分布式一致性理论CAP+BASE
一致性一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。同时,一致性也是指事务的基本特征或特性相同,其他特性或特征相类似 。一致性又可以分为强一致性与弱一致性 。1.强一致性强一致性可以理解为在任意时刻,所有节点中的数据是一样的。同一时间点,你在节点A中获取到key1的值与在节点B中获取到key1的值应该都是一样的。2.弱一致性弱一致性包含很...原创 2019-01-29 16:32:12 · 462 阅读 · 0 评论 -
Java面试专题之网络编程
1、BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。 伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。 NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 AIO:一个有效请求一个线程,客户端的I/O请求都是由OS先完...原创 2019-01-22 15:45:15 · 415 阅读 · 0 评论 -
Java面试之枚举专题
1、枚举的作用和好处JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 public enum Color { RED, GRE...原创 2019-01-22 14:59:12 · 2904 阅读 · 0 评论 -
Java高级开发Spring面试之事件
Spring 中的所有哪些不同类型的事件?Spring的ApplicationContext提供了支持事务和代码中添加监听器的功能。 可以创建一个bean其实现ApplicationListener接口(类型是ApplicationEvent),当一个ApplicationEvent 被发布后,bean就自动被通知,并且在方法onApplicationEvent(…)方法中处理该事件。...原创 2019-01-16 17:18:11 · 279 阅读 · 0 评论 -
Java高级开发Spring面试之Spring中的设计模式
Spring 框架中都用到了哪些设计模式?代理模式:在AOP中被用的比较多。单例模式:在spring配置文件中定义的bean默认为单例模式。模板方法:用来解决代码重复的问题。 JmsTemplate, JpaTemplate。前端控制器:Spring提供了DispatcherServlet来对请求进行分发。依赖注入:贯穿于BeanFactory / ApplicationCon...原创 2019-01-16 17:14:34 · 921 阅读 · 0 评论 -
Java高级开发Spring面试之MVC
1、简述SpringMVC的工作流程1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet调用HandlerAdap...原创 2019-01-16 17:13:16 · 273 阅读 · 0 评论 -
Java多线程面试专题五(共5篇)
1、什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?原子操作是指一个不受其他操作影响的操作任务单元。原子操作是在多线程环境下避免数据不一致必须的手段。int++并不是一个原子操作,所以当一个线程读取它的值并加1时,另外一个线程有可能会读到之前的值,这就会引发错误。为了解决这个问题,必须保证增加操作是原子的,在JDK1.5之...原创 2019-01-24 15:09:44 · 259 阅读 · 0 评论 -
Java多线程面试专题四(共5篇)
必问:有三个线程T1,T2,T3,怎么确保它们按顺序执行? 在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。参考同步文件夹 1、方法m1和m2有区别吗?public class Test ...原创 2019-01-24 15:09:06 · 371 阅读 · 0 评论 -
Java面试之http知识点(必问)
详细介绍httpHTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。点击这里了解 http 1.0 vs 2.0 区别。在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端...原创 2019-01-07 10:56:30 · 91804 阅读 · 28 评论 -
Java面试之TCP与UDP
1、为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设法的用电线把电脑连接到了一起。但是简单的连到一起是远远不够的,就...原创 2019-01-07 10:56:39 · 1207 阅读 · 9 评论 -
数据库约束相关面试题
1、约束有哪几种 五种主键约束外键约束唯一约束检查约束非空约束 2、完整性约束包括哪些?数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。分为以下四类:1) 实体完整性:规定表的每一行在表中是惟一的实体。2) 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等...原创 2019-01-05 10:52:15 · 378 阅读 · 0 评论 -
数据库优化相关面试题
1、如何设计一个高并发的系统数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 使用缓存,尽量减少数据库 IO 分布式数据库、分布式缓存 服务器的负载均衡 2、实践中如何优化MySQL四条从效果上第一条影响最大,后面越来越小。SQL语句及索引的优化 数据库表结构的优化 系统配置的优化 硬件的优化 3、锁的优化策略读写分离 分段加锁 减少锁持...原创 2019-01-05 10:51:07 · 22069 阅读 · 4 评论 -
数据库索引相关面试题
1、索引的底层实现原理和优化B+树,经过优化的B+树,主要是在所有的叶子结点中增加了指向下一个叶子节点的指针,因此InnoDB建议为大部分表使用默认自增的主键作为主索引。 3、什么情况下设置了索引但无法使用 以“%”开头的LIKE语句,模糊匹配 OR语句前后没有同时使用索引 数据类型出现隐式转化(如varchar不加单引号的话可能会自动转换为int型) 4、简单描述mys...原创 2019-01-05 10:50:18 · 49948 阅读 · 0 评论 -
数据库数据类型相关面试题
1、char和varchar的区别?CHAR和VARCHAR类型在存储和检索方面有所不同CHAR列长度固定为创建表时声明的长度,长度值范围是1到255当CHAR值被存储时,它们被用空格填充到特定长度,检索CHAR值时需删除尾随空格。char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长...原创 2019-01-05 10:49:24 · 393 阅读 · 2 评论 -
数据库事务相关面试题
1、数据库中的事务是什么?事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。ACID 四大特性,原子性、隔离性、一致性、持久性。事务特性:(1)原子性:即不可分割性,...原创 2019-01-05 10:48:33 · 2383 阅读 · 0 评论 -
数据集函数面试题
1、对字符串操作的函数?ASCII() –函数返回字符表达式最左端字符的ASCII 码值CHR() –函数用于将ASCII 码转换为字符,如果没有输入0 ~ 255 之间的ASCII 码值CHR 函数会返回一个NULL 值,应该是必须给chr()赋数字值concat(str,str)连接两个字符串LOWER() –函数把字符串全部转换为小写UPPER() –函数把字符串全部转换...原创 2019-01-05 10:47:29 · 151 阅读 · 0 评论