[RATS]week-1

Algorithm

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 Substring(String processingStr) {
    this.processingStr = processingStr;
    char[] charArray = this.processingStr.toCharArray();
    Map<Character, Integer> result = new HashMap<>();
    for (int i = 0; i < charArray.length; i++) {
        if (charArray.length - i < this.lengthOfsubString) break;
        if (result.containsKey(charArray[i])) {
            if (i - result.get(charArray[i]) > this.lengthOfsubString) {
                this.lengthOfsubString = i - result.get(charArray[i]);
                this.startIndex = result.get(charArray[i]);
                this.endIndex = i;
            }
        }
        result.put(charArray[i], i);
    }
    this.substrResult = this.processingStr.substring(this.startIndex, this.endIndex);
}

Review

原文

spring-cloud-static
1.Features
Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

  • Distributed/versioned configuration
  • Service registration and discovery
  • Routing
  • Service-to-service calls
  • Load balancing
  • Circuit Breakers
  • Distributed messaging

Spring Cloud takes a very declarative approach, and often you get a lot of features with just a classpath change and/or an annotation. Example application that is a discovery client:

翻译

1. 特性
Spring Cloud 聚焦在针对典型的应用案例提供好开箱即用的实践和可扩展的机制来应对其他场景。

  • 分布式或基于版本的配置
  • 服务注册和发现
  • 路由
  • 服务与服务间的调用
  • 负载均衡
  • 熔断机制
  • 分布式消息

Spring Cloud普遍使用声明式,并且提供很多特性通过类的路径加上一些注解获取很多特性。示例程序是DicoveryClient.

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

Tips

根据包+类名动态创建对讲
(T)Class.forName(“className”).newInstance()

public static void main(String[] args) throws Exception {
	AlgorithmService algorithmService = AlgorithmFactory.getInstance("com.stone.algorithm.normal.StringAlgorithm");
}

public static  AlgorithmService getInstance(String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
        return (AlgorithmService)Class.forName(className).newInstance();
}

Share

BAT 程序员们常用的开发工具 - 阿里篇

一、Java 线上诊断工具 Arthas
Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。

使用场景:

这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到 JVM 的实时运行状态?
Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

使用教程:

基础教程:

https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics

进阶教程:

https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced

开源地址:
https://github.com/alibaba/arthas

二、IDE 插件 Cloud Toolkit
Cloud Toolkit 是一款 IDE 插件,可以帮助开发者更高效地开发、测试、诊断并部署应用。通过 Cloud Toolkit,开发者能够方便地将本地应用一键部署到任意机器(本地或云端),并内置 Arthas 诊断、高效执行终端命令和 SQL 等,提供 IntelliJ IDEA 版,Eclipse 版,PyCharm 版和 Maven 版。

使用场景:

每次修改完代码后,是否正在经历反复地打包?
在 Maven 、Git 以及其他运维脚本和工具的之间频繁切换?
采用 SCP 工具上传?使用 XShell 或 SecureCRT 登陆服务器?替换部署包?重启?
文件上传到服务器指定目录,在各种 FTP、SCP 工具之间频繁切换 ?
使用教程:

IntelliJ IDEA 版:

https://help.aliyun.com/document_detail/98762.html

Eclipse 版:

https://help.aliyun.com/document_detail/29970.html

PyCharm 版:

https://help.aliyun.com/document_detail/112740.html

Maven 版:

https://help.aliyun.com/document_detail/108682.html

(免费) 工具地址:

https://www.aliyun.com/product/cloudtoolkit

三、混沌实验注入工具 ChaosBlade
ChaosBlade 是一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,可实现底层故障的注入,提供了延迟、异常、返回特定值、修改参数值、重复调用和 try-catch 块异常等异常场景。

使用场景:

微服务的容错能力不易衡量?
容器编排配置是否合理无法验证?
PaaS 层健壮性的测试工作无从入手?
使用教程:

https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南

开源地址:

https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南

四、Java 代码规约扫描插件
该插件用于检测 Java 代码中存在的不规范的位置,并给予提示。规约插件是采用 Kotlin 语言开发。

