java技术圈 为您找到相关结果 281

华为敏捷项目管理实践分享

当前,企业面对的商业环境瞬息万变,移动、社交、物联网、云计算、大数据、AI等蓬勃发展。新技术突飞猛进的同时,新业务形态越来越复杂、需求变化越来越快、软件规模越来越大、交付周期越来越短、开发和维护成本越来越高,产品交付的风险急剧增加,传统研发模式无法适应快速变化的市场需求。 为了应对这些挑战,业界软件开发模式经历了持续的改进和变迁,从20世纪60年代作坊式开发,到80年代过程控制模型,到2001年敏捷、DevOps模式探索。 ![image.png](https://img-blog.csdnimg.cn/20200426140606397.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR...阅读全文

博文 2020-04-26 06:47:06 CORNERSTONE

敏捷开发的那些事

“敏捷”这个词近几年非常火,经常会有人问:“我们应该怎样开始做敏捷?”或者:“能不能来帮我们推一下敏捷?敏捷有很多实践,管理的、工程的都有,但敏捷绝非我们看到的站会、持续集成、TDD等那么简单,真正的敏捷体系是从理念到文化的一次变革。 敏捷作为一种快速应对需求变化的新兴软件开发模式,正受到越来越广泛的关注和应用。它强调快速验证,表现为快速上线、快速根据反馈迭代产品。 今天在这里给大家推荐一款敏捷项目管理平台—CORNERSTONE,那么,究竟是什么样的呢?让我们一起来体验吧~ CORNERSTONE 敏捷项目管理解决方案特点为全角色、全流程、支持中大型团队: 提供包含项目管理、产品、运营、研发、测试等各职能角色在内的完整解决方案。 为需求管理、迭代规划、进度跟踪等经典 Scrum 环节提供工...阅读全文

博文 2020-03-19 07:11:56 CORNERSTONE

Lenky个人站点 » Socket选项系列之TCP_CORK

从上一节的内容可以看到,选项TCP_NODELAY是禁用Nagle算法,即数据包立即发送出去,而选项TCP_CORK与此相反,可以认为它是Nagle算法的进一步增强,即阻塞数据包发送,具体点说就是:TCP_CORK选项的功能类似于在发送数据管道出口处插入一个“塞子”,使得发送数据全部被阻塞,直到取消TCP_CORK选项(即拔去塞子)或被阻塞数据长度已超过MSS才将其发送出去。举个对比示例,比如收到接收端的ACK确认后,Nagle算法可以让当前待发送数据包发送出去,即便它的当前长度仍然不够一个MSS,但选项TCP_CORK则会要求继续等待,这在前面的tcp_nagle_check()函数分析时已提到这一点,即如果包数据长度小于当前MSS &&((加塞 || …)|| …),那么缓存数据而不立即...阅读全文

博文 2021-11-05 07:20:05 www.lenky.info

TCP UDP包大小分析

1.关于MTU MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64Bytes最大不能超过1518Bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。 由于以太网EthernetII最大的数据帧是1518Bytes这样,刨去以太网帧的帧头(DMAC目的MAC地址48bits=6Bytes + SMAC源MAC地址48bits=6Bytes + Type域2Bytes)14Bytes和帧尾CRC校验部分4Bytes那么剩下承载上层协议的地方也就是Data域最大就只能有1500Byte...阅读全文

编码转换问题_网络_qq_38409944的博客

注意:iso-8859-1是JAVA网络传输使用的标准字符集,而gb2312是 标准中文字符集,当你作出提交表单等需要网络传输的操作的时候, 就需要把 iso-8859-1转换为gb2312字符集显示,否则如果 按浏览器的gb2312格式来解释iso-8859-1字符集的话, 由于2者不兼容, 所以会 是乱码. UTF-8三个字节代表一个char iso-8859-1一个字节代表一个char GBK两个字节代表一个char 一直以为,java中任意unicode字符串,可以使用任意字符集转为byte[]再转回来,只要不抛出异常就不会丢失数据,事实证明这是错的。 经过这个实例,也明白了为什么 getBytes()需要捕获异常,虽然有时候它也没有捕获到异常。 言归正传,先看一个实例。 用ISO-...阅读全文

博文 2020-04-26 03:55:23 CSDN博客

你分得清楚Maven的聚合和继承吗? - 陈树义

用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标。对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西。但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系。而继承则是为消除重复的配置。下面通过一个例子深入聊聊这两者的关系。 聚合 Maven 的聚合其实就是项目与子项目的表示,其存在的意义在于快速构建项目。例如我们有一个淘宝商城项目,这个项目有账号子项目和邮件子项目。在这个时候我们需要在 Maven 中表达这种项目归属关系,那么我们就可以用 Maven 的聚合来进行配置。 我们首先创建一个 taobao-aggregator 项目,表示是一个聚合项目。之后再创建两个子项目,分别为:com.chenshuyi.mail 和 com.chenshuyi.acco...阅读全文

博文 2020-05-22 12:45:31 博客园

Flink 自定义触发器实现带超时时间的 CountWindow - 云+社区

Flink 的 window 有两个基本款,TimeWindow 和 CountWindow。 TimeWindow 是到时间就触发窗口,CountWindow 是到数量就触发。如果我需要到时间就触发,并且到时间之前如果已经积累了足够数量的数据;或者在限定时间内没有积累足够数量的数据,我依然希望触发窗口业务,那么就需要自定义触发器。import org.apache.flink.api.common.functions.ReduceFunction; import org.apache.flink.api.common.state.ReducingState; import org.apache.flink.api.common.state.ReducingStateDescriptor; ...阅读全文

博文 2021-10-22 03:26:02 腾讯云

学了很多项目管理工具和方法,为何还是难以成功?

83版《西游记》里有一个桥段:金角大王拿着宝葫芦对孙悟空说:“我叫你名字,你敢答应吗?”孙悟空不知情,回了句:”爷爷在此“。然后就被吸到宝葫芦里去了,金角大王成功拿到一血。这个桥段相信大家已经看过无数遍了。有一次我在讲课讲到某工具时,不知怎的就想起了它,于是现场做了个测试:我把手里的话筒比作宝葫芦,找前排的某帅哥问:“我叫你名字你敢答应吗?”对方答:“不敢”。在全场的哄笑声中,我想我已经清楚地将想表达的东西给表达了出来。需要声明的是:对方不是事先预定的群演。只不过,倘若将对方的反应放在《西游记》电视剧拍摄项目的现场,导演组大概会有点崩溃:”这个戏真没法拍下去了,我亮出法宝,喊出口诀,他应该表现的很惊恐啊,亦或是无所谓的样子,接着不小心答应一声,被吸入到宝葫芦里去,他怎么能不按剧本出牌呢?”可...阅读全文

博文 2020-04-29 07:24:22 CORNERSTONE

Intellij-Idea远程调试

前言 线上(真-线上/测试环境)代码出了问题,总是要在本地复现,然后debug,这个过程是在是不太友好,而且线上的很多数据本地没有,经常耽误好久的时间来同步数据. 前文介绍过一种在运行时DEBUG及修改Java代码的方式,阿里开源java动态追踪工具 Arthas的使用.其主要针对的是线上修改代码及JVM实时查看. 但是有很多问题,我们更想要IDE的DEBUG功能,比如线上跑了NPE,本地没有办法复现因为可能是线上的数据问题,这时候就会想,如果可以在线上这里打个断点,就知道是谁为空了. 幸好Java是有远程DEBUG的支持的,而且Intellij-IDEA也实现了相关的功能,今天学习并且记录一下. 启动参数 首先在服务端使用JVM的-Xdebug参数启动Jar包. java -Xdebug ...阅读全文

博文 2021-01-26 02:49:11 Java代码

Nagle算法-

说明:本文是最近项目上使用tcp时遇到的问题找到的原因,参考了网络上的几篇文章整理出来,如有版权问题,请留言。 Nagle 算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用程序系统的效率。 **1. ** Nagle算法的规则 (可参考tcp_output.c文件里tcp_nagle_check函数注释): 1)如果包长度达到MSS(MSS是最大分段大小Maxitum Segment Size ,MTU是最大传输单元Maxitum Transmission Unit),则允许发送; 2)如果该包含有FIN,则允许发送; 3)设置了TCP_NODELAY选项,则允许发送; 4)未设置TCP_CORK选项时,若所有发出...阅读全文

博文 2021-11-05 07:39:41 TCP缓冲区管理算法

PM必须懂的4种项目管理模型

瀑布模型、迭代模型、增量模型、原型模型,是项目管理常见的四种模型。每种模型都有其优缺点和适用的项目类型。项目经理针对不同的项目用对模型,才能起到事半功倍的作用。 一、瀑布模型 用瀑布模型做项目就像古代匠雕刻玉石,先有完整的设计图,然后按部就班往前推进,中间不能出一点差错,追求的是“一次成型”。 这就是瀑布模型,最基本也最常用的一种项目管理模型,又称线性模型。 采用瀑布模型的项目依照该模型选定的阶段顺序进行,每一个阶段的工作产品都是下一个阶段工作的输入,每一个阶段只有在上一个阶段通过检查,确认完成后才开始新的阶段工作。 ![image.png](https://img-blog.csdnimg.cn/20200506142607355.png?x-oss-process=image/water...阅读全文

博文 2020-05-06 07:58:52 CORNERSTONE

【Netty】(8)---理解ChannelPipeline - 雨点的名字

ChannelPipeline ChannelPipeline不是单独存在,它肯定会和Channel、ChannelHandler、ChannelHandlerContext关联在一起,所以有关概念这里一起讲。 一、ChannelHandler 1、概念 先看图 ChannelHandler下主要是两个子接口 ChannelInboundHandler(入站): 处理输入数据和Channel状态类型改变。 适配器: ChannelInboundHandlerAdapter(适配器设计模式) 常用的: SimpleChannelInboundHandler ChannelOutboundHandler(出站): 处理输出数据 适配器: ChannelOutboundHandlerAdapter...阅读全文

博文 2021-09-02 12:29:43 博客园

MySQL中IN子查询会导致无法使用索引 - MSSQL123

今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试。)随后动手按照他说的做了一个表来测试验证,发现MySQL的IN子查询做的不好,确实会导致无法使用索引的情况(IN子查询无法使用所以,场景是MySQL,截止的版本是5.7.18) MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time datetime, other_col varchar(100) ) 建一个存储过程插入测试数据,测试数据的特点是pay_id可重复,这里在存储过程处理...阅读全文

博文 2021-02-24 06:23:47 博客园

MySQL中lock tables和unlock tables浅析 - 潇湘隐者

MySQL中lock tables和unlock tables浅析 在MySQL中提供了锁定表(lock tables)和解锁表(unlock tables)的语法功能,ORACLE与SQL Server数据库当中没有这种语法。相信刚接触MySQL的人,都想详细、深入的了解一下这个功能.下面就尽量全面的解析、总结一下MySQL中lock tables与unlock tables的功能,如有不足或不正确的地方,欢迎指点一二。 锁定表的语法: LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE} [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRIT...阅读全文

博文 2021-06-09 03:48:47 博客园

聊聊MyBatis缓存机制

前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理MyBatis缓存机制。本次分析中涉及到的代码和数据库表均放在GitHub上,地址: mybatis-cache-demo 。目录本文按照以下顺序展开。一级缓存介绍及相关配置。一级缓存工作流程及源码分析。一级缓存总结。二级缓存介绍及相关配置。二级缓存源码分析。二级缓存总结。全文总结。一级缓存一级缓存介绍在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的S...阅读全文

博文 2020-11-02 07:13:23 美团技术团队

To B产品经理的核心技能是什么?

ToB产品经理的核心技能,确实跟其他产品经理的核心技能有很大的区别。 核心能力1:对行业、职能、流程的了解、尊重。 在ToB领域,对线下业务的了解,永远都是第一位。请永远记住,你所做的事情,就是把线下已经固有存在了很多年的业务,用更加合适的方式在线上描述出来,优化掉,做好,再呈现到客户面前。 随之而来的是,必须建立起对线下已有行业、职能、流程的了解和尊重。请永远记住,你被苹果砸中一个念头迸发出的所谓创新——其实早已经被这些行业、职能、流程验证过千百遍了。甚至可以说一句——如果你不了解这个行业,不要谈创新。对面的客户很可能不懂什么叫互联网、大数据、云计算、生态、平台、闭环等等各种高大上的词,但他对行业、职能、流程的熟悉程度,是你的百倍以上。你跟他谈产品、创新,请先把自己对行业、职能、流程的了解...阅读全文

博文 2020-07-01 07:21:52 CORNERSTONE

30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制 - 小林coding

前言 前一篇「硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题」得到了很多读者的认可,在此特别感谢你们的认可,大家都暖暖的。 来了,今天又来图解 TCP 了,小林可能会迟到,但不会缺席。 迟到的原因,主要是 TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了。。。 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 正文 相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是通过序列号、确认应答、重发控制、连接管理以及窗口控...阅读全文

博文 2021-08-26 04:09:30 博客园

Hive笔记之collect_list/collect_set(列转行) - CC11001100

Hive中collect相关的函数有collect_list和collect_set。 它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重。 做简单的实验加深理解,创建一张实验用表,存放用户每天点播视频的记录:create table t_visit_video ( username string, video_name string ) partitioned by (day string) row format delimited fields terminated by ','; 在本地文件系统创建测试数据文件:张三,大唐双龙传 李四,天下无贼 张三,神探狄仁杰 李四,霸王别姬 李四,霸王别姬 王五,机器人总动员 王五,放牛班的春...阅读全文

博文 2021-10-12 08:49:22 博客园

多个单列索引和联合索引的区别详解_数据库_Abysscarry的博客

背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录数为63188): CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `userId` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '用户id,创建任务时的userid', `mobile` varchar(24) NOT NULL D...阅读全文

博文 2020-04-21 04:36:55 CSDN博客

一次系统调用开销到底有多大?

首先说说系统调用是什么,当你的代码需要做IO操作(open、read、write)、或者是进行内存操作(mmpa、sbrk)、甚至是说要获取一个系统时间(gettimeofday),就需要通过系统调用来和内核进行交互。无论你的用户程序是用什么语言实现的,是php、c、java还是go,只要你是建立在Linux内核之上的,你就绕不开系统调用。图1 系统调用在计算机系统中的位置大家可以通过strace命令来查看到你的程序正在执行哪些系统调用。比如我查看了一个正在生产环境上运行的nginx当前所执行的系统调用,如下:# strace -p 28927 Process 28927 attached epoll_wait(6, {{EPOLLIN, {u32=96829456, u64=1403123...阅读全文

博文 2020-06-10 07:12:06 知乎

如何选择合适的小型项目管理工具?

小型项目通常是指工作量在三人至十几人之间的项目,这类项目一般是放任自流,少有管理,通常具有投资少、人员少、时间紧、需求不明确等特点。 如借助小型项目管理工具,可以节省大量时间和避免资源浪费,提高项目效率。 下面介绍小型项目团队常遇到的问题,以及项目管理工具是如何有效协助解决这些问题的,与大家一起分享交流。 因资源有限,小型项目团队很少设有专职的项目经理控制项目进度,以至于规范的项目管理方法常常被忽视。 另一方面,由于小型项目直接沟通成本较低,过多的项目管理流程反而使得项目执行过程变得更繁琐。 也正因为这样,在项目管理过程中,小型项目团队大多数会遇到以下问题: 1、项目质量、进度跟不上 小型项目执行过程中,缺乏统一的项目工作流程,不知道先做什么再做什么,没有一一个详细的规划,往往等事情发生了才...阅读全文

博文 2020-07-16 07:43:02 CORNERSTONE

tcpdump抓包规则命令大全-kxt314

说是大全其实我列取得只是一些常用的命令与大家分享。 下面的例子全是以抓取eth0接口为例,如果不加”-i eth0”是表示抓取所有的接口包括lo。 1、抓取包含10.10.10.122的数据包 # tcpdump -i eth0 -vnn host 10.10.10.122 2、抓取包含10.10.10.0/24网段的数据包# tcpdump -i eth0 -vnn net 10.10.10.0/24 3、抓取包含端口22的数据包# tcpdump -i eth0 -vnn port 22 4、抓取udp协议的数据包# tcpdump -i eth0 -vnn udp 5、抓取icmp协议的数据包# tcpdump -i eth0 -vnn icmp 6、抓取arp协议的数据包# tcpd...阅读全文

博文 2021-05-29 06:44:06 ChinaUnix博客

资源又不足?项目资源该如何有效管理?

项目管理过程中常常面对很多挑战,资源管理是项目经理日常烦心事之一。 项目资源过剩会给企业带来浪费,资源过少又会影响项目目标的达成。 另外,项目资源在不同的组织间分配不平衡或者在时间上分配不平衡也会对项目造成不利的影响。 因此,项目资源的管理不仅仅只是简单的资源使用记录,而是应该贯穿项目从计划到后期的整个过程。 项目资源的合理分配和使用可以有效地推动项目成功,需要相关人员互相配合、互相监督。但由于项目具有不确定性和复杂性,项目资源管理亦有不少难度。 所以,企业应该借助合适的项目管理工具开展管理活动,以便全面掌控项目资源的情况和资源的状态,让资源分配更高效、资源管理更便捷。 本文将以CORNERSTONE项目管理工具为例,向你展示如何用做好资源管理: 一、分析资源情况 首先,资源管理要在项目规划...阅读全文

博文 2020-07-31 06:42:35 CORNERSTONE

Spring事务传播行为详解 - 个人文章

JerryTse 386 Spring事务传播行为详解 java spring 事务 更新于 2019-09-30 约 29 分钟 前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文对七种事务传播行为做详细介绍,内容主要代码示例的方式呈现。 基础概念 1. 什么是事务传播行为? 事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时...阅读全文

博文 2020-04-24 02:38:10 SegmentFault 思否

netty中Pipeline的ChannelHandler执行顺序案例详解 - 田志良

一、netty的Pipeline模型 netty的Pipeline模型用的是责任链设计模式,当boss线程监控到绑定端口上有accept事件,此时会为该socket连接实例化Pipeline,并将InboundHandler和OutboundHandler按序加载到Pipeline中,然后将该socket连接(也就是Channel对象)挂载到selector上。一个selector对应一个线程,该线程会轮询所有挂载在他身上的socket连接有没有read或write事件,然后通过线程池去执行Pipeline的业务流。selector如何查询哪些socket连接有read或write事件,主要取决于调用操作系统的哪种IO多路复用内核,如果是select(注意,此处的select是指操作系统内核...阅读全文

博文 2021-09-02 12:28:20 博客园

linux下core dump【总结】 - Rabbit_Dale

1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在自己的linux系统上面写个非法程序测试,并没有产生core问题?这又是怎么回事呢?今天在ngnix的源码时候,发现可以在程序中设置core dump,又是怎么回事呢?在公司发现生成的core文件都带有进程名称、进程ID、和时间,这又是怎么做到的呢?今天带着这些疑问来说说core文件是如何生成,如何配...阅读全文

博文 2020-12-03 07:16:21 博客园

为什么你的项目总是延期?

随着项目管理在企业中的广泛应用,它对于企业内部效率以及经济效益的提升扮演着越来越重要的角色。 有调查分析显示,使用软件辅助管理项目的企业中,项目可以顺利验收的比率是92.5%,而不使用软件管理的,项目成功率只有72.7%。 保质保量按时完成项目是每个项目管理者最基本的目标,但在实际项目开展工作中,类似以下情况导致工期延时的例子比比皆是。企业应该怎样做才能使项目如期按质按量完成? 小王是某小公司的项目经理,前段时间公司在筹备一个内部项目,项目正式实施后被公司任命为项目经理。 但使小王感到无奈的是:其他职能部门的经理虽然为该项目安排了时间和人手,但他们同时也忙于其他项目,而且部分经理有时需要使用同样的项目资源。 项目进度已经落后预期一个月,但还没有成型的单元完成,公司管理层对项目拖期问题很关注,...阅读全文

博文 2020-06-01 07:50:17 CORNERSTONE

Alibaba之jvm

前言 在开始之前,我们先来模拟一下以下的场景: 小李:“小明,你的接口没有返回数据,麻烦帮忙看一下?” 小明:“我这边的数据也是从别人的服务器中拿到的,但是我不确定是因为逻辑处理有问题导致没有结果,还是因为我依赖的服务有问题而没有返回结果,我需要确认一下。” 小明:“哎呀,线上没有日志,我需要加个日志上个线。” 30 分钟之后…… 小明:“不好意思,日志加错地方了……稍等……” 接来下隆重登场的就是本文的主角 JVM SandBox 了。基于 JVM SandBox,我们可以很容易地做到在不重新部署应用的情况下,给指定的某些类的某些方法加上日志功能。当然,动态加日志仅仅是 JVM SandBox 可以应用的一个小小的场景,JVM SandBox 的威力远不在于此。套用官方的话说就是"JVM-...阅读全文

博文 2021-06-29 02:14:20 sandbox初体验 | 码农家园

Java动态编译执行_zleven的博客

在某些情况下,我们需要动态生成java代码,通过动态编译,然后执行代码。JAVA API提供了相应的工具(JavaCompiler)来实现动态编译。下面我们通过一个简单的例子介绍,如何通过JavaCompiler实现java代码动态编译。 一、获取JavaCompiler JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 获取JDK提供的java编译器,如果没有提供编译器,则返回null; 二、编译 //获取java文件管理类 StandardJavaFileManager manager = compiler.getStandardFileManager(null, null, null); //获取java文件对象...阅读全文

博文 2021-07-09 03:49:10 CSDN博客_java 编译执行

排序算法(六)

前言我们在上篇文章 排序算法(五)-双调排序 介绍了双调排序,今天我们来看一下另一种排序算法 —— TimSort。TimSort是Tim Peters发明的一种混合排序,最早是Python语言的内置排序算法。关于Python内置的TimSort描述可以查看该 文档。关于TimSort的理论基础,可以查看该篇论文 Optimistic Sorting and Information Theoretic Complexity,这篇论文论证了插入排序和归并排序合并后效率提高的可能性,即TimSort的理论基础。Java自Java 7 后加入TimSort,其实现参考了Python版本的实现,我们可以在JDK源码的util包下找到它,java.util.TimSort,这个class不是publi...阅读全文

博文 2021-08-18 12:35:11 TimSort | SakuraTears的博客

TCP 异常关闭研究分析 - 云+社区

更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer作者:谢代斌研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。各个游戏接入都存在一定的掉线问题,而且有的游戏项目的掉线比例还比较高,现在互娱自研游戏的网络接入基本上都用的是tconnd和ProtocalHandler组件(该组件请参考附件的《TSF4G_ProtocalHandler开发指导手册》),因此参与其掉线原因分析和研究。在参与A项目的掉线问题研究分析过程中,tconnd增加了玩家每个连接的流水日志和ProtocalHandler增加了每个连接的Qos上报日志,...阅读全文

博文 2021-11-05 09:40:44 腾讯云

深入理解JDK动态代理机制

深入理解JDK动态代理机制本文是基于jdk1.8来对动态代理的底层机制进行探究的 Java中代理的实现一般分为三种:JDK静态代理、JDK动态代理以及CGLIB动态代理。在Spring的AOP实现中,主要应用了JDK动态代理以及CGLIB动态代理。但是本文着重介绍JDK动态代理机制,CGLIB动态代理后面会接着探究。 代理一般实现的模式为JDK静态代理:创建一个接口,然后创建被代理的类实现该接口并且实现该接口中的抽象方法。之后再创建一个代理类,同时使其也实现这个接口。在代理类中持有一个被代理对象的引用,而后在代理类方法中调用该对象的方法。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持...阅读全文

博文 2021-06-12 14:15:56 简书

中小企业团队敏捷产品开发流程的最佳实践

在敏捷开发过程中,一个产品或者一个发布版本通常是由多个冲刺来实现的,每个冲刺都能增量交付可运行的系统功能,实现客户价值。每个冲刺都是从冲刺规划开始,团队成员一起商定冲刺目标和明确交付的系统功能,并进行冲刺执行,实现系统功能,再通过冲刺评审和回顾对实现的产品功能和过程进行检视,期望在下一冲刺过程中对产品功能和过程进行改进和完善。 一、冲刺流程 冲刺包括冲刺规划、冲刺执行、冲刺评审、冲刺回顾四大过程。冲刺是从规划开始,团队成员必须就本次冲刺的目标和计划达成共识,全体成员在整个冲刺过程按照既定的计划奔着这个目标前进,每天对取得的成果和面临的问题进行沟通讨论。冲刺结束阶段,在冲刺评审活动中召集相关利益相关方一起演示产品功能并获得反馈,获得的反馈是产品列表和下一阶段冲刺规划内容的重要来源。在冲刺回顾活...阅读全文

博文 2020-04-22 07:20:23 CORNERSTONE

Spring中集成Groovy的四种方式_蓝天之枫

groovy是一种动态脚本语言,适用于一些可变、和规则配置性的需求,目前Spring提供ScriptSource接口,支持两种类型,一种是 ResourceScriptSource,另一种是 StaticScriptSource,但是有的场景我们需要把groovy代码放进DB中,所以我们需要扩展这个。 ResourceScriptSource:在 resources 下面写groovy类 StaticScriptSource:把groovy类代码放进XML里 DatabaseScriptSource:把groovy类代码放进数据库中 工程模块为: ResourceScriptSource groovy的pom groovy-all阅读全文

博文 2021-07-09 02:58:30 CSDN博客

UDP 单播、广播和多播 - Rimond_Jing

使用UDP协议进行信息的传输之前不需要建议连接。换句话说就是客户端向服务器发送信息,客户端只需要给出服务器的ip地址和端口号,然后将信息封装到一个待发送的报文中并且发送出去。至于服务器端是否存在,或者能否收到该报文,客户端根本不用管。 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。 通常我们讨论的udp的程序都是一对一的单播程序。本章将讨论一对多的服务:广播(broadcast)、多播(multicast)。对于广播,网络中的所有主机都会接收一份数据副本。对于多播,消息只是发送到一...阅读全文

博文 2021-08-26 04:06:01 博客园

为什么用MQTT不用TCP长连接透传 | 文章

前言在接触到MQTT之后,总是会有疑问,为什么用MQTT不用TCP长连接透传?看起来【TCP长连接+私有协议透传】和【MQTT+业务主题】似乎都能达到同样的目的,甚至用MQTT会使得设备端逻辑实现、APP端逻辑实现、云端架构实现更加复杂。那么为什么物联网还要使用MQTT协议呢?一、MQTT相比于TCP长连接的优势1、协议更标准MQTT是标准的RFC协议,相比于私有协议而言更加标准。好处在于:(1)协议非常完整,能够马上用于生产。各端实现同一套协议之后,就能进行通信;私有协议还需要进行大量的验证,看有无缺陷或欠考虑的地方等。(2)协议的标准化带来大量的开源组件,降低开发难度。随着物联网+5G生态越来越好,开源组件越来越多,可以减少重复编码量。(3)标准协议利于第三方接入。当第三方设备、平台想要...阅读全文

博文 2021-08-26 07:24:00 BEWINDOWEB

Prometheus核心概念:一图了解Counter和Gauge两种数据指标类型的区别_Hugo Lei的博客

目录 1 背景 2 何为Counter类型? 2.1 Counter定义 3 何为Gauge类型? 3.1 Gauge定义 4 Counter和Gauge的对比 1 背景 Prometheus整体架构分为Server端和Exporter端,而Exporter通常是基于官方的SDK开发(例如Go SDK)。 这里要明确一个概念:数据指标类型只是Client端的一个概念,用于维护Metric的生产,以方便在业务上有所区分。 而Server端是不区分数据类型的,因为所有的数据都是一种格式,也即时间序列 Metric value, timestamp. 2 何为Counter类型? Counter是一个累计类型的数据指标,它代表单调递增的计数器。 其值只能在重新启动...阅读全文

博文 2023-01-03 02:55:22 CSDN博客_prometheus gauge

大数据开发之Hive篇12-Hive正则表达式

备注: Hive 版本 2.1.1 Table of Contents一.Hive 正则表达式概述1.1 字符集合:1.2 边界集合:1.3 重复次数集合:1.4 组合操作符:1.5 匹配操作符:1.6 转义操作符:二.Hive 正则表达式案例2.1 regexp2.2 regexp_replace2.2.1 截取字符串中汉字部分2.2.2 截取字符串中数字部分2.2.3 截取字符串中字母部分2.2.4 截取字符串中的大小写字母和数字2.3 regexp_extract参考: 一.Hive 正则表达式概述 Hive的正则表达式虽然没有关系型数据库的正则表达式那么强大,但是一样可以解决HQL开发过程中的诸多问题,数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代...阅读全文

博文 2022-07-21 03:55:26 墨天轮

统计去重后的数量 | Elasticsearch: 权威指南

速度优化edit 如果想要获得唯一值的数目, 通常 需要查询整个数据集合(或几乎所有数据)。 所有基于所有数据的操作都必须迅速,原因是显然的。 HyperLogLog 的速度已经很快了,它只是简单的对数据做哈希以及一些位操作。 但如果速度对我们至关重要,可以做进一步的优化。 因为 HLL 只需要字段内容的哈希值,我们可以在索引时就预先计算好。 就能在查询时跳过哈希计算然后将哈希值从 fielddata 直接加载出来。 预先计算哈希值只对内容很长或者基数很高的字段有用,计算这些字段的哈希值的消耗在查询时是无法忽略的。 尽管数值字段的哈希计算是非常快速的,存储它们的原始值通常需要同样(或更少)的内存空间。这对低基数的字符串字段同样适用,Elasticsearch 的内部优化能够保证每个唯一值只计...阅读全文

博文 2022-03-23 12:53:58 Elastic

刨根问底,Kafka消息中间件到底会不会丢消息

大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉。 为避免上面类似情况的发生,除了做好补偿措施,更应该在系设计的时候充分考虑各种异常,设计一个稳定、高可用的消息系统。 认识 Kafka 看一下维基百科的定义 Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka是一个分布式的、可划分的、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 Kafka 架构 Kafka 的整体架构非常简单,是显式分布式架构,主要由 Producer、Broker(Kafka) 和 Consumer 组成。 Kafka架构(精简版) Pr...阅读全文

博文 2022-07-08 07:45:39 爱代码爱编程

大数据开发之Hive篇19-Hive分区表详解

备注: Hive 版本 2.1.1 Table of Contents一.Hive分区表概述二.静态分区2.1 单分区测试2.2 多分区测试三.动态分区3.1 动态分区测试3.2 动态分区和静态分区混合使用四.分区的其它操作4.1 恢复分区4.2 归档分区4.3 交换分区参考 一.Hive分区表概述 数据分区的概念以及存在很久了,通常使用分区来水平分散压力,将数据从物理上移到和使用最频繁的用户更近的地方,以及实现其目的。 hive中有分区表的概念,我们可以看到分区具重要性能优势,而且分区表还可以将数据以一种符合逻辑的方式进行组织,比如分层存储 Hive官方网站对Hive partition的介绍: 可以使用Partitioned BY子句创建分区表。一个表可以有一个或多个分区列,并且为分区列...阅读全文

博文 2022-07-14 11:01:16 墨天轮

spring扩展点之一:BeanFactoryPostProcessor和BeanPostProcessor - duanxz

2、BeanPostProcessors接口 public interface BeanPostProcessor { /** * Apply this BeanPostProcessor to the given new bean instance before any bean * initialization callbacks (like InitializingBean's {@code afterPropertiesSet} * or a custom init-method). The bean will already be populated with property values. */ //实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化...阅读全文

博文 2022-04-28 09:19:49 博客园

干货 | Elasticsearch Reindex性能提升10倍+实战_铭毅天下的博客

Elasticsearch 最少必要知识实战教程直播回放 #1、reindex的速率极慢,是否有办法改善? 以下问题来自社区:https://elasticsearch.cn/question/3782 问题1:reindex和snapshot的速率极慢,是否有办法改善? reindex和snapshot的速率比用filebeat或者kafka到es的写入速率慢好几个数量级(集群写入性能不存在瓶颈),reindex/snapshot的时候CPU还是IO使用率都很低,是不是集群受什么参数限制了reindex和snapshot的速率? reindex不管是跨集群还是同集群上都很慢,大约3~5M/s的索引速率,会是什么原因导致的? 问题2:数据量几十个G的场景下,elasticsearch rei...阅读全文

博文 2022-04-02 10:12:57 CSDN博客_es reindex速度

时序数据库技术体系-时序数据存储模型设计 – 有态度的HBase/Spark/BigData

时序数据库技术体系中一个非常重要的技术点是时序数据模型设计,不同的时序系统有不同的设计模式,不同的设计模式对时序数据的读写性能、数据压缩效率等各个方面都有不同程度的影响。这篇文章笔者将会分别针对OpenTSDB、Druid、InfluxDB以及Beringei这四个时序系统中的时序数据模型设计进行介绍。 在详细介绍时序数据模型之前,还是有必要简单回顾一下时序数据的几个基本概念,如下图所示: 上图是一个典型的时序数据示意图,由图中可以看出,时序数据由两个维度坐标来表示,横坐标表示时间轴,随着时间的不断流逝,数据也会源源不断地吐出来;和横坐标不同,纵坐标由两种元素构成,分别是数据源和metric,数据源由一系列的标签(tag,也称为维度)唯一表示,图中数据源是一个广告数据源,这个数据源由publ...阅读全文

博文 2022-04-15 07:21:46 hbasefly.com

大型互联网公司一般都会要求消息传递最大限度的不丢失,比如用户服务给代金券服务发送一个消息,如果消息丢失会造成用户未收到应得的代金券,最终用户会投诉。为避免上面类似情况的发生,除了做好补偿措施,更应该在系设计的时候充分考虑各种异常,设计一个稳定、高可用的消息系统。认识 Kafka看一下维基百科的定义Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,之后成为 Apache 项目的一部分。Kafka是一个分布式的、可划分的、冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。Kafka 架构Kafka 的整体架构非常简单,是显式分布式架构,主要由 Producer、Broker(Kafka) 和 Consumer 组成。Kafka架构(精简版)Producer(生...阅读全文

博文 2022-07-08 07:45:07 mp.weixin.qq.com

Hive典型应用场景之行列转换_小飞鱼_bigdata的博客

在使用Hive处理数据时,经常遇到行列转换的场景,本文将对Hive的行列转换操作做详细的说明。 行转列## 1)多行转多列 假设数据表 row2col: col1 col2 col3 a c 1 a d 2 a e 3 b c 4 b d 5 b e 6 现在要将其转化为: col1 c d e a 1 2 3 b 4 5 6 此时需要使用到max(case … when … then … else 0 end),仅限于转化的字段为数值类型,且为正值的情况。 HQL语句为: select col1, max(case col2 when 'c' then col3 else 0 end) as c, max(case col2 when 'd' then col3 else 0 end) a...阅读全文

博文 2022-03-27 05:58:44 CSDN博客_hive 行列互换

Hive中的explode使用全解

本节主要介绍explode和posexplode函数的使用。1、数据介绍 主要包括三列,分别是班级、姓名以及成绩,数据表名是default.classinfo。2、单列Explode 首先来看下最基本的,我们如何把student这一列中的数据由一行变成多行。这里需要使用split和explode,并结合lateral view实现。代码如下:select class,student_name from default.classinfo lateral view explode(split(student,',')) t as student_name 结果如下:3、单列Posexplode 接下来,我们想要给每个同学来一个编号,假设编号就按姓名的顺序,此时我们要用到另一个hive函数,叫做...阅读全文

博文 2022-03-27 05:57:59 知乎

shell脚本中各种括号的区别以及用法 - 云+社区

最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。一、小括号();双小括号(()) 1、单小括号 () 1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)中的comm执行一次,得到其标准输出,再将此输出放到原来命令。# ls a b c # echo $(ls) a b c #echo `ls` a b c 2:用于初始化数组。如:array=(a b c d)[root@localhost ~]# array=(a b c d) [root@localhost ~]# declare -a declare -a array='([0]="a" [1]="b" ...阅读全文

博文 2022-04-06 11:50:13 腾讯云

Elasticsearch 聚合数据结果不精确,怎么破?_铭毅天下的博客

1、实战开发遇到聚合问题 请教一个问题,ES 在聚合的时候发生了一个奇怪的现象聚合的语句里面size设置为10和大于10导致聚合的数量不一致,这个size不就是返回的条数吗?会影响统计结果吗?dsl语句摘要(手机敲不方便,双引号就不写了): aggs:{topcount:{terms:{field:xx,size:10}}} 就是这个size,设置10和大于10将会导致聚合结果不一样,难道是es5.x的bug吗? 以上是实战中的真实问题,基于这个问题,有了本篇文章。 本文探讨的聚合主要指:terms 分桶聚合。下图为分桶 terms 聚合示意图。 从一堆多分类的产品中聚合出 TOP 3 的产品分类和数量。TOP3 结果: 产品 Y:4 产品 X:3 产品 Z:2 2、前提认知:Elastic...阅读全文

博文 2022-07-12 06:05:41 CSDN博客

使用nonce巩固接口签名安全_猿天地的技术博客_51CTO博客

前面我们有讲过如何进行API的安全控制,其中包括数据加密,接口签名等内容。详细可以参考我下面两篇文章:-《前后端API交互如何保证数据安全性》请添加链接描述-《再谈前后端API签名安全?》请添加链接描述在签名部分,通过时间戳的方式来判断当前请求是否有效,目的是为了防止接口被多次使用。但是这样并不能保证每次请求都是一次性的,今天给大家介绍下如何保证请求一次性?首先我们来回顾一些时间戳判断的原理:客户端每次请求时,都需要进行签名操作,签名中会加上signTime参数(当前请求时间戳)。HTTP请求从发出到达服务器的正常时间不会很长,当服务器收到HTTP请求之后,首先进行签名检查,通过之后判断时间戳与当前时间相比较,是否超过了一定的时间,这个时间我们可以自行决定要多长,比如1分钟,2分钟都可以,时...阅读全文

博文 2022-03-23 12:55:02 blog.51cto.com