技术总结
yangguoqi
技术架构,科技改变生活。
展开
-
2345工作方法论
2345方法论坦诚踏实、坚持努力,就是2345的文化。一名2345人就是坚守和践行2345文化的人。一以贯之,以终为始,2345就能不断发展,不断强大。原创 2020-08-23 21:07:42 · 579 阅读 · 0 评论 -
二三四五工作方法论
二三四五方法论关于价值观、管理原则和工作方法 一、2345文化 坦诚 简单 直接 二、2345人才价值观 做人要诚实,做事要踏实 工作有激情,能投入,敢担当 能抓住重点,执行力强,注重细节 有强烈的学习欲望和学习能力 三、2345人才鉴定法 文化和价值观第一 文化和价值观有问题,一票否决 能原创 2020-08-23 21:02:34 · 552 阅读 · 0 评论 -
指标统计组件Esper简介
1. CEP(Complex Event Processing, 复杂事件处理)事件(Event)一般情况下指的是一个系统中正在发生的事,事件可能发生在系统的各个层面上,它可以是某个动作,例如客户下单,发送消息,提交报告等,也可以是某种状态的改变,例如温度的变化,超时等等。通过对这些事件进行分析,可以提取出其中有效的信息。 根据维基百科的定义,事件处理(Event processing)指的是跟踪系统中发生的事件,分析事件中的信息并从中得到某种结论。而复杂事件处理,则是结合多个事件源中的事件,从中推断出原创 2020-08-14 17:29:07 · 643 阅读 · 0 评论 -
内存溢出生成.hprof文件
jdk使用自带工具查看.hprof文件bin:/data/spring-cloud/bindeploy:/datajar:/data/spring-cloud/lib/xxx-web-5.0.0-SNAPSHOT.jarapp:xxx-webapollo:-Dapp.id=xxx-web -Dapollo.meta=http://apollo-config-test1.niwodai.net -Dapollo.cacheDir=/data/spring-cloud/apollojvm:-XX:原创 2020-06-18 17:22:59 · 1819 阅读 · 0 评论 -
Spring DeferredResult异步操作使用场景
为什么使用DeferredResult? 场景 Demo代码 测试 1. 超时 2. 进行setResult 为什么使用DeferredResult?API接口需要在指定时间内将异步操作的结果同步返回给前端时;Controller处理耗时任务,并且需要耗时任务的返回结果时;当一个请求到达API接口,如果该API接口的return返回值是DeferredResult,在没有超时或者DeferredResult对象设置setResult时,接口不会返回,但是Servlet容器线程原创 2020-06-17 19:53:51 · 1313 阅读 · 0 评论 -
汉字排序最简实现
public static void main(String[] args) { List<String> strings = Arrays.asList("张三", "王五", "安娜", "李四", "张志东", "杨天华"); List<String> sorted = strings.stream().sorted(Collator.getInstance(Locale.CHINESE)).collect(Collectors.toList.原创 2020-06-14 09:52:58 · 1058 阅读 · 0 评论 -
Spring Cloud Alibaba 开源背后的故事 | 开源中国专访
Spring Cloud Alibaba 开源背后的故事 | 开源中国专访发表于2018-11-28 | 作者 中间件小姐姐 | 分类于Spring Cloud Alibaba | 本文系开源中国对 Spring Cloud Alibaba 项目组的专访,首发于开源中国,阿里巴巴中间件授权转载。受访嘉宾是Spring Cloud Alibaba 项目组负责人 姬望。Java 界最近发生了一件大事,Spring Cloud 官方宣布阿里开源 Spring Cloud...原创 2020-06-11 16:07:27 · 754 阅读 · 0 评论 -
JAVA知识汇总
其他面试题类型汇总:Java校招极大几率出的面试题(含答案)----汇总几率大的网络安全面试题(含答案)几率大的多线程面试题(含答案)几率大的源码底层原理,杂食面试题(含答案)几率大的Redis面试题(含答案)几率大的linux命令面试题(含答案)几率大的杂乱+操作系统面试题(含答案)几率大的SSM框架面试题(含答案)几率大的数据库(MySQL)面试题(含答案)几率大的JVM面试题(含答案)几率大的现场手撕算法面试题(含答案)临时抱佛脚必备系列(含答案)原文链接:https://b原创 2020-06-11 11:27:06 · 149 阅读 · 0 评论 -
十分钟入门RocketMQ
十分钟入门RocketMQ发表于2017-01-12 | 本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题。然后本文将介绍RocketMQ的架构设计,以期让读者快速了解RocketMQ。消息中间件需要解决哪些问题?Publish/Subscribe发布订阅是消息中间件的最基本功能,也是相对于传统RPC通信而言。在此不再详述。Me...原创 2020-06-11 09:32:04 · 169 阅读 · 0 评论 -
Mybatis主键技巧-@KeySequence type = IdType.INPUT 优先级高于setId(XXX) 业务主键的设置方式
实体增加 @KeySequence 注解,@TableId 增加 type = IdType.INPUT 后,就不能再使用业务自定义主键值了。@KeySequence@TableName("urge_weixi_apply_record")@ApiModel(value="UrgeWeixiApplyRecord实体", description="添加微信流水")public class UrgeWeixiApplyRecord implements Serializable { pri原创 2020-06-10 17:26:48 · 28257 阅读 · 0 评论 -
TiDB适用和不适用场景
TiDB 的典型的应用场景是:(1) 原业务的 MySQL 的业务遇到单机容量或者性能瓶颈时,可以考虑使用 TiDB 无缝替换 MySQL。TiDB 可以提供如下特性:吞吐量、存储和计算能力的水平扩展水平伸缩时不停服务强一致性分布式 ACID 事务(2) 大数据量下,MySQL 复杂查询很慢。(3) 大数据量下,数据增长很快,接近单机处理的极限,不想分库分表或者使用数据库中间件等对业务侵入性较大、对业务有约束的 Sharding 方案。(4) 大数据量下,有高并发实时写入、实时查询、实转载 2020-05-28 19:55:40 · 1824 阅读 · 0 评论 -
Java世界最常用的工具类库
Apache CommonsApache Commons有很多子项目,常用的项目如下项目 作用BeanUtils 对Java Bean进行各种操作,复制对象,属性Codec 处理常用的编码,解码Collections 扩展Java集合框架的操作I/O 输入/输出工具的封装Lang java基本对象(java.lang) 方法的工具类包BeanUtils提供了一系列对java bean的操作,读取和设置属性值等@Datapublic class U...原创 2020-05-23 10:29:43 · 147 阅读 · 0 评论 -
JVM 垃圾回收机制(GC)总结
一、概述说起垃圾收集(Garbage Collection),大多数人都会想起Java,这项技术从始至终伴随着Java的成长,但事实上GC的出现要早于Java,它诞生于1960年MIT的使用动态分配和垃圾回收技术的语言Lisp。经过近60年的发展,目前内存的动态分配和内存回收技术已经非常成熟了,所有的垃圾回收已经自动化,经过迭代更新,自动回收也经过反复优化,效率和性能都非常可观。为什么要了解GC?在你排查内存溢出、内存泄漏等问题时,以及程序性能调优、解决并发场景下垃圾回收造成的性...转载 2020-05-20 20:02:14 · 446 阅读 · 0 评论 -
深入理解synchronized底层原理,一篇文章就够了!
前言 一、synchronized的特性 1.1 原子性 1.2 可见性 1.3 有序性 1.4 可重入性 二、synchronized的用法 三、synchronized锁的实现 3.1 同步方法 3.2 同步代码块 四、synchronized锁的底层实现 五、JVM对synchronized的优化 5.1 锁膨胀 5.1.1 偏向锁 5.1.2 轻量级锁 5.1.3 重量级锁 5.2 锁消除 5.3 锁粗化 5.4 自旋锁与自适转载 2020-05-20 19:58:55 · 451 阅读 · 0 评论 -
sleep() 和 wait() 有什么区别?
sleep() 和 wait() 有什么区别?sleep()和wait()都是线程暂停执行的方法。1、这两个方法来自不同的类分别是Thread和Object,sleep方法属于Thread类中的静态方法,wait属于Object的成员方法。2、sleep()是线程类(Thread)的方法,不涉及线程通信,调用时会暂停此线程指定的时间,但监控依然保持,不会释放对象锁,到时间自动恢复;wait()是Object的方法,用于线程间的通信,调用时会放弃对象锁,进入等待队列,待调用notify()/noti原创 2020-05-20 19:51:43 · 540 阅读 · 0 评论 -
并行和并发哪个好?并行和并发的概念和区别
摘要:并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。 并行介绍 并行在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。 并发介绍 并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。 并发的实质是一个物理CPU(也可以多个物理CPU) 在若干转载 2020-05-20 19:45:29 · 7518 阅读 · 4 评论 -
解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
1、传统的在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: 1 2 3 Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path)); 这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序抛出OutOfMe.原创 2020-05-19 10:10:27 · 2702 阅读 · 0 评论 -
系统架构
【幽冥系统架构】原创 2020-05-08 14:38:21 · 120 阅读 · 0 评论 -
设计模式
美团设计模式应用https://tech.meituan.com/2020/03/19/design-pattern-practice-in-marketing.html原创 2020-05-08 10:31:02 · 175 阅读 · 0 评论 -
(2020史上最全总结,跳槽必看)Java虚拟机(JVM)面试题
Java内存模型我们开发人员编写的Java代码是怎么让电脑认识的首先先了解电脑是二进制的系统,他只认识 01010101比如我们经常要编写 HelloWord.java 电脑是怎么认识运行的HelloWord.java是我们程序员编写的,我们人可以认识,但是电脑不认识Java文件编译的过程程序员编写的.java文件由javac编译成字节码文件.class:(为什么编译成cl...原创 2020-05-06 22:38:24 · 495 阅读 · 0 评论 -
一致性哈希算法原理
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人...原创 2020-05-06 22:05:41 · 153 阅读 · 0 评论 -
Java多线程编程,多线程看这一篇就够了
Java给多线程编程提供了内置的支持。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语—进程:一个进程包括由操作系统分配的内存空间,包含一个或者多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后...原创 2020-05-06 21:58:29 · 356 阅读 · 0 评论 -
【BAT面试】几率大的Redis面试题(含答案)
其他面试题类型汇总:Java校招极大几率出的面试题(含答案)----汇总几率大的网络安全面试题(含答案)几率大的多线程面试题(含答案)几率大的源码底层原理,杂食面试题(含答案)几率大的Redis面试题(含答案)几率大的linux命令面试题(含答案)几率大的杂乱+操作系统面试题(含答案)几率大的SSM框架面试题(含答案)几率大的数据库(MySQL)面试题(含答案)几率大的JVM面...原创 2020-04-28 13:44:05 · 642 阅读 · 1 评论 -
【BAT面试】JDK8 JVM内存模型
内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异结合JVM虚拟机规范,来探讨经典的JVM内存布局运行时内存:1 Program Counter Register (程序计数寄存器)Reg...原创 2020-04-27 15:12:32 · 217 阅读 · 0 评论 -
【BAT面试必备】一致性哈希算法原理 一文吊打面试官
一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人...原创 2020-04-26 19:42:24 · 178 阅读 · 0 评论 -
BAT面试2019最新整理JAVA面试题附答案
点击上方“全球Java架构师集中营”,选择“设为星标”技术文章第一时间送达!包含的模块:本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MyS...原创 2020-04-25 21:50:03 · 4166 阅读 · 1 评论 -
阿里P8架构师谈:成为架构师必须掌握的七大知识点(含面试题)总结
不想当将军的兵不是好兵,就程序猿不想当架构师就不是好的程序员!Java架构师主要需要做哪些工作呢?1、负责设计和搭建软件系统架构(平台、数据库、接口和应用架构等),解决开发中各种系统架构问题。2、优化现有系统的性能,解决软件系统平台关键技术问题攻关、核心功能模块设计、核心代码开发。3、在项目需求不断细化的工程中校正整体的架构设计,以及详细模块拆分设计。4、营造技术学习氛围,带领...转载 2020-04-25 21:41:23 · 350 阅读 · 0 评论