无招胜有招
大数据方向学习面试知识扩展。路漫漫,加油!
乔治大哥
脚踏实地,仰望星空。
展开
-
听说面试又挂在计算机操作系统了?仔细看看这个!!!【强烈推荐】
文章较长,建议收藏!!!一、概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2. 共享共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。互斥共享的资源称为临界...原创 2019-12-20 21:41:30 · 804 阅读 · 0 评论 -
Hadoop的TextInputFormat的作用,如何自定义实现的
代码先行:【源代码】二话不说,代码先行!/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional ...原创 2019-11-18 21:19:20 · 787 阅读 · 0 评论 -
经典 MyBatis 面试题
1、什么是Mybatis?Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDB...转载 2019-10-28 09:26:58 · 265 阅读 · 0 评论 -
大厂面试官最喜欢问的面试难点
一 平常经常使用外键和外键和级联吗,可以说说你对它们的理解吗?对于外键和级联,阿里巴巴开发手册这样说到:【强制】不得使用外键与级联,一切外键概念必须在应用层解决。说明:以学生和成绩的关系为例,学生表中的 student_id 是主键,那么成绩表中的 student_id 则为外键。如果更新学生表中的 student_id,同时触发成绩表中的 student_id 更新,即为级联更新。...转载 2019-10-21 20:27:11 · 447 阅读 · 0 评论 -
无招胜有招之spring _高频面试题
1、使用 Spring 框架的好处是什么?1. 轻量:Spring 是轻量的,基本的版本大约 2MB。2. 控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。3. 面向切面的编程(AOP):Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。4. 容器:Spring 包含并管理应用中对象的生命周期和配置。5....原创 2019-10-16 10:24:49 · 320 阅读 · 0 评论 -
如何优化网站?
优化版本一系统开始是这样子的,一个 Tomcat 拖着一个 MySql 服务,跑在一个 2C 4G 的Linux服务器上,所有的请求都走 Tomcat,所有的查询都走 MySql,看起来像一句废话?资源是有限的,那么如何有效的利用资源,提升服务性能?Tomcat 号称能抗住数十万并发访问,但是这事也得分场景,还得有足够牛逼的机器。Tomcat 优化Tomcat支持以下三种模...转载 2019-10-15 22:32:59 · 312 阅读 · 0 评论 -
Java NIO:Buffer、Channel 和 Selector
Buffer一个 Buffer 本质上是内存中的一块,我们可以将数据写入这块内存,之后从这块内存获取数据。java.nio 定义了以下几个 Buffer 的实现,这个图读者应该也在不少地方见过了吧。其实核心是最后的ByteBuffer,前面的一大串类只是包装了一下它而已,我们使用最多的通常也是 ByteBuffer。我们应该将 Buffer 理解为一个数组,IntBuffer...转载 2019-10-15 07:43:42 · 146 阅读 · 0 评论 -
MD5算法
分享一下MD5算法加密的过程,参考了MD5算法原文。希望对大家有所帮助!1. 摘要这篇文章主要描述了MD5消息摘要算法。算法输入为任意长度的消息,输出为一个128位的消息摘要。假定两个不同的文件产生相同的报文摘要或由给定的报文摘要产生原始信息在计算上是行不通的。MD5算法适用于数字签名应用,例如在RSA中,大文件在被私钥加密之前,需要以一种安全的方式来进行压缩。MD5算法在设计上会在3...转载 2019-10-07 20:05:06 · 753 阅读 · 0 评论 -
如何设计第三方账号登陆?
# 前言: 多账户登陆互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如:网易、微信、QQ等,我们把此称为多账户统一登陆。通过这篇文章, 我想阐释多账户登陆的技术方案细节,以及相应的表设计,流程设计。我这里不会有具体代码实现细节,只要方案做的对,有思路,代码咋写都不会太烂。创业初期归结为创业初期是因为这个时候用户量比较少,甚至还没有接入上面所说的其他第三方的账...转载 2019-10-07 17:16:27 · 678 阅读 · 0 评论 -
浅析B树和B+树
在学习中,得知关系型数据库底层采用B+树,因此产生了寻找精华的道路。额。。。1 B树在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。1.1 B树概念B树也称B-树,它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B树和后面讲到的B+树也是从最简单的二叉树变换而来的,并没有什么神秘的地方,下面我们...转载 2019-10-04 21:15:08 · 265 阅读 · 0 评论 -
MySQL 索引的问题
1 索引的管理索引有很多中类型:普通索引、唯一索引、主键索引、组合索引、全文索引,下面我们看看如何创建和删除下面这些类型的索引。1.1 索引的创建方式索引的创建是可以在很多种情况下进行的。 直接创建索引 CREATE[UNIQUE|FULLLTEXT]INDEXindex_nameONtable_name(column_name(length))[UNIQU...转载 2019-10-07 16:45:40 · 668 阅读 · 0 评论 -
JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
A、jps(Java Virtual Machine Process Status Tool) B、jstack C、jmap(Memory Map)和jhat(Java Heap Analysis Tool) D、jstat(JVM统计监测工具) E、hprof(Heap/CPU Profiling Tool) 现实企业级Java应用开发、维护中,...转载 2019-10-07 14:46:01 · 236 阅读 · 0 评论 -
怎么对Java服务进行调优的?
Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的臃肿,各种性能问题开始纷至沓来。Java 应用性能的瓶颈点非常多,比如磁盘、内存、网络 I/O 等系统因素,Java 应用代码,JVM GC,数据库,缓存等。笔者根据个人经验,将Ja...转载 2019-10-06 13:11:22 · 316 阅读 · 0 评论 -
全面的GC原理及调优
本文介绍 GC 基础原理和理论,GC 调优方法思路和方法,基于 Hotspot jdk1.8,学习之后你将了解如何对生产系统出现的 GC 问题进行排查解决。图片来自 Pexels内容主要如下: GC 基础原理,涉及调优目标,GC 事件分类、JVM 内存分配策略、GC 日志分析等。 CMS 原理及调优。 G1 原理及调优。 GC 问题排查和...转载 2019-10-04 21:52:00 · 744 阅读 · 0 评论 -
无招胜有招之NIO
用户空间和内核空间Linux系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间。我比较喜欢的一种解释话语:计算机硬件由运算器、控制器、存储器、输入输出设备等设备组成,而能让机箱中各种设备各司其职的东西叫做系统内核。内核负责驱动硬件,管理活动和分配管理硬件资源,所以它不能直接让用户操作。因为用户不能直接控制硬件...原创 2019-09-25 19:10:23 · 164 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(一)
Class文件格式:Java虚拟机中定义的Class文件格式。每一个Class文件都对应着唯一一个类或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成)。我们只是通俗地将任意一个有效的类或接口所应当满足的格式称为“Class文件格式”,即使它不一定以磁盘文件的形式存在。推荐:https://blog.csdn.net/tyyj90/...原创 2019-09-22 11:52:10 · 188 阅读 · 0 评论 -
无招胜有招之多线程
并发和并行的区别:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。解释三:并行是在一台处理器上“同时”处理多个任务,并发是在多台处理器上同时处理多个任务。如 hadoop 分布式集群。 线程和进程的区别 线程和进程一样,都是实现并发的一个基本...原创 2019-09-21 14:56:35 · 272 阅读 · 0 评论 -
无招胜有招之锁
一、CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、MonitorCAS:在java并发应用中通常指CompareAndSwap或CompareAndSet,即比较并交换。简单来说就是一种无锁算法,有三个操作数(内存值V,旧的预期值A,要修改的新值B。当且仅当A=V,将V修改为B否则什么都不做。)CAS是一个原子操作,它比较一个内存位置的值并且只有相...原创 2019-09-21 10:09:00 · 182 阅读 · 0 评论 -
无招胜有招之语言基础
java的面向对象 面向对象是指用对象来模拟现实实际的事物,用对象之间的关系描述事物之间的联系。面向对象的特点主要可以概括为封装性,继承性和多态性。 java语言的三大特征 封装、继承、多态, 封装是面向对象编程的核心思想。将对象的属性和行为分装起来,其载体就是类,类通常对客户隐藏起实现细节,这就是封装的思想,简单来说:就是把一个类封装为一个高度自治和相对封闭的...原创 2019-09-19 19:35:36 · 227 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(三)内存模型
为什么要有内存模型在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算机硬件有关的一个概念。那么我先给你介绍下他和硬件到底有啥关系。CPU和缓存一致性我们应该...转载 2019-09-23 18:29:06 · 153 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(四)内存模型plus
一、计算机内存模型:在多CPU的系统中,每个CPU都有多级缓存,一般分为L1、L2、L3缓存,因为这些缓存的存在,提供了数据的访问性能,也减轻了数据总线上数据传输的压力,同时也带来了很多新的挑战,比如两个CPU同时去操作同一个内存地址,会发生什么?在什么条件下,它们可以看到相同的结果?这些都是需要解决的。所以在CPU的层面,内存模型定义了一个充分必要条件,保证其它CPU的写入动作对该C...原创 2019-09-23 19:14:04 · 161 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(五)垃圾回收
垃圾检测、回收算法垃圾收集器一般必须完成两件事:检测出垃圾;回收垃圾。怎么检测出垃圾?一般有以下几种方法:引用计数法:给一个对象添加引用计数器,每当有个地方引用它,计数器就加1;引用失效就减1。好了,问题来了,如果我有两个对象A和B,互相引用,除此之外,没有其他任何对象引用它们,实际上这两个对象已经无法访问,即是我们说的垃圾对象。但是互相引用,计数不为0,导致无法回收,所以还有另一种方...转载 2019-09-23 23:02:11 · 189 阅读 · 1 评论 -
无招胜有招之Java进阶JVM(六)JVM 参数及调优
辅助信息JVM提供了大量命令行参数,打印信息,供调试使用。主要有以下一些:-XX:+PrintGC:输出形式:[GC 118250K->113543K(130112K), 0.0094143 secs] [Full GC 121376K->10414K(130112K), 0.0650971 secs]-XX:+PrintGCDetails:输出形式:[GC [DefNew...转载 2019-09-23 23:08:52 · 89 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(七)对象模型
Java对象前言:在jvm的内存结构中,对象保存在堆中,而我们在对对象进行操作时,其实操作的是对象的引用。Java对象包含三个部分:一个Java对象可以分为三部分存储在内存中,分别是:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。1.对象头(包含锁状态标志,线程持有的锁等标志)2.实例数据3.对齐填充对象头:...原创 2019-09-24 16:26:14 · 188 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(八)类加载机制
6.1.ClassLoader的两个作用和一个任务作用:1.将Class加载到JVM中2.审视每一个类应该由谁加载。任务:将Class字节码重新解析成统一要求的对象格式6.2上级委托接待机制又称双亲委托机制6.3JVM提供的三层ClassLoader 1、Bootstrap ClassLoader 根类加载器/引导类加载器 负责Jav...原创 2019-09-24 18:50:22 · 205 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(九)HotSpot
Java 版本1.8.0_121Java SE 运行环境:也就是我们所说的jre.至于hotspot:(两个字 讲究)#翻译的官方文档Java HotSpot虚拟机是Java SE平台的核心组件。它实现了Java虚拟机规范,并在Java运行时环境中作为共享库交付。作为Java字节码执行引擎,它在各种操作系统和体系结构上提供Java运行时工具,例如线程和对象同步。...原创 2019-09-24 20:36:19 · 252 阅读 · 0 评论 -
无招胜有招之Java进阶JVM(二)
堆与栈的区别: 1.栈内存存储的是局部变量而堆内存存储的是实体; 2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短; 3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。问题:java中的对象一定在堆上分配吗?不一定,在Java中,典型的对象不再堆上分配...原创 2019-09-22 12:36:55 · 162 阅读 · 0 评论