京东 2019实习生Java笔试题目2,求T串中最多的不相交Sm子串的个数

1. 题目 样例输入: 3 aa b ac bbaac 样例输出: 3 样例解释:把T中字符从1开始编号,用[L,R]表示从第L个字符到第R个字符所构成的子串。一种选择子串的方法是[1,1],[2,2],[3,4] (b、b、aa) 一共3个串,另一种选法是[1,1],[2,2],[4,5...

2019-04-13 22:06:29

阅读数 60

评论数 0

高并发synchronized深入详解

1. synchronized概述   synchronized是Java的一个关键字,修饰符。是Java多线程加锁机制的一种,一种隐式内置锁/监听器锁(对比显式Lock锁)。它也是一种互斥锁,保证了被修饰的块每次只能有一条线程访问。 1.1 细分 对象锁:synchronize修饰的是实例方法...

2019-04-05 23:29:41

阅读数 393

评论数 0

Git/GitHub 小技巧总结

1. 撤销git add . # 添加修改 git add . # 撤销添加 git reset HEAD . 图片来自网络 2. Git忽略添加某些文件 比如我们 git add .,添加修改以便提交的时候,我们不希望添加target目录,可以配置忽略文件 在项目仓库更目录下新建...

2019-04-03 12:46:09

阅读数 94

评论数 0

常用设计模式——单例模式

个人整合学习自 《Java设计模式》 刘伟 编著 单例模式 Singleton Pattern:确保一个类职业一个实例,并提供一个全局访问点来访问这个唯一实例。也是一直创建型模式。 单例模式的三个要点: 某个类只能有一个实例; 它必须自行创建这个实例; 它必须自行向整个系统提供这个实例。 ...

2019-04-03 11:12:16

阅读数 70

评论数 0

Spring Cloud Ribbon实现客户端负载均衡

  在分布式架构中,服务端负载均衡通常由Nginx实现分发请求的,而客户端的同一个实例部署在多个应用上时,也需要实现负载均衡,Spring Cloud Ribbon( [ˈrɪbən] ) 正好提供了这个功能。 1. Ribbon   Ribbon [ˈrɪbən] 是 Netflix 发布的...

2019-03-27 20:28:44

阅读数 92

评论数 0

Spring Cloud Eureka实现服务发现

1. Eureka   Eureka [jʊ’ri:kə] 是Netflix发现的一个服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS(Amazon Web Service)域中的中间件服务,以达到负载均和和中间服务故障转移的目的。Spring Cloud将其集成在自己的子项目...

2019-03-25 17:31:38

阅读数 106

评论数 0

Maven项目继承父项目依赖

Maven子项目继承父项目的依赖比较常用。比如Spring Boot项目 <parent> <groupId>org.springframework.boot</groupId> &lt...

2019-03-24 21:06:56

阅读数 109

评论数 0

JVM运行时数据区域

个人学习整合自: 《深入理解Java虚拟机》 周志明著

2019-03-23 17:43:54

阅读数 75

评论数 0

Java异常处理机制

1. 异常层次结构图 图片来自网络,侵删。 Java异常的处理机制是:抛出异常,捕获异常 Java异常都是对象,都派生自java.langThrowable类,主要分为Exception和Error两类 Error:程序无法处理的严重错误, 比如OutOfMemoryError。这些异常发...

2019-03-21 17:48:00

阅读数 79

评论数 0

单体架构、SOA、微服务架构

1. 单体架构的问题   在Java Web开发中,web工程一般会被打包为war包部署在Servlet容器中,如Tomcat。比较简单,开发和调试部署都很方便。   但是当用户量大时,并发量高时,一台机器是无法满足系统的负载的,我们会考虑水平拓展,比如增加服务器的数量,通过负载均衡器(如Ngin...

2019-03-18 23:14:11

阅读数 8173

评论数 0

常用设计模式——创建者模式

个人整合学习自 《Java设计模式》 刘伟 编著 模式概述 Builder Pattern: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。也是一种创建型模式。 Builder(抽象建造者):接口、抽象类,一般包括builderPartX()和getResult...

2019-03-13 22:06:04

阅读数 77

评论数 0

常用设计模式——抽象工厂模式

个人整合学习自 《Java设计模式》 刘伟 编著 模式概述 抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形式。抽象工厂模式与工厂方法模式最大的区别在于,工厂方法模式针对的是一个产品,而抽象工厂模式针对的是多个/一组产品,常见的用途是换皮肤(皮肤里面有很多组件,对应一组产品) ...

2019-03-12 17:59:20

阅读数 85

评论数 0

Java面向对象设计原则

个人学习整合自 《Java设计模式》 刘伟 编著 面向对象设计原则 目的是软件的可维护性和可复用性。 最常见的有以下七个。 1. 单一职责原则 Single Responsibility Principle(SRP) 一个对象一个只包含单一的职责,并且该职责被完整地封装在一个类中。 比如...

2019-03-11 23:56:50

阅读数 90

评论数 0

Java 快速排序

  快排本质上也是交换排序。不过对比交换排序的只能一直替换相邻元素的费劲。快排使用双向检索交换。好久不写,漏洞百出。常见的数组下标越界问题。 package xyz.cglzwz.question_bank; public class QuickSort { public static vo...

2019-03-10 11:36:25

阅读数 91

评论数 0

常用设计模式——工厂方法模式

个人整合学习自 《Java设计模式》 刘伟 编著 工厂方法模式   工厂方法模式是简单工厂模式的延续,它集成了简单工厂模式的优点,同时还弥补了简单工厂模式的不足。工厂方法模式是使用频率最高的设计模式之一。是很多开源框架和API类库的核心模式。如常见的日志记录工具SLF4J。 实现   其实...

2019-03-08 21:32:22

阅读数 72

评论数 0

Java对象未初始化,可以调用对象类的静态方法

package xyz.cglzwz.question_bank.simple; public class StaticTest { public static void sayHi() { System.out.println("hi"); } ...

2019-03-07 12:33:16

阅读数 91

评论数 0

Java集合remove重载方法越界问题

Java集合,如List,有remove方法,但是这是一对重载方法 package xyz.cglzwz.question_bank.collectionandmap; import java.util.ArrayList; import java.util.List; public clas...

2019-03-04 23:52:58

阅读数 75

评论数 0

常用设计模式——简单工厂模式

个人整合学习自 设计模式(菜鸟教程) youlookwhat大佬的GitHub仓库 工厂模式 在youlookwhat大佬的Github博客提到工厂模式有好几种 静态工厂模式:也就是常用的XxxUtil.method() 这种公共类的静态方法,比较简单。 简单工厂模式:通过专门定义一个类来...

2019-03-04 23:31:37

阅读数 92

评论数 0

Java值传递和引用传递

引用传递 package xyz.cglzwz.question_bank; public class DeliverTest { public static void main(String[] args) { StringBuffer a = new StringBuffer(&am...

2019-03-04 20:55:07

阅读数 64

评论数 0

常用设计模式——外观模式

整合学习自 设计模式(菜鸟教程) youlookwhat大佬的GitHub仓库 外观模式 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到...

2019-03-04 20:26:53

阅读数 89

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