使用教程:

IDEA 插件使用文档:

https://github.com/alibaba/p3c/wiki/IDEA 插件使用文档

Eclipse 插件使用文档:

https://github.com/alibaba/p3c/wiki/Eclipse 插件使用文档

开源地址:

https://github.com/alibaba/p3c

五、解决 Kubernetes 上应用自动化问题工具 OpenKruise
Kruise 的核心是自动化,从不同维度解决 Kubernetes 之上应用的自动化问题,包括部署,升级,弹性扩缩容,Qos 调节,健康检查,迁移修复等。此次,Kruise 开源的内容主要在应用部署,升级方面,即一套增强版 controller 组件用于应用的部署和级和运维。后续,Kruise 会依次开源智能化的弹性扩缩容组件,以及应用 Qos 自调节能力的组件等。

开源地址:

https://github.com/openkruise/kruise

六、静态开源站点搭建工具 Docsite
Docsite 是一款集官网、文档、博客和社区为一体的静态开源站点的解决方案,具有简单易上手、上手不撒手的特质,同时支持 react 和静态渲染、PC 端和移动端、支持中英文国际化、SEO、markdown 文档、全局站点搜索、站点风格自定义、页面自定义等功能。

使用教程:

https://docsite.js.org/zh-cn/docs/installation.html

开源地址:

https://github.com/txd-team/docsite

七、Android 平台上的秒级编译方案 Freeline
Freeline 可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline 最快捷的使用方法就是直接安装 Android Studio 插件。

使用教程:

https://github.com/alibaba/freeline/blob/master/README-zh.md

开源地址:

https://github.com/alibaba/freeline

八、架构可视化工具 AHAS
AHAS 为 K8s 等容器环境提供了架构可视化的功能,同时,具有故障注入式高可用能力评测和一键流控降级等功能,可以快速低成本的提升应用可用性。

使用场景:

服务化改造过程中,想精确的了解资源实例的构成和交互情况,实现架构的可视化?
想引入真实的故障场景和演练模型?
低门槛获得流控、降级功能?

使用教程:

https://help.aliyun.com/document_detail/90323.html

工具地址:

https://www.aliyun.com/product/ahas

九、数据处理工具 EasyExcel
EasyExcel 是一个用来对 Java 进行解析、生成 Excel 的框架,它重写了 poi 对 07 版 Excel 的解析,原本一个 3M 的 Excel 用 POI sax 需要 100M 左右内存,EasyExcel 可降低到 KB 级别,并且再大的 excel 也不会出现内存溢出的情况。03 版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。

使用教程:

https://github.com/alibaba/easyexcel/blob/master/quickstart.md

开源地址:

https://github.com/alibaba/easyexcel

十、iOS 类工具 HandyJSON
HandyJSON 是一个用于 Swift 语言中的 JSON 序列化 / 反序列化库。与其他流行的 Swift JSON 库相比,HandyJSON 的特点是,它支持纯 Swift 类,使用也简单。它反序列化时 (把 JSON 转换为 Model) 不要求 Model 从 NSObject 继承 (因为它不是基于 KVC 机制),也不要求你为 Model 定义一个 Mapping 函数。只要你定义好 Model 类,声明它服从 HandyJSON 协议,HandyJSON 就能自行以各个属性的属性名为 Key,从 JSON 串中解析值。

使用教程:

https://github.com/alibaba/HandyJSON/blob/master/README_cn.md

开源地址:

https://github.com/alibaba/HandyJSON

十一、Java 工具集 Dragonwell
Alibaba Dragonwell 是阿里巴巴内部 OpenJDK 定制版 AJDK 的开源版本, AJDK 为在线电商,金融,物流做了结合业务场景的优化,运行在超大规模的,100,000+ 服务器的阿里巴巴数据中心。 Alibaba Dragonwell 与 Java SE 标准兼容,目前仅支持 Linux/x86_64 平台。

使用教程:

https://github.com/alibaba/dragonwell8/wiki/ 阿里巴巴 Dragonwell8 用户指南

开源地址:

https://github.com/alibaba/dragonwell8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值