![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java面试题集锦-1
每题一博详细整理
奋斗的小媛
这个作者很懒,什么都没留下…
展开
-
消息队列
一、消息队列的使用场景☞ 以下介绍消息队列在实际应用常用的使用场景。异步处理、应用解耦、流量削锋和消息通讯四个场景。【1】异步处理:场景说明:用户注册后,需要发注册邮件和注册短信。引入消息队列后架构如下:用户的响应时间=注册信息写入数据库的时间,例如50毫秒。发注册邮箱、发注册短信写入消息队列后,直接返回客户端,因写入消息队列的速度很快,基本可以忽略,因此用户的响应时间可能是50毫秒。按照传统的做法①、串行方式,将注册信息写入数据库成功后,发注册邮件,再发送注册短信,以上三个成功后,返回客户端。可.原创 2020-07-08 23:38:04 · 370 阅读 · 0 评论 -
Java面试——微服务
一、什么是微服务就目前而言,对于微服务业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择原创 2020-07-08 23:33:11 · 204 阅读 · 0 评论 -
Java面试——缓存
一、什么是缓存【1】缓存就是数据交换的缓冲区(称作:Cache),当某一硬件要读取数据时,会首先从缓存汇总查询数据,有则直接执行,不存在时从内存中获取。由于缓存的数据比内存快的多,所以缓存的作用就是帮助硬件更快的运行。【2】缓存往往使用的是RAM(断电既掉的非永久存储),所以在用完后还是会把文件送到硬盘等存储器中永久存储。电脑中最大缓存就是内存条,硬盘上也有16M或者32M的缓存。【3】高速缓存是用来协调CPU与主存之间存取速度的差异而设置的。一般CPU工作速度高,但内存的工作速度相对较低,为了解决这原创 2020-07-08 23:31:56 · 512 阅读 · 0 评论 -
消息中间件的优缺点
原创 2020-06-03 23:31:40 · 232 阅读 · 0 评论 -
JVM老年代和新生代的比例
Java中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存模型大致...转载 2020-03-05 15:21:15 · 1275 阅读 · 0 评论 -
Java面试---数据库
一、数据库隔离级别有哪些,各自的含义是什么,MYSQL默认的隔离级别是是什么【1】Read Uncommitted(读取未提交内容):出现脏读,也就是可能读取到其他会话中未提交事务修改的数据。【2】Read Committed(读取已提交内容):不可重复读,只能读取到已经提交的数据。Oracle 等数据库默认的隔离级别。【3】Repeatable Read(可重复读):出现幻读。在同一个事...原创 2020-03-04 22:16:18 · 266 阅读 · 0 评论 -
Java面试---SQL语句题
一、行转列问题现有表格A,按照以下格式排列;姓名 收入类型 收入金额 Tom 年奖金 5w Tom 月工资 10k Jack 年奖金 8w Jack 月工资 12k 先需要将表格转化为:姓名 月工资 年奖金 Tom 10k 50k Jack 12k 80k ...原创 2020-03-03 17:03:41 · 432 阅读 · 0 评论 -
Java面试---Redis
一、什么是 RedisRedis(Remote Dictionary Server 远程字典服务) 本质上是一个 Key-Value 类型的内存数据库,和 Memcached类似,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)等数据结构。这些数据类型都支持push/pop、add/remove及取交集并集和差集及...原创 2020-02-18 21:03:51 · 155 阅读 · 0 评论 -
Java面试---JAVA基础
一、JAVA中的几种基本数据类型是什么,各自占用多少字节。Java语言中一共提供了8种原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,而是 Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就会立刻在栈上被分配内存空间。除了这8种基本的数据类型外,其他类型都是引用类型(例如类、接口、数组等),引...原创 2020-02-18 10:33:54 · 323 阅读 · 0 评论 -
华为java笔试面试题2014
华为Java 笔试题+数据库题123一、 单项选择题1.Java 是从(B )语言改进重新设计。A.Ada B.C++ C.Pasacal D.BASIC 答案:B2.下列语句哪一个正确(B )A.Java 程序经编译后会产生machine code B.Java 程序经编译后会产生byte code C.Java 程序经编译后会产生DLL D. 以上都不...原创 2019-07-31 13:54:29 · 301 阅读 · 0 评论 -
喜马拉雅2018 Java面试题目
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/yuchao2015/article/details/80409195以下为同学喜马拉雅面试题目,回忆起来的就这么多.java基础1:hashTable hashMap ConcurrentHashMap 的区别、数据结构、线程安...转载 2019-10-28 21:46:11 · 366 阅读 · 0 评论 -
喜马拉雅面试题总结
喜马拉雅面试题总结1. cateogory 和 继承的区别 以及category 是干啥用的 是什么。2. KVC KVO 使用场景以及是什么。3. IOS 系统SDK 中使用到的设计模式4. LINK LIST 创建代码 以及 反转LINKED LIST5. 设计一个音频播放带 前进后退开始暂停的 SDK 需要详细设计6. DELEGATE 和NOTIFICATION 区别7. ...转载 2019-10-28 21:48:12 · 1552 阅读 · 0 评论 -
喜马拉雅面经
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_38028611/article/details/99358859前言2019年3月14号周四中午大概12点我正在吃中饭,收到喜马拉雅HR电话,通知问我有没有兴趣面试他们的Java开发工程师。(ps:我没主动投过,我也不知...转载 2019-10-28 21:49:57 · 284 阅读 · 0 评论 -
JVM内存结构和GC垃圾回收算法
一、JVM体系结构概览Java8以后的JVMGC的作用域二、常见的垃圾回收算法(1)引用计数算法(Reference-Counting)(JVM的实现一般不采用这种方式)引用计数算法缺点:每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗;较难处理循环引用。(2)复制...原创 2020-03-10 16:23:52 · 184 阅读 · 0 评论 -
线程池7大参数详解及底层工作原理
线程池做的主要工作就是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果运行线程数量超出了最大线程数量,超出部分需要排队等候,等待其他线程执行完毕,然后线程再从队列中取出任务执行。线程池的主要特点线程复用; 控制最大并发数; 管理线程;优势降低资源的消耗。通过重复利用已经创建的线程降低线程创建和销毁造成的消耗 提高响应速度。当任务到...原创 2020-03-09 14:38:47 · 2068 阅读 · 0 评论 -
四种创建多线程的方式
1.四种创建多线程的方式第一种:继承Thread类第二种:实现Runnable接口第三种:Callable接口第四种:线程池 call()方法比run()方法更加强大 1.call()方法可以有返回值 2.call()方法可以声明抛出异常import com.jikang.MyApplication;import org.junit.runner.Run...原创 2020-03-02 15:18:23 · 134 阅读 · 0 评论 -
CAS底层原理及缺点
CAS是Comple And Swap的缩写(比较并交换)//比较并交换AtomicInteger atomicInteger =new AtomicInteger(5);atomicInteger.compareAndSet(5,2019);原创 2020-03-01 16:37:49 · 265 阅读 · 0 评论 -
单例模式在多线程环境下可能存在安全问题
单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。1. 单线程下的单例模式1. 单线程下单例模式代码public class SingletonDemo { private static SingletonDemo instance = null; private SingletonDemo(){ ...原创 2020-02-27 23:57:55 · 1955 阅读 · 0 评论 -
GC之如何选择垃圾回收器
组合的选择单CPU或小内存,单机程序-XX:+UseSerialGC多CPU,需要最大吞吐量,如后台计算型应用(串型收集器)-XX:+UseParalellGC 或者-XX:+UseParalellOldGC(互相关联激活)多CPU,追求低停顿时间,需快速响应如互联网应用(并行收集器)-XX:+UseParNewGC或者-XX:+UseConcMarkSweepGC新生代与老年代收...原创 2020-02-13 19:46:29 · 697 阅读 · 0 评论 -
什么是AJAX?
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用:使用XHTML+CSS来标准化呈现;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest对象与Web服务器进行异步数据通信;使用Javascript操作Document Object Model进行动...原创 2020-02-13 13:43:16 · 206 阅读 · 0 评论 -
finally块中的代码一定会执行吗?
JVM正常运行的情况下,finally块一定会执行。 E: public static void main(String[] args) { try { System.out.println("how's the weather today?"); System.exit(0); } catch (Exce...原创 2020-02-13 11:22:19 · 180 阅读 · 0 评论 -
强引用 、软引用、 弱引用、虚引用分别是什么
强引用:基本是用到的95%都是强引用当内存不足 jvm开始垃圾回收 对于强引用的对象 就算是出现oom也不会对该对象进行回收 死也不收在java中最常见的就是强引用 把一个对象赋给一个引用变量 这个引用变量就是强引用 当一个对象被强引用变量引用的时 他处于不可达状态 他是不可能被垃圾回收的 这也是强引用造成内存泄漏的主要原因之一对于一个普通的对象 如果没有其他的引用关系 只要超过引...原创 2020-01-04 14:57:04 · 191 阅读 · 0 评论 -
HashMap的扩容过程
1.如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?默认的负载因子大小为0.75,也就是说,当一个map填满了75%的bucket时候,和其它集合类(如ArrayList等)一样,将会创建原来HashMap大小的两倍的bucket数组,来重新调整map的大小,并将原来的对象放入新的bucket数组中。这个过程叫作rehashing,因为它调用hash方法找...原创 2019-12-14 16:16:12 · 573 阅读 · 0 评论 -
HashSet 是如何保证不重复的
HashSet类实现了Set接口, 其底层其实是包装了一个HashMap去实现。HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能。下面我们来看一下源码:下面是HashSet的几个构造方法 可以看得出HashSet的底层其实是HashMap存储的 通俗来说HashSet就是HashMap的马甲: // 默认构造函数 底层创建一个HashMa...原创 2019-12-14 10:09:46 · 377 阅读 · 0 评论