Windows 类addWindowStateListener添加指定的窗口焦点侦听器,以从此窗口接收窗口事件。 如果l为null,则不会抛出异常,并且不执行任何操作。WindowAdapter抽象适配器类接收窗口事件。 此类中的方法为空。 此类存在的目的是方便创建侦听器对象。扩展此类可创建WindowEvent侦听器并重写所需事件的方法。 (如果要实现WindowListener界面,你必须定义在它所有的方法。此抽象类定义空对他们的所有方法,这样你就可以只需要针对所关心的事件重写方法。)
请求此 Component 获取输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。此 Component 对于所要许可的请求而言必须是不可显示的、可聚焦的和可见的并且其所有祖先(除了顶层 Window 以外)必须是可见的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此 Component 接收 FOCUS_GAINED 事件前,开发人员永远不能假定此 Component 是焦点所有者。如果由于此 Component 的顶层 Window 没有成为获得焦点的窗口而拒绝.
背景使用 IDEA 开发时黄色预警:This inspection searches for redundant class fields that can be replaced with local variables,if all local usages of a field are preceded by assignments to that field,the field can be removed and its usages replaced with local variables
对于Service和DAO类,基于SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl的后缀与接口区别 public interface DemoService{ void f();}public class DemoServiceImpl implements DemoService { @Override public void f(){ System.out.println("hello world"); }}.
你以为学生邮箱过期了,没法使用了?看到没 renew!我们还能免费续杯!完成了,o( ̄▽ ̄)d!
强制在一个 switch 块内,每个 case 要么通过 continue/break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个default 语句并且放在最后,即使它什么代码也没有。注意 break 是退出 switch 语句块,而 return 是退出方法体。修正:...
在build.gradle文件中添加国内镜像repositories { maven{ url'http://maven.aliyun.com/nexus/content/groups/public/'} }
jQuery.ajax()提供的 jQuery.ajax() 的 callback 函式其中有 4 個 callbacks:beforeSendcompleteerrorsuccess当Ajax request 送出到完成,按照:1、beforeSend2、success or error3、complete调用你定义的 callback 函式,不管成功或者失敗beforeSend 及 complete定义的的 callbacks 都会被调用success 或 error 的 ca
一、文件与文件系统1.1 文件是什么文件是对磁盘的抽象所谓文件是指一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系文件内容的意义:由文件建立者和使用者解释1.2 如何设计一个文件系统这里
选中待测类,快捷键ctrl + shift + t,选择Create New Test弹出对话框的下面member内勾选要测试的方法,点击ok
1 消息积压问题追溯系统某部分出现性能问题,来不及处理上游发的消息,导致消息积压。消息积压是正常现象,积压越来越多就需要处理了。就像一个水库,日常蓄水是正常的,但下游泄洪能力太差,导致水库水位一直不停的上涨,这个就不正常了。2 积压的开发警示防范于未然,平时使用MQ时,如何优化代码才能避免消息积压?若线上已出现积压,如何处理最好?3 性能优化性能的优化主要在生产者和消费者这俩业务逻辑。MQ自身性能,作为API使用者,无需过于关注。因大多MQ业务,MQ本身处理能力远大于业务系统。主流MQ.
JMQ为了提升整个流程的处理性能,使用了一个“近乎无锁”的设计,这里面其实隐含着两个信息点。第一个是,在消息队列中,“锁”是一个必须要使用的技术。第二个是,使用锁其实会降低系统的性能。那么,如何正确使用锁,又需要注意哪些事项呢?今天我们就来聊一聊这个问题。我们知道,使用异步和并发的设计可以大幅提升程序的性能,但我们为此付出的代价是,程序比原来更加复杂了,多线程在并行执行的时候,带来了很多不确定性。特别是对于一些需要多个线程并发读写的共享数据,如果处理不好,很可能会产出不可预期的结果,这肯定不是我们想要的
锁是有一定性能损失的,如果发生过多锁等待,将会非常影响程序性能。在特定情况可使用硬件同步原语替代锁,保证和锁一样数据安全,同时更好性能。使用硬件同步原语来代替锁,在一个日志上(你可以理解为消息队列中的一个队列或者分区),保证严格顺序的前提下,实现了多线程并发写入。今天,我们就来学习一下,如何用硬件同步原语(CAS)替代锁?硬件同步原语(Atomic Hardware Primitives)由计算机硬件提供的一组原子操作,较常用的原语主要是CAS和FAA两种。CAS(Compare and Swa
1 数据压缩意义Kafka使用数据压缩,最高可提升约几十倍吞吐量。数据压缩不仅可节省存储空间,还可用于提升网络传输性能。这种使用压缩提升系统性能的方法,不仅在MQ使用,日常开发也可。比如传输大量数据或要在磁盘、数据库中存储较大数据,这些情况下,都可考虑使用数据压缩提升性能,还能节省网络带宽和存储空间。2 数据压缩适用场景进程间通过网络传输数据是不是需要压缩?不压缩直接传输耗时: 传输未压缩数据的耗时使用数据压缩耗时: 压缩耗时 + 传输压缩数据耗时 + 解压耗时压缩快还是不压缩快呢?不好说。
使用消息队列的时候,遇到的大部分问题,更多的是Producer和Consumer,即MQ客户端。以最新的release-4.7.1分析。客户端是个单独的Module,在rocketmq/client从UT看Producer API阅读源码,不推荐从入口开始看到底,毕竟你也看不到底。而应该带着问题分析源码:Producer是如何发消息的。推荐从UT单元测试用例入手。因为UT用例都是测试代码中的一个小流程。规范的开源框架,单元测试覆盖率都很高,很容易找到我们所需流程所对应的用例。因此从这些用例入手
有的同学经常发现自己 github 的图片显示不出来了。安装任何需要依赖 github 时都报错。原来是 github 的一些域名的 DNS 解析被污染,导致DNS 解析过程无法通过域名取得正确的IP地址。那么打开 https://www.ipaddress.com/ 输入访问不了的域名获得正确的 IP 地址最后在本机的 host 文件中添加199.232.68.133 raw.githubusercontent.com199.232.68.133 user-images.githubuser
BeanDefinition 的合并1.BeanDefinition 有父子关系,有个属性叫parentName,通过parentName可以设置BeanDefinition的父子关系 2.为什么要设置BeanDefinition的父子关系,因为子类可以继承父类的属性,抽出共性,跟java的继承有点像 3.BeanDefinition 的合并过程就是将父子关系的 BeanDefinition 属性合并起来,如果有相同的就使用子类的属性值例子: AnnotationConfigAppl...
1 克隆Spring源码github 下载可能较慢,可以先 fork 官方仓库到自己的账户下,再从 gitee 导入。使用 sourceTree 拉取代码到本地。切换到5.2.x版本git checkout origin/5.2.x添加阿里云镜像将下面这行代码粘贴到build.gradle文件中的repositories节点下即可 ,maven { url "http://maven.aliyun.com/nexus/content/groups/public" }预先编译sprin
简介:commit message应该如何写才更清晰明了?团队开发中有没有遇到过让人头疼的git commit?本文分享在git commit规范建设上的实践,规定了commit message的格式,并通过webhook在提交时进行监控,避免不规范的代码提交。背景Git每次提交代码都需要写commit message,否则就不允许提交。一般来说,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作……但是在日常开发中,大家的commit message千奇..
1 辨析敏捷/持续集成/持续交付/DevOps2 持续集成2.1 为何会有持续集成?敏捷开发解决了单体应用的开发和每日构建的问题。而单体应用拆分成微服务,就需要有一套方案来组装这些微服务,使其成为可协作运行的微服务架构。该方案就是持续集成。持续集成强调开发人员提交新代码后,立刻进行构建、(单元)测试。根据测试结果,可确定新代码和原有代码是否正确集成在一起。2.2 持续集成的定义持续交付的鼻祖Martin Fowler提出:持续集成(Continous Integration)是一种软件
随着业务发展,带来的是洪水般流量的增加,为确保系统可靠稳定,我们也得会“大禹治水”。万变不离其宗,目前主流其实方案都可归类如下三种思想:Scale-out:分治思想,采用集群将流量分散于各服务器。像数据库一主多从、分库分表、存储分片都是其思想的实际方案体现。缓存:使用缓存来提高系统的性能,就好比水库,抵御了大部分流量冲击,尽力保证下游的平安异步:有时未处理完成之前,可以让请求先返回,在数据准备好之后再通知请求方,即可在单位时间内处理更多请求。缓存几乎所有服务都会用到缓存,可谓是现实的万金油。缓
进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构。如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好。但很可惜,我没有碰到这样的人,在加入新公司后,带我的人几乎没有花时间给我讲项目,也没有给我安排一些可以熟悉项目的需求。就这样的一个多月时间里,我慢慢开始靠自己的力量熟悉大概十个项目,并在过程中总结了一些方法,借此机会记录一下,并分享给大家。注意,这里的策略并非快速了解一个项目的具体业务,这个不同项目也不一样,无法总结。我的策略是大体了解整个业务线上的所有项目
系统从0到1阶段,为让系统快速上线,通常不考虑分层。但随业务越发复杂,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就需动全身等问题。系统分层迫在眉睫,可是要如何对架构进行分层?1 什么是架构分层?软件工程中常见的设计方式,将整体系统拆分成N个层次,每个层次有独立的职责,多个层次协同提供完整的功能。初学 JavaWeb 时一般要求设计成 MVC 架构。另外一种常见的分层方式是将整体架构分为表现层(Web)展示数据结果和接受用户指令的,是最靠近用户的一层;逻辑层(Service)复
敏捷项目管理架构Release(发布,单位为月)Sprint(冲刺,单位为周)Issue(问题)类型Epic( 史诗)Story( 用户故事)Task(任务)Bug(故障)Jira创建Release(发布版本)◆Release(版本)的时间跨度通常为1-3个月◆版本包含多个Sprint (冲刺)◆Release 里会清晰定义需要完成的开发任务...
12 | 序列化与反序列化:如何通过网络传输结构化的数据?2019-08-17 李玥你好,我是李玥。最近有一些同学留言说,感觉这几节课讲的内容和消息关系不大。这里我解释一下,因为我们课程其中的一个目的,是让同学们不仅会使用消息队列,还可以通过对消息队列的学习,在代码能力上有一个提升,具备“造轮子”的能力。这样,你对消息队列的理解才能足够的深入,而不只是浮于表
孤独,所有人都是孤独的,没有人能独自超脱这一切。——玛娅·安杰格0 前言LinkedBlockingQueue - 单链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素从队列尾部插入,从队首获取元素.是深入并发编程的基础数据结构.1 继承体系Queue 作为最基础的接口,定义了队列的三大类基本操作:BlockingQueue 即在 Queue 的基础...
把√打上!
1 现象在Swing程序中,经常能看到如下这种代码:2 疑惑:为何用invokeLater,而不直接调用大多数Swing的API非线程安全,不能在任意地方调用,应该只在EDT中调用。Swing的线程安全靠事件队列和EDT来保证。EventQueue的派发机制由单独的一个线程 - 事件派发线程(EDT)管理。Swing将GUI请求放入一个事件队列中执行。通过EDT,使得非线程安全的Sw...
最聪明的人是最不愿浪费时间的人。——但丁0 前言由数组支持的有界阻塞队列。此队列对元素按 FIFO(先进先出)进行排序。队首是已在队列中最长时间的元素。队尾是最短时间出现在队列中的元素。新元素插入到队列的尾部,并且队列检索操作在队列的开头获取元素。这是经典的“有界缓冲区”,其中固定大小的数组包含由生产者插入并由消费者提取的元素。一旦创建,容量将无法更改。试图将一个元素放入一个完整的队列...
Hi,久违了,冬至数九寒冬,安静了近三个月的PDMan,在这个寒冷的圣诞冬日里,终于热气腾腾的冒起来了,可以拿出来给大家见面了。 希望可以温暖到大家,就像 @红薯 照亮大家一样。 在工作任务那么紧急的情况下,我们依然坚持抽出一些时间,牺牲业余时间,不断优化升级这款产品。 这是又一次用心的雕琢:我们解决了 (https://gitee.com/robergroup/pdman)上的所有ISSUE。...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号