摘要: springboot常见问题 SpringBoot 常见问题分析 HikariCP 常见问题分析 MyBatis常见问题分析 Spring 常见问题分析 thymeleaf 常见问题分析 Ajax 常见问题分析 Summary 本小节主要希望提高同学们对问题的思考,分析以及解决问题的能力,并对问题进行总结,沉淀,形成经验和习惯。 阅读全文
posted @ 2022-08-10 22:50 sugeek 阅读(34) 评论(0) 推荐(0)
摘要: 高并发的基本表现为单位时间内系统能够同时处理的请求数, 高并发的核心是对CPU资源的有效压榨。 举个例子,如果我们开发了一个叫做MD5穷举的应用,每个请求都会携带一个md5加密字符串,最终系统穷举出所有的结果,并返回原始字符串。这个时候我们的应用场景或者说应用业务是属于CPU密集型而不是IO密集型。这个时候CPU一直在做有效计算,甚至可以把CPU利用率跑满,这时我们谈论高并发并没有任何意义。(当然,我们可以通过加机器也就是加CPU来提高并发能力,这个是一个正常猿都知道废话方案,谈论加机器没有什么意义,没有任何高并发是加机器解决不了,如果有,那说明你加的机器还不够多!🐶) 阅读全文
posted @ 2022-08-10 22:44 sugeek 阅读(92) 评论(0) 推荐(0)
摘要: Dubbo入门 ① 当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。 ② 当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。 ③ 接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器? 为了解决这由于架构的演变所产生的问题几个问题,于是,dubbo 产生了。当然,解决这个问题的技术不止 dubbo 。 阅读全文
posted @ 2022-08-10 22:21 sugeek 阅读(41) 评论(0) 推荐(0)
摘要: Vue面试题一 前言 作为前端开发中现行最火的框架之一,Vue 在面试中出现的频率不断增加。基于此,总结了一些 Vue 方面经常出现的面试题,留给自己查看消化,也分享给有需要的小伙伴 感兴趣的小伙伴也可以点击 这里,查看前端方面的其他面试题,欢迎 star 关注 如果文章中有出现纰漏、错误之处,还请看到的小伙伴留言 阅读全文
posted @ 2022-08-10 14:00 sugeek 阅读(39) 评论(0) 推荐(0)
摘要: Vue与微信小程序的区别比较 一、生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下,小程序的钩子函数要简单得多。 vue的钩子函数在跳转新页面时,钩子函数都会触发,但是小程序的钩子函数,页面不同的跳转方式,触发的钩子并不一样。 onLoad: 页面加载一个页面只会调用一次,可以在 onLoad 中获取打开当前页面 阅读全文
posted @ 2022-08-10 12:46 sugeek 阅读(171) 评论(0) 推荐(0)
摘要: webpack原理 在了解 Webpack 原理前,需要掌握以下几个核心概念,以方便后面的理解: Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。 Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。 Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。 Loader:模块转换器,用于把模块原内容按照需求转换成新内容。 Plugin:扩展插件,在 Webpack 构建流程中的特定时机会广播出对应的事件,插件可以监听这些事件的发生,在特定时机做对应的事情。 阅读全文
posted @ 2022-08-10 12:42 sugeek 阅读(314) 评论(0) 推荐(0)
摘要: JS运行机制 浏览器器内核拿到内容后,渲染大概可以划分成以下几个步骤: 解析html建立dom树 解析css构建render树(将CSS代码解析成树形的数据结构,然后结合DOM合并成render树) 布局render树(Layout/reflow),负责各元素尺寸、位置的计算 绘制render树(paint),绘制页面像素信息 浏览器会将各层的信息发送给GPU,GPU会将各层合成(composite),显示在屏幕上。 阅读全文
posted @ 2022-08-10 12:16 sugeek 阅读(80) 评论(0) 推荐(0)
摘要: 跨域问题 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 同源的定义 如果两个 URL 的 protocol、port (en-US) (如果有指定的话) 和 host 都相同的话,则这两个 URL 是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。 同源策略控制不同源之间的交互,例如在使用XMLHttpRequest 或 标签时则会受到同源策略的约束。这些交互通常分为三类: 跨源写操作(Cross-origin writes)一般是被允许的。例如链接(links),重定向以及表单提交。特定少数的 HTTP 请求需要添加预检请求。 跨源资源嵌入(Cross-origin embedding)一般是被允许(后面会举例说明)。 跨源读操作(Cross-origin reads)一般是不被允许的,但常可以通过内嵌资源来巧妙的进行读取访问。 阅读全文
posted @ 2022-08-10 12:08 sugeek 阅读(33) 评论(0) 推荐(0)
摘要: Redis为什么这么快 edis是一个开源的内存中的数据结构存储系统,它可以用作:数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(String),散列(Hash),列表(List),集合(Set),有序集合(Sorted Set或者是ZSet)与范围查询,Bitmaps,Hyperloglogs 和地理空间(Geospatial)索引半径查询。其中常见的数据结构类型有:String、List、Set、Hash、ZSet这5种。 阅读全文
posted @ 2022-08-10 12:01 sugeek 阅读(63) 评论(0) 推荐(0)
摘要: 初级PHP面试题 说几个你所知道的设计模式 单例模式 保证一个类仅有一个实例,并提供一个访问他的全局访问点例如框架中的数据库连接 - 类似DB类 策略模式 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作 - 类似不同用户呈现不同效果 注册模式 提供 阅读全文
posted @ 2022-08-10 11:53 sugeek 阅读(83) 评论(0) 推荐(0)
摘要: Docker入门 Google 在很久之前就开始使用容器模型来解决 VM 模式的弊端。简单来说容器模型允许我们在同一台主机上运行多个容器,而且共用主机的 CPU、RAM 等资源。 那么它对开发者来说意味着是么呢? 它可以保证对所有的开发者和服务器来说,我们的工作环境都是一致的。比如: 生产环境、仿真环境、测试环境。 任何人都可以分分钟配置好项目,无需乱搞配置、安装库和设置依赖。 简单来说,docker 是一个平台,它允许我们使用容器来开发、部署、运行应用程序。 阅读全文
posted @ 2022-08-10 11:42 sugeek 阅读(44) 评论(0) 推荐(0)
摘要: Tomcat知识 Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。 如果你学过html,css,你会知道你写的页面只能自己访问,别人不能远程访问你写的页面,Tomcat就是提供能够让别人访问自己写的页面的一个程序 阅读全文
posted @ 2022-08-10 11:14 sugeek 阅读(133) 评论(0) 推荐(0)
摘要: 前端资源汇集 综合类 综合类 地址前端知识体系 http://www.cnblogs.com/sb19871023/p/3894452.html前端知识结构 https://github.com/JacksonTian/fks前端知识体系 http://www.cnblogs.com/sb19871023/p/3 阅读全文
posted @ 2022-08-10 11:03 sugeek 阅读(125) 评论(0) 推荐(0)
摘要: 了解JVM JVM是Java Virtual Machine(Java 虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是平台无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。 阅读全文
posted @ 2022-08-10 01:18 sugeek 阅读(51) 评论(0) 推荐(0)
摘要: 浏览器页面渲染机制 结论: 浏览器工作流程:构建DOM -> 构建CSSOM -> 构建渲染树 -> 布局 -> 绘制。 CSSOM会阻塞渲染,只有当CSSOM构建完毕后才会进入下一个阶段构建渲染树。 通常情况下DOM和CSSOM是并行构建的,但是当浏览器遇到一个不带defer或async属性的script标签时,DOM构建将暂停,如果此时又恰巧浏览器尚未完成CSSOM的下载和构建,由于JavaScript可以修改CSSOM,所以需要等CSSOM构建完毕后再执行JS,最后才重新DOM构建。 阅读全文
posted @ 2022-08-10 01:15 sugeek 阅读(221) 评论(0) 推荐(0)
摘要: Java锁 从线程是否需要对资源加锁可以分为 悲观锁 和 乐观锁 从资源已被锁定,线程是否阻塞可以分为 自旋锁 从多个线程并发访问资源,也就是 Synchronized 可以分为 无锁、偏向锁、 轻量级锁 和 重量级锁 从锁的公平性进行区分,可以分为公平锁 和 非公平锁 从根据锁是否重复获取可以分为 可重入锁 和 不可重入锁 从那个多个线程能否获取同一把锁分为 共享锁 和 排他锁 阅读全文
posted @ 2022-08-10 01:12 sugeek 阅读(244) 评论(0) 推荐(0)
摘要: Java最新面试题汇总,希望这些文字对于面试的你们有帮助。 基础面试题 Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java基础面试题(4) Java基础面试题(5) Java多线程与并发面试题 Java中高级面试题【第一部分】 Java中高级面试题【第二部分】 阅读全文
posted @ 2022-08-10 01:12 sugeek 阅读(25) 评论(0) 推荐(0)
摘要: MySQL重要知识点/面试题总结 MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是3306。 阅读全文
posted @ 2022-08-10 01:09 sugeek 阅读(52) 评论(0) 推荐(0)
摘要: 从本章开始,我们正式进入Java多线程进阶篇的学习。初学者通过基础篇的学习,应该已经对多线程的初步使用有了基本概念和掌握。多线程这块知识的学习,真正的难点不在于多线程程序的逻辑有多复杂,而在于理清J.U.C包中各个多线程工具类之间的关系、特点及其使用场景(从整体到局部、高屋建瓴,这对学习任何知识都至 阅读全文
posted @ 2022-08-10 01:06 sugeek 阅读(62) 评论(0) 推荐(0)
摘要: Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体的例子吧.下面的几个例子是我在工作中所遇见的比较常用的 Spring AOP 的使用场景, 我精简了 阅读全文
posted @ 2022-08-10 01:04 sugeek 阅读(142) 评论(0) 推荐(0)
摘要: 基本知识 其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹的是, 这些概念经过了中文翻译后, 变得面目全非, 相同的一个术语, 在不同的翻译下, 含义总有着各种莫名其妙的差别. 鉴于此, 我在本章的开头, 着重为为大家介绍一个 Spring A 阅读全文
posted @ 2022-08-10 01:02 sugeek 阅读(47) 评论(0) 推荐(0)
摘要: Docker入门 在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系统上建立了一个中间虚拟软件层 Hypervisor ,并利用物理机器的资源虚拟出多个虚拟硬件环境来共享宿主机的资源,其中的应用运行在虚拟机内核上。但是,虚拟机对硬件的利用率存在瓶颈,因为虚拟机很难根据当前业务量动态调整其占用的硬件资源,因此容器化技术得以流行。其中,Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。 阅读全文
posted @ 2022-08-10 00:55 sugeek 阅读(55) 评论(0) 推荐(0)
摘要: HashMap 源码详细分析 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。 阅读全文
posted @ 2022-08-10 00:51 sugeek 阅读(39) 评论(0) 推荐(0)
摘要: Javascript六种继承方式 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法。这对于代码的复用是非常有用的。 大部分面向对象的编程语言,都是通过“类”(class)实现对象的继承。传统上,JavaScript 语言的继承不通过 class(ES6 引入了class 语法),而是通过“原型对象”(prototype)实现。那么在JS中常见的继承方式有几种呢? 阅读全文
posted @ 2022-08-10 00:48 sugeek 阅读(492) 评论(0) 推荐(0)
摘要: Linux基础知识 Linux系统的组成: linux内核(linus 团队管理) shell:用户与内核交互的接口 文件系统:ext3、ext4等。windows 有 fat32 、ntfs 第三方应用软件 Linux的几个优点: 免费 很多软件原生是在Linux下运行的,庞大的社区支持,生态环境好。 开源,可被定制,开放,多用户的网络操作系统。 相对安全稳定 阅读全文
posted @ 2022-08-10 00:38 sugeek 阅读(148) 评论(0) 推荐(0)
摘要: Java泛型 一、什么是泛型? Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常. 泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型 参数化类型: 把类型当作是参数一样传递 <数据类型> 只能是引用类型 相关术语: Array 阅读全文
posted @ 2022-08-10 00:33 sugeek 阅读(29) 评论(0) 推荐(0)
摘要: 多线程面试题 在典型的Java面试中, 面试官会从线程的基本概念问起 如:为什么你需要使用线程, 如何创建线程,用什么方式创建线程比较好(比如:继承thread类还是调用Runnable接口),然后逐渐问到并发问题像在Java并发编程的过程中遇到了什么挑战,Java内存模型,JDK1.5引入了哪些更高阶的并发工具,并发编程常用的设计模式,经典多线程问题如生产者消费者,哲学家就餐,读写器或者简单的有界缓冲区问题。仅仅知道线程的基本概念是远远不够的, 你必须知道如何处理死锁,竞态条件,内存冲突和线程安全等并发问题。掌握了这些技巧,你就可以轻松应对多线程和并发面试了。 阅读全文
posted @ 2022-08-10 00:28 sugeek 阅读(68) 评论(0) 推荐(0)
摘要: B树和B+树 1 B树 在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。 1.1 B树概念 B树也称B-树,它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B树和后面讲到的B+树也是从最简单的二叉树变换而来的,并没有什么神秘的 阅读全文
posted @ 2022-08-10 00:25 sugeek 阅读(123) 评论(0) 推荐(0)
摘要: 正则表达式合集 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 非零的正整数:^[1-9]\d*$ 非零的负整数:^\-[1-9][]0-9"*$ 非负整数:^\d+$ 非正整数:^-[1-9]\d*|0$ 阅读全文
posted @ 2022-08-10 00:21 sugeek 阅读(17) 评论(0) 推荐(0)
摘要: JavaScript面试指南一 为了说明 JS 面试的复杂性,首先,请尝试给出以下结果: onsole.log(2.0 == “2” == new Boolean(true) == “1”) 十有八九的会给出false, 其实运行结果是true,原因请看 这里。 1) 理解 JS 函数 函数是 JavaScript 的精华,是 J 阅读全文
posted @ 2022-08-10 00:16 sugeek 阅读(95) 评论(0) 推荐(0)
摘要: 谈谈 JS 垃圾回收机制 一般来说没有被引用的对象就是垃圾,就是要被清除, 有个例外如果几个对象引用形成一个环,互相引用,但根访问不到它们,这几个对象也是垃圾,也要被清除。 阅读全文
posted @ 2022-08-10 00:13 sugeek 阅读(169) 评论(0) 推荐(0)
摘要: css50个图形 CSS能够生成各种形状。正方形和矩形很容易,因为它们是 web 的自然形状。添加宽度和高度,就得到了所需的精确大小的矩形。添加边框半径,你就可以把这个形状变成圆形,足够多的边框半径,你就可以把这些矩形变成圆形和椭圆形。 我们还可以使用 CSS 伪元素中的 ::before 和 ::after,这为我们提供了向原始元素添加另外两个形状的可能性。通过巧妙地使用定位、转换和许多其他技巧,我们可以只用一个 HTML 元素在 CSS 中创建许多形状。 虽然我们现在大都使用字体图标或者svg图片,似乎使用 CSS 来做图标意义不是很大,但怎么实现这些图标用到的一些技巧及思路是很值得我们的学习。 阅读全文
posted @ 2022-08-10 00:08 sugeek 阅读(52) 评论(0) 推荐(0)