能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
暂无个人介绍
MathJax 和 LaTeX 数学公式 支持 MathJax 是一款运行在浏览器中的开源数学符号渲染引擎,使用MathJax可以方便的在浏览器中显示数学公式,不需要使用图片。目前,MathJax可以解析 Latex、MathML 和 ASCIIMathML 的标记语言。MathJax 项目于 2009 年开始,发起人有 American Mathematical Society, Design Science等,还有众多的支持者,个人感觉MathJax会成为今后数学符号渲染引擎中的主流,也许现在已经是了。本文接下来会讲述 MathJax 的基础用法,但不涉及MathJax 的安装及配置。
Projects and tasks 项目和任务 每个 Gradle 构建都由一个或多个项目组成。 一个项目代表什么取决于你在 Gradle 上做什么。 例如,一个项目可能表示一个库 JAR 或一个 web 应用程序。 它可以表示从其他项目生成的 jar 组装起来的发行版 ZIP。 一个项目并不一定代表要构建的东西。 它可能代表要做的事情,比如将应用程序部署到登台或生产环境。 不要担心,如果这看起来有点含糊现在。 Gradle 的按惯例构建支持为项目增加了一个更具体的定义。
在入门教程中,您学习了如何创建简单的任务。 稍后您还学习了如何向这些任务添加额外的行为,并学习了如何在任务之间创建依赖关系。 这一切都是关于简单的任务,但 Gradle 把任务的概念更进一步。 Gradle 支持增强型任务,这些任务具有自己的属性和方法。 这与您习惯使用 Ant 目标的情况大不相同。 这些强化的任务要么是你提供的,要么是内置在 Gradle 的。
The Gradle build language Gradle 构建语言 Gradle 提供了一种领域特定语言(DSL)来描述构建,这种构建语言在 Groovy 和 Kotlin 都可以使用。 Groovy 构建脚本可以包含任何 Groovy 语言元素。 Kotlin 构建脚本可以包含任何 Kotlin 语言元素。 Gradle 假设每个构建脚本都使用 UTF-8进行编码。
我们之前说过,Gradle 的核心是一种基于依赖性编程的语言。 在 Gradle 术语中,这意味着您可以定义任务和任务之间的依赖关系。 Gradle 保证这些任务按照其依赖项的顺序执行,并且每个任务只执行一次。 这些任务形成了一个有向无环图。 有一些构建工具可以在执行任务时建立这样的依赖关系图。 在执行任何任务之前,Gradle 构建完整的依赖关系图。 这位于 Gradle 的心脏地带,使许多事情成为可能,否则这些事情是不可能实现的。
日志是构建工具的主要“ UI”。 如果太冗长,那么真正的警告和问题很容易被隐藏起来。 另一方面,你需要相关的信息来判断事情是否出了问题。 Gradle 定义了6个日志级别,如日志级别所示。 除了通常可以看到的日志级别之外,还有两个 gradle 特定的日志级别。 这些层次是安静和生命周期。 后者是默认的,用于报告构建进度。
Groovy script variables 4. Groovy 脚本变量 对于 Groovy DSL 的用户来说,了解 Groovy 如何处理脚本变量非常重要。 有两种类型的脚本变量。 一个具有本地作用域,另一个具有脚本范围。 Example: Variables scope: local and script wide 示例: 变量范围: 本地范围和脚本范围 scope.groovy String localScope1 = 'localScope1' def localScope2 = 'localScope2' scriptScope = 'scriptScope' println
官网 https://flow.aliyun.com/ 阿里云效我总结特点就是:开箱即用, 特别强大, 而且界面美观!
上传设置 1. settings.xml 中设置仓库凭证:servers 节点中添加如下配置.[如果未加密则可跳过] <server> <id>releases</id> <username>************</username> <password>************</password> </server> <server> <id>snapshots</id> <username>************</username> <password>********
第一步:打开iphone手机的开发者模式,流程是:【设置】->【Safari】->【高级】->开启【Web检查器】
源码地址 https://gitee.com/kaiLee/markdown- template/blob/master/%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3%E6%A8%A1%E6%9D%BF.md 展示效果 简要描述: 参数名 必选 类型 说明 举例 acceptNo 是 string 受理号 6120200302000148 • 该接口不返回保单号 和 投保人姓名数据, 需要前端从上个页面携带 cURL 描述: curl --location --request POST 'http://aaa.bbb.ccc/ddd/product/qualityI
笔记主要来源 https://gitee.com/lagouedu/Basic-document/blob/master/document/MyBatis.md l 经典三层 web表现层(视图+controller)、service层、dao层
Windows Subsystem for Linux(简称 WSL)是一个在 Windows 10/11 上能够运行原生 Linux 二进制可执行文件(ELF 格式)的兼容层。
有便携和安装两种区分,能选择便携包尽量选择它。安装包类型是便携类软件的补充, 可以按需挑选。如果该软件能做到跨平台, 我会优先推荐.
Spring 框架简介 在 Java 近20年的历史中,它经历过很好的时代,也经历过饱受诟病的时代。尽管有很多粗糙的地方,如 applet、企业级JavaBean(Enterprise JavaBean,EJB)、Java 数据对象(Java Data Object,JDO)以及无数的日志框架,但是作为一个平台,Java的历史是丰富多彩的,有很多的企业级软件都是基于这个平台构建的。Spring是Java历史中很重要的组成部分。
前言 受制于 Xshell 的收费,寻思构建一套免费的 ssh 方案。 putty 双击即可直接使用 用它来远程管理 Linux 十分好用,其主要优点如下: ◆ 完全免费; ◆ 在 Windows 9x/NT/2000 下都能运行的都非常好; ◆ 支持协议广 用快捷方式实现自动登陆 首先创建 putty.exe 的快捷方式到桌面;然后运行 putty,输入 host name、port、saved session’s name,点击保存,假设 session 名为“qa server”,随后关闭窗口;最后右击 putty 快捷方式,属性,目标,加上如下参数 -load "qa server"
Java 5之后可以在源代码中嵌入一些补充信息,这种补充信息称为注解(Annotation),例如在方法覆盖中使用过的@Override注解,注解都是@符号开头的。 注解并不能改变程序运行的结果,不会影响程序运行的性能。有些注解可以在编译时给用户提示或警告,有的注解可以在运行时读写字节码文件信息。
任务一 自定义IoC&AOP框架 1.1 IoC IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 1. 谁控制谁 (由 Spring IoC 容器来负责对象的生命周期和对象之间的关系) 2. 控制什么 (bean对象创建,属性注入) 3. 为何是反转 (依赖的对象由原来的主动获取变成被动接受,所以是反转) 4. 哪些方面反转了(所依赖对象的获取被反转了) hibernate中的inverse也是一种IoC
前言 今天这篇文章,主要聊聊什么是ESLint,为什么要用它?它的实现原理是什么?工作中如何使用的ESLint,以及如何自定义ESLint规则。 本文整理自以下文章: • 掘金:eslint工作原理探讨 • 手摸手教你写eslint插件 • 慕课网:《大前端》第七周「团队协作」
在Java8之前,代码编译为class文件后,方法参数的类型固定,但是方法名称会丢失,方法名称会变成arg0、arg1....。而现在,在Java8开始可以在class文件中保留参数名,这就给反射带来了极大的遍历。像mybatis等需要使用反射机制获取方法参数的时候就可以不用像以前一样需要使用类似于@Para之类的注解。
作业一: 手写MVC框架基础上增加如下功能 1)定义注解@Security(有value属性,接收String数组),该注解用于添加在Controller类或者Handler方法上,表明哪些用户拥有访问该Handler方法的权限(注解配置用户名) 2)访问Handler时,用户名直接以参数名username紧跟在请求的url后面即可,比如http://localhost:8080/demo/handle01?username=zhangsan
Thymeleaf 是一个用于 web 和独立环境的现代服务器端 Java 模板引擎。 Thymeleaf 的主要目标是为开发工作流程带来优雅的自然模板ー HTML,它既可以在浏览器中正确显示,也可以作为静态原型工作,从而加强开发团队之间的协作。 有了 Spring Framework 的模块、大量与您最喜欢的工具集成的功能,以及插入您自己功能的能力,Thymeleaf 是现代 HTML5 JVM web 开发的理想选择ーー尽管它可以做的还有很多。 用 Thymeleaf 语言编写的 HTML 模板看起来和工作方式仍然类似于 HTML,使得在应用程序中运行的实际模板仍然可以作为有用的设计工件工
课堂笔记 起步依赖 + 自动配置 在开发过程中,通常会对一段业务代码不断地修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能启动成功,这种不必要的重复操作极大的降低了程序开发效率。为此,Spring Boot框架专门提供了进行热部署的依赖启动器,用于进行项目热部署,而无需手动重启项目 对测试的支持 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
• web服务器, 轻量级, 能处理大并发量 • 反向代理服务器(负载均衡) 你可以轻松的在服务器上通过 Nginx 部署 HTTP 静态服务。 windows 下 Nginx 环境的安装:
软件安装器 Homebrew 使用 Homebrew 安装 Apple(或您的 Linux 系统)没有预装但你需要的东西。 Homebrew 安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Homebrew 源替换
Tomcat 系统架构与原理剖析 注意:浏览器访问服务器使⽤的是Http协议,Http是应⽤层协议,⽤于定义数据通信的格式,具体的数据传输使⽤的是TCP/IP协议 Tomcat 系统总体架构 Tomcat是⼀个Http服务器(能够接收并且处理http请求,所以tomcat是⼀个http服务器)我们使⽤浏览器向某⼀个⽹站发起请求,发出的是Http请求,那么在远程,Http服务器接收到这个请求之后,会调⽤具体的程序(Java类)进⾏处理,往往不同的请求由不同的Java类完成处理。 Tomcat 设计了两个核⼼组件连接器(Connector)和容器(Container)来完成 Tomcat 的两⼤核
目前 5.x 系列中 5.0.9 为最新版本。 docker pull redis:5.0.9 安装最新版本的 redis. docker pull redis:latest
安装 mysql 5.7 docker pull mysql:5.7 docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=feitangfei mysql:5.7 # 5.7的这个版本竟然 -u 和 -p 之间不能加空格,我也是醉了 docker exec -it mysql-test mysql -uroot -pfeitangfei 安装 mysql 8.0.18 docker pull mysql:8.0.18 如果是此句, 则是拉取最新版本 $ docker pull mysql:latest
加速器推荐 • 阿里云的加速器https://help.aliyun.com/document_detail/60750.html • DaoCloud 加速器:https://www.daocloud.io/mirror#accelerator-doc 1. 安装/升级 Docker 客户端 推荐安装 1.10.0 以上版本的 Docker 客户端,参考文档 docker-ce 2. 配置镜像加速器 直接登录阿里云 - 容器 Hub 服务控制台后,点击“镜像加速器”标签,也会出现相应信息。 在出现的“容器镜像服务”页面,依次查找:镜像中心---》镜像加速器,并点击,可以得到一个专属的镜像加速
第⼀部分:⼀致性Hash算法 第⼆部分:集群时钟同步问题 第三部分:分布式ID解决⽅案
分布式系统概念 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技 术,例如:RMI、Hessian、SOAP、ESB和JMS等,它们背后到底是基于什么原理实现的呢
PC 版软件 可能是最好的软件卸载器 —— Geek Uninstaller https://geekuninstaller.com/ 分析磁盘空间占比(查找大文件)—— WizTree https://wiztreefree.com/download 网速检测实用软件 —— NetSpeedMonitor
更改 terminal / cmd 命令行工具的外观 https://github.com/microsoft/terminal/releases/tag/1904.29002 colortool.exe -b OneHalfDark.itermcolors 当然还可以手动修改字体样式
优点:使用 markdown 编写,docsify 作为支撑。快速高效,若搭载搜索功能,功能较为完善。且可部署在内网环境。 缺点:不支持直接点击按钮进行 HTTP 请求,需要手动粘贴参数到 POSTMAN 等工具。 Docsify 初始化 & 运行
主题介绍: NexT - Elegant and powerful theme for Hexo. 支持丰富的拓展的 Hexo 主题. 官网地址 https://theme-next.js.org/ github 地址 https://github.com/next-theme/hexo-theme-next
由于静态网站的某些功能有限,所以我们需要第三方服务来扩展我们的网站。在任何时候,你都可以使用 NexT 支持的第三方服务来扩展所需的功能。 Next 提供了两个渲染引擎来显示数学方程: MathJax 和 KaTeX。 要使用这个特性,您只需要选择一个渲染引擎并打开它的 enable(位于heme config file)。 然后你需要安装相应的 Hexo 渲染器来完全支持数学方程式的显示-只开启启用可能不会让你正确地看到显示的方程式。 相应的 Hexo 渲染引擎将提供如下。 Settings 设置
首先去官网下载 phpMyAdmin phpMyAdmin - Files https://www.phpmyadmin.net/files/ 因为 phpMyAdmin 的界面是完全基于您的浏览器,所以您需要一个网站服务器(如 Apache, nginx, IIS)来安装 phpMyAdmin。
Druid 主页 https://github.com/alibaba/druid Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。 如何使用
windows 用户 推荐使用 tortoisesvn https://tortoisesvn.net/downloads.html
老版本的 Jackson 使用的包名为 org.codehaus.jackson,而新版本使用的是com.fasterxml.jackson。 Jackson主要包含了3个模块: • jackson-core • jackson-annotations • jackson-databind 其中,jackson-databind 又依赖于 jackson-annotations。jackson-annotations 又依赖于 jackson-core,
Apache Dubbo是一款高性能的 Java RPC 框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源 Java RPC框架,可以和 Spring 框架无缝集成。 duboo 中文官网 http://dubbo.apache.org/zh/
Plugins | JetBrains https://plugins.jetbrains.com/ 以下是介绍顺序按照优先级排序 Lombok A plugin that adds first-class support for Project Lombok Lombok - Plugins | JetBrains https://plugins.jetbrains.com/plugin/6317-lombok/ 之所以必备,是因为 spring boot 对 lombok 也不抗拒。项目中也是使用广泛。
数据持久技术概述 把数据保存到数据库中只是一种数据持久化方式。凡是将数据保存到存储介质中,需要的时候能够找到它们,并能够对数据进行修改,这些就属于数据持久化。 Java中数据持久化技术有很多:
熔断即断路保护。微服务架构中,如果下游服务因访问压⼒过⼤⽽响应变慢或失 败,上游服务为了保护系统整体可⽤性,可以暂时切断对下游服务的调⽤。这种牺 牲局部,保全整体的措施就叫做熔断。
简介 NPM 是随同 NodeJS 一起安装的包管理工具,能解决 NodeJS 代码部署上的很多问题,常见的使用场景有以下几种: • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。 • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。 • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。 由于新版的 nodejs 已经集成了 npm,所以之前 npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
注册和登录 GitLab.com 注册 https://gitlab.com/users/sign_up GitLab.com 登录 https://gitlab.com/users/sign_in gitlab 修改界面为中文 Settings --- Preferences --- Localization
Spring Cloud 高级进阶 微服务监控之 Turbine 聚合监控 参考上⽂Hystrix部分 微服务监控之分布式链路追踪技术 Sleuth + Zipkin 分布式链路追踪技术适⽤场景(问题场景) 场景描述
Apache ZooKeeper 是一个开发和维护开源服务器的项目,它支持高度可靠的分布式协调。 下载地址 北京理工大学 开源软件镜像服务 https://mirror.bit.edu.cn/web/ 清华大学开源软件镜像站 | Tsinghua Open Source Mirror https://mirrors.tuna.tsinghua.edu.cn/ 北京外国语大学开源软件镜像站 | BFSU Open Source Mirror https://mirrors.bfsu.edu.cn/ zookeeper-3.4.14 下载地址 https://mirrors.bfsu.edu.cn
产品介绍 CODING 静态网站服务是 CODING 联合腾讯云 Serverless 团队,为开发者提供的便捷、稳定、高拓展性的静态网站资源托管服务。无需自建服务器,即可一键部署网站应用,将静态网站分发至全网节点,轻松为您的网站业务增添稳定、高并发、快速访问等能力。
软件安装器 Homebrew Homebrew 安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Homebrew 源替换