| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Java---初级、中级工程师面试问题2 -> 正文阅读 |
|
[大数据]Java---初级、中级工程师面试问题2 |
问6:什么是跨域?跨域问题如何解决? 答:实际使用中,浏览器因为安全的考虑,所以设置了同源策略。同源策略简单理解就是NDS域名、端口号、协议完全相同就称为同源。同源下的页面之间才能进行js的dom操作,如果不在同一个源下任何跨文档dom的访问都是被阻止的。不同源下的访问,就称之为跨域访问。 解决跨域问题的方式有很多种: ①基于JavaScript标签的src方式 ?②基于JQuery的JSONP方式 ?③基于CORS的方式 JSONP的方式只能解决GET方式提交。CORS的方式解决更加完美。CORS是一个W3C标准,全称是跨域资源共享(corss-origin resource sharing)有图 问7:知道RPC吗?简单介绍下 答:Remote Procedure Call)远程过程调用,分布式的应用分成客户端和服务端,他们各自运行在自己的服务器中,客户端的controller调用服务端的service就是不在一个应用内调用,而是通过网络传输来调用。这种通过网络来使controller调用远程的service的技术叫RPC技术。RPC技术的底层原理就是对象的序列化、反序列化以及序列化后数据的传输,常见的使用RPC的框架有Dubbo、ZeroICE 问8:Dubbo搭建的分布式,注册中心使用的是Zookeeper,谈下对Zookeeper的理解 答:首先注册中心的作用主要是对服务进行集中管理,提高系统的可用性、可伸缩性、服务单服务的注册、客户端服务的调用。 Zookeeper是一个分布式的、开放源码的分布式应用程序协调服务,它是Hadoop和Hbase的重要组件。zookeeper 是有心跳机制的,判断服务端是否还在活跃中。注册中心每隔一段时间去请求服务端,如果有反应就保留该服务器的地址,如果没有,就删除该服务器在注册中心的地址。防止zookeeper注册服务中心也挂掉,不能总将注册地址放在内存中,所以zookeeper有一个配置文件,存放该注册中心内存中的内容,进行备份。 dataDir=/tmp/zookeeper 问9:redis用过吗?有哪些数据类型?解释下缓存穿透、缓存击穿、缓存雪崩,以及如何解决这些问题 答:redis的数据类型有string、hash、List、Set、sorted set 缓存穿透:应用访问缓存,假如数据存在,则直接返回数据,数据在redis不存在,则去访问数据库,数据库查询到了直接返回应用,同时把结果写回redis,数据在redis不存在,数据库也不存在,返回空,一般来说空值是不会写入redis的,如果反复请求同一条数据,那么则会发生缓存穿透,解决方案是可以为这个key设置一个空值,同时写入redis,下次请求的时候就不会访问数据库,但是如果每次请求的是不同的key,同时这个key在数据库中也是不存在的,那这样依然会发生缓存穿透。因此引入了布隆过滤器:先判断key值是否存在,如果不存在,则不访问redis,那这样就可以拦截大量的请求,布隆过滤器恰好可以实现这样的需求。 缓存击穿:缓存击穿是指一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个完好无损的桶上凿开了一个洞。 缓存雪崩:大量的key同时到期的时候容易发生。两种情况:①零点直接雪崩? ②时间性无关联 ?最终解决方案的大方向:熔断、限流、隔离 临时的小方案:不同的key设置不同的超时时间 问10:简述下Java中线程的生命周期中存在哪些状态? 答:①NEW 新建 ???通常继承Thread类 或 实现Runnable接口 或 实现Callable接口 ?推荐第二种方式实现多线程。前两种无法直接获取结果,需要借助于共享变量等获取,而Callable可以解决这个问题 ②RUNNABLE就绪状态 ?调用start()方法之后,执行之前的状态,线程的start()不能被多次调用,否则会抛出IllegalStateException异常 ③RUNNING运行状态 ?run()正在执行时线程的状态 ④BLOCKED阻塞状态 ⑤DEAD终止状态 ?run()方法执行结束或异常退出后的状态,此状态不可逆转 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 18:22:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |