大剑无锋
冲呀!
乔治大哥
脚踏实地,仰望星空。
展开
-
大剑无锋之Java的深浅拷贝解释一下!
拷贝的一个经典的使用场景:当前对象要传给其他多个方法使用,如果该对象在某一个方法中被修改,那么这个修改会影响到其他方法。 如果要避免这种影响,就需要给每一个方法都传入一个当前对象的拷贝。深与浅拷贝的区别就在于对复杂对象的处理:对于基本类型,浅拷贝、深拷贝都是拷贝的值;对于引用类型浅拷贝的是对象的引用。而深拷贝则是直接新建一个对象实例。注意浅拷贝中的复杂引用以及简单引用:对于简单引用,拷贝后的对象指向新的地址不会影响到原对象。复杂引用,拷贝后的对象将内部的对象指向新的地址,会影响到原对象对应的内部对象原创 2020-06-14 22:48:35 · 299 阅读 · 0 评论 -
大剑无锋之SpringBoot和Spring的区别
SpringBoot和Spring的区别其实这个问题,在我看来,其关键就是要对SpringBoot相对于Spring的特点阐述:1.快速整合第三方依赖:maven子父依赖关系。springboot 通过引用spring-boot-starter-web依赖,整合SpingMVC框架。只需要引用一个jar包,就可以通过Maven继承的方式引用到Spring-aop,Spring-beans,...原创 2020-04-20 10:03:41 · 629 阅读 · 0 评论 -
大剑无锋之ZooKeeper 面试题【灵魂28问,面试无压力】
前言ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper 面试题1. ZooKeeper 是什么?2. ZooKeeper 提...原创 2020-01-21 21:47:24 · 516 阅读 · 0 评论 -
大剑无锋之不都说面试不问mybatis,为什么我被虐了。。。【mybatis面试题】
1、#{}和${}的区别是什么?答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数...原创 2020-01-16 21:10:56 · 421 阅读 · 0 评论 -
大剑无锋之Zookeeper面试题
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的zooke...原创 2020-01-13 20:17:30 · 444 阅读 · 0 评论 -
大剑无锋之面试问到了Kafka???【面试推荐】
kafka 面试题1、如何获取 topic 主题的列表2、生产者和消费者的命令行是什么?3、consumer 是推还是拉?4、讲讲 kafka 维护消费状态跟踪的方法5、讲一下主从同步6、为什么需要消息系统,mysql 不能满足需求吗?7、Zookeeper 对于 Kafka 的作用是什么?8、数据传输的事务定义有哪三种?9、Kafka 判断一个节点是否还活着有...原创 2019-12-28 21:18:38 · 171 阅读 · 0 评论 -
大剑无锋之简单介绍一下虚拟内存【面试推荐】
内存是程序得以运行的基础,如何在有限的内存空间中运行较大的应用程序,曾经是一个难题,为了解决这个问题设计了许多方案,其中最成功的当属虚拟内存技术。虚拟内存技术可以让系统看上去具有比实际物理内存大得多的内存空间并为实现多道程序的执行创造了条件。现代操作系统提供了一种对主存的抽象能力叫做虚拟内存,虚拟内存为每个进程提供了一个非常大的、一致的、私有的地址空间。虚拟内存提供了三个关键能力...原创 2019-12-18 21:01:11 · 429 阅读 · 0 评论 -
大剑无锋之已知后续遍历bfegcda,中序badefcg,前序是?【面试推荐】
先补充一下二叉树的三种遍历的定义:前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树 。中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回,否则:(1)中序遍历左子树(2...原创 2019-12-16 15:11:45 · 1738 阅读 · 3 评论 -
大剑无锋之ArrayList中使用增强for循环能删除元素吗?【面试推荐】
好久没写java代码,前几天面试被问到不少java的问题,其中一个接下来要说的。先看几段代码。第一段(集合中两个元素,判断条件是第一个元素) ArrayList<String> list = new ArrayList<String>(); list.add("george"); list.add("georged...原创 2019-12-13 10:13:19 · 571 阅读 · 0 评论 -
大剑无锋之mysql列转行【面试推荐】
还是一句sql转化!!!原始表:结果表:还没想好怎么写。。。总体来说:在第一题中https://blog.csdn.net/qq_41946557/article/details/103498762。第二题就是我上面所说的,我想不出来,不过使用hive的sql可以进行操作。select sc.name, split(sc.course_grade, ':'...原创 2019-12-11 20:33:55 · 241 阅读 · 0 评论 -
大剑无锋之mysql中的行转列如何写?【面试推荐】
乍一看,这样的题写过的。像SparkSQL读取hive中的数据,行转列的两种方式【行转列专用函数,UDAF】https://blog.csdn.net/qq_41946557/article/details/103457590Hive _偏门常用查询函数(一)附带实例(空字段赋值、CASE WHEN、行转列)https://blog.csdn.net/qq_41946557...原创 2019-12-11 20:17:19 · 298 阅读 · 0 评论 -
大剑无锋之一句话输出表中每一个同学的成绩最高的课程【面试推荐】
请看题:一句话输出表中每一个同学的成绩最高的课程,要求输出包含:name,course,grade第一种写法:select s.name,s.course,s.grade from (select name,course,grade from `student-course` order by grade desc) sgroup by s.name第二种写法:se...原创 2019-12-11 19:42:25 · 241 阅读 · 0 评论 -
大剑无锋之拦截器和过滤器的区别【面试推荐】
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。 ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。 ⑥...原创 2019-12-11 14:19:58 · 2006 阅读 · 0 评论 -
大剑无锋之你了解HTTPS吗?那么它为什么安全?【面试推荐】
在面试中,我们经常遇到像HTTP方面的知识。比如:大剑无锋之HTTP连接https://blog.csdn.net/qq_41946557/article/details/101155935大剑无锋之TCP和HTTP的区别【面试推荐】https://blog.csdn.net/qq_41946557/article/details/103394473大剑无锋是我写的一个面试专栏。有兴...原创 2019-12-10 21:10:10 · 207 阅读 · 0 评论 -
大剑无锋之什么是值传递和引用传递?【面试推荐】
值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。一般认为,java内的基础类型数据传递都是值传递. java中实例对象的传递是引用传递...原创 2019-12-10 20:50:36 · 140 阅读 · 0 评论 -
大剑无锋之flume面试题【面试推荐】
1 你是如何实现Flume数据传输的监控的使用第三方框架Ganglia实时监控Flume。2 Flume的Source,Sink,Channel的作用?你们Source是什么类型?1、作用(1)Source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence...原创 2019-12-09 19:10:02 · 231 阅读 · 0 评论 -
大剑无锋之什么是死锁?【面试推荐】
什么是线程死锁?如何避免死锁?1. 认识线程死锁多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态。线程死锁示意图下面通过一个例子来说明线程死锁,代码模拟了上图的死锁的情况 (代码来源于...原创 2019-12-08 21:06:49 · 194 阅读 · 0 评论 -
大剑无锋之简单说一下聚簇索引和非聚簇索引?【面试推荐】
聚簇索引:包含主键索引和对应的实际数据,索引的叶子节点就是数据节点,也就是说找到了索引也就找到了数据。 非聚簇索引(辅助索引):将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,myisam通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中...原创 2019-12-08 21:01:07 · 459 阅读 · 0 评论 -
大剑无锋之SQL求用户最近的登录时间【面试推荐】
表数据:输出结果:请用一条sql展示出来。解题思路:我们先用分组name看结果:select * from employees_plus group by name结果:发现展示的是以name分组后的第一条记录,所以讲最近日期放在每组的第一条不就行了。答案:【注:并不是唯一答案。】select * from (select * from emp...原创 2019-12-05 21:54:05 · 252 阅读 · 1 评论 -
大剑无锋之DQL、DML、DDL、DCL,简单举个例子【面试推荐】
SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。 query Manipulation define controlleDQL:(基...原创 2019-12-05 21:44:03 · 196 阅读 · 0 评论 -
大剑无锋之内存泄漏是什么?【面试推荐】
百度词条给出的解释:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。理解点说☞:一些对象有着有限的声明周期,当这些对象所要做的事情完成了,我们希望它们会被垃圾回收器回收掉。但是如果有一系列对这个对象的引用存在,那么在我们期待这个对象生命周期结束时被垃圾回收器回收的时候,...原创 2019-12-05 21:34:21 · 215 阅读 · 0 评论 -
大剑无锋之linux如何查看系统开启了那些端口【面试推荐】
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。-a或--all:显示所有连线中的Socket;-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;-c或--continuous:持续列出网络状态;-C或--cache:显示路由器配置的快取信息;-e或--extend:显示网络其他相关信息;...原创 2019-12-05 21:20:31 · 190 阅读 · 0 评论 -
大剑无锋之素数【面试推荐】
先来看一下他的概念:素数又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。package com.test;/** * @author George * @description * 输出73-216之间的素数 **/public class SuNum { public static void main(String[] args) {...原创 2019-12-05 20:58:14 · 167 阅读 · 0 评论 -
大剑无锋之了解什么是CAP吗?【面试推荐】
什么是CAP?【这里可不是帽子】CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。百度词条的解释,说道最多只能同时实现两点,昨天面试一家很好地公司,面试官说到,满足三种也是可以的,只是比较困难。...原创 2019-12-05 19:40:27 · 225 阅读 · 0 评论 -
大剑无锋之分布式和微服务分别是什么?【面试推荐】
提出一个技术,大多都是为了解决某一难题。分布式:分布式的提出是:是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式:水平扩展:当一台机器扛不住流量时,就通过添...原创 2019-12-05 13:58:26 · 194 阅读 · 0 评论 -
大剑无锋之如何评判一个算法的优劣【面试推荐】
①时间复杂度:同样的输入规模(问题规模)花费多少时间②空间复杂度:同样的输入规模花费多少空间(主要是内存)以上两点越小越好③稳定性(健壮性):不会因为输入的不同而导致不稳定的情况发生④算法思路是否简单(可读性):越简单越容易实现越好补充:同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从...原创 2019-12-05 10:27:14 · 590 阅读 · 0 评论 -
大剑无锋之后台运行程序并输出日志到某文件【面试推荐】
第一种: # ./pso > pso.file 2>&1 & 解释:将pso直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看pso.file文件就可看执行结果(命令:#cat pso.file)。第二种:# nohup ./pso > pso.file 2&g...原创 2019-12-04 21:57:05 · 154 阅读 · 0 评论 -
大剑无锋之你所知道的列式数据库有哪些?列式数据库的好处在哪?【面试推荐】
列式数据库有哪些?GBase 8a、Hbase什么是列式数据库?列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于大批量的数据处理,常用于联机事务型数据处理。【其他的话语可以结合hbase进行说明,比如hbase的存储量、hbase的毫秒级响应】列式数据库的优缺点:...原创 2019-12-04 21:50:39 · 1039 阅读 · 0 评论 -
大剑无锋之介绍几个常见的网络协议且位于哪一层?【面试推荐】
先补充一下,什么是网络协议?网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议的三大要素:1、语义语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。2、语法语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。3、时序时序是对事件发生顺序的详细说明。网络协议的层次结构:1、...原创 2019-12-04 21:41:29 · 410 阅读 · 0 评论 -
大剑无锋之TCP和UDP区别【面试推荐】
TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主...原创 2019-12-04 21:36:47 · 143 阅读 · 0 评论 -
大剑无锋之数据库的范式【面试推荐】
数据库设计范式:什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,...原创 2019-12-04 21:32:13 · 203 阅读 · 0 评论 -
大剑无锋之TCP和HTTP的区别【面试推荐】
1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;...原创 2019-12-04 21:13:31 · 147 阅读 · 0 评论 -
大剑无锋之delete、drop、truncate【面试推荐】
一、delete1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。2、delete可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。3...原创 2019-12-04 21:00:54 · 183 阅读 · 0 评论 -
大剑无锋之Spark中的Driver是什么?【面试推荐】
Spark中的Driver即运行Application的Main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。通常SparkCo...原创 2019-12-03 21:58:14 · 768 阅读 · 0 评论 -
大剑无锋之Kafka的Patition的作用【面试推荐】
首先介绍patition的概念:Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker (即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列;分区:1、增强扩展能力,让其可以处理任意多的数据,即每个 Partition 可以通过调整以适应它所在的机器,而一个 topic又可以有多个 Partition...原创 2019-12-03 21:51:55 · 618 阅读 · 0 评论 -
大剑无锋之Hadoop的三个作业调度器【面试推荐】
1、FIFO按照到达时间,先到先服务。2、容量调度器支持多个队列,每个队列采用FIFO调度策略,首先计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列,三个队列同时按照任务的先后顺序依次执行。3、公平调度器支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中的所有资源。详情转:浅析Hadoop的三个作业调...原创 2019-12-03 21:24:55 · 197 阅读 · 0 评论 -
大剑无锋之如何查看一个java进程的堆内存使用情况(jps,jstack,jmap)【面试推荐】
jpsjps主要用来输出JVM中运行的进程状态信息。 命令行参数选项说明如下:1 -q不输出类名、Jar名和传入main方法的参数 2 -m输出传入main方法的参数 3 -l输出main类或Jar的全限名 4 -v输出传入JVM的参数 Jstack 使用通过使用 jps 命令获取需要监控的进程的pid,然后使...原创 2019-12-03 20:57:06 · 605 阅读 · 0 评论 -
大剑无锋之介绍一下B+树【面试推荐】
B+树有两种类型的节点:内部结点(也称索引结点)和叶子结点。内部节点就是非叶子节点,内部节点不存储数据,只存储索引,数据都存储在叶子节点。 内部结点中的key都按照从小到大的顺序排列,对于内部结点中的一个key,左树中的所有key都小于它,右子树中的key都大于等于它。叶子结点中的记录也按照key的大小排列。 每个叶子结点都存有相邻叶子结点的指针,叶子结点本身依关键字的大...原创 2019-12-03 20:30:03 · 248 阅读 · 0 评论 -
大剑无锋之GC【面试推荐】
无招胜有招之Java进阶JVM(五)垃圾回收https://blog.csdn.net/qq_41946557/article/details/101232439原创 2019-12-03 20:12:55 · 197 阅读 · 0 评论 -
大剑无锋之UNION 和 UNION ALL (SQL)【面试推荐】
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_...原创 2019-12-03 20:08:03 · 239 阅读 · 0 评论