![个人头像照片](https://ucc.alicdn.com/avatar/img_ca0e03de5c20dbdbde2e618b9d6e6b0e.jpg)
Eclipse RCP开发者。
暂时未有相关通用技术能力~
阿里云技能认证
详细说明昨天接到市场的一个bug 在生成xml文件的时候整个Eclipse RCP卡死了 提到xml就不得不想到著名的“GFW导致DTD访问无能而Dom4j做DTD校验如果发现有网络能通会一直等到超时所以超级慢”的bug。
MonacoEditor是微软提供的代码编辑器 vscode即是使用它作为编辑器。 它的开发语言是ts,可以嵌入到浏览器中。 代码提示或者说代码补全功能是我们经常需要定制的部分。 目前它提供的快捷键是ctrl+space,和win10以下的操作系统的默认中英文切换是冲突的。
多边形连通和最小生成树本质上是一样的,问题在于确定权值。 下面算法由js实现,演示由svg提供。 let shown='hidden'; //核心算法 let caculatePath=function(){ ...
monaco editor是vscode的御用编辑器。 功能非常强大,使用方便轻巧,对js\ts等等语言支持都良好,能方便的扩展以支持其他语言或者自定义的特性。 夸了这么多,这里只说它一个问题: 这货和vue不兼容。
CopyOnWriteArrayList是java1.5版本提供的一个线程安全的ArrayList变体。 在讲解5.1.1ArrayList的时候,有说明ArrayList的fail-fast特性,它是指在遍历过程中,如果ArrayList内容发生过修改,会抛出ConcurrentModificationException。
设想这么一个需求: user.name = '张三' 对user数据进行操作的时候,同步的修改页面上的用户名为张三。 这就是个数据绑定的概念。 针对这类需求 ES5提供了Object.
WeakHashMap是种弱引用的HashMap,这是说,WeakHashMap里的key值如果没有外部强引用,在垃圾回收之后,WeakHashMap的对应内容也会被移除掉。 1.1 Java的引用类型 在讲解WeakHashMap之前,我们需要了解Java中引用的相关类: ReferenceQueue,引用队列,与某个引用类绑定,当引用死亡后,会进入这个队列。
深秋的阳光低斜沉郁,从窗外斜斜地投进石板地面上。棉被压在身上很沉,头也很沉,眼皮开阖间,只能看见阳光切开了屋子,大颗的灰尘在较为明亮的一侧起起伏伏,像是下在屋里的雪,有点冷。 “你醒了?”女人的声音不知道从哪里传来,平淡安稳如同来自往昔的问候,让人想哭。
孟越睁开眼,万物俱籁,夜沉如磐,听不见老人的鼻息,待了片刻,意识逐渐清明,有一只手缓缓揭开了夜色,描出屋子的轮廓,老人睡在窗边背朝着他,窗外是潮水般铺开的黑云,在遥远的天边,一颗孤星悬在北方,冷得煞人。
我们宿舍的墙壁是老旧的红砖,室内有简单的装修,但年久失刷,现在各处都是锈水一样的污斑。 老楼的顶用的是好瓦片,不漏雨,所以湿气是从墙壁内部出来的。 这个结论的证据就是那些外墙裸露的红砖,到春天的时候摸上去润润的,从下往上爬了半墙或绿或棕的苔藓。
张小北不时会想起那个冬日的早晨,阴郁而多霾。 但他又切切实实地记得,在分别的时候,她在阳光里用力地挥动胳膊,有只镯子在手臂上闪闪发亮. 太耀眼了,张小北总是看不清她的模样。那之后的很多细节都还能想起,尽管真假难辨。
要如何安抚漫长的夜晚 用心消逝 勿拖泥带水 在哭泣后我直起身 像一把尺子 斥喝它 不,你什么都拿不走。
人群吵闹 像密西西比春天的大马哈鱼 一样拥挤 鱼群还有确切的终点 我数着路灯 不知道明天的风 又要吹往哪里呢
8月开始断断续续的制作这个web gef,没有任何依赖,完全原生js开发,目前已经完成了雏形,基本上可以在项目里应用了。 下图展示的是demo1的效果,包括拖拽,生成连线,点击生成\取消墙体,整个demo开发时间60分钟不到。
org.eclipse.debug.core.model.ISourceLocator A source locator locates source elements for stack frames.
SVG的文本可以沿着一条自定义的Path来排布,比如曲线、圆形等等,使用方式如下所示(来源MDN): We go up, then we go down, then up again 效果如下所示: 使用很简单,在下定义一个path,在元素下添加一个textPath引用,即可达到效果。
SVG开发里有个较为少见的问题。 对x1=x2或者y1=y2的直线(line以及path),比如: 如果,stroke里使用的是渐变效果,那么,在各种浏览器上都会出现同一个BUG,这条线消失了。
在讲解PriorityQueue之前,需要先熟悉一个有序数据结构:最小堆。 最小堆是一种经过排序的完全二叉树,其中任一非终端节点数值均不大于其左孩子和右孩子节点的值。 可以得出结论,如果一棵二叉树满足最小堆的要求,那么,堆顶(根节点)也就是整个序列的最小元素。
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在2004年10月发布泛型之前,Java就证明了它是可以实现运行时泛型的。
数组和泛型容器有什么区别 要区分数组和泛型容器的功能,这里先要理解三个概念:协变性(covariance)、逆变性(contravariance)和无关性(invariant)。 若类A是类B的子类,则记作A ≦ B。
泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的。由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS名誉教授)首次提出,自实现始,就成为了ANSI/ISO C++重要标准之一。
李学文从教学楼里出来,滚烫的热气从衣服上熨过,他吓了一跳。 他没敢抬头,一路捂着脑袋小跑,路上经过的几个女学生笑着跟他打招呼,女学生们穿着遮不住大腿的短裙,他一边点头回应,一边把目光尽量往上挪远点儿,他一路跑一路跑,身后传来一串儿笑声。
痛苦被装进玻璃房子里,咬紧牙关,忍住了所有呻吟 时间融化了,在地板上粘稠滞涩的流淌 沿着走廊 世界被分成三块儿 没有声音的十平米,隔着玻璃看默剧的我 窗外还是夏天,有个欢快的声音从远处跃起 它撞在窗上,没有进来
上一篇关于面试的谈得太多,招聘只好另起一章。 以当前的现状来看,优秀的毕业生会先被知名的大企业刷过一轮,那么,相对不知名的企业招聘负责人要如何找到适合自己公司的技术人才呢?询问过一些毕业生之后,我总结了如下经验。
大约四年前,刚开始负责招聘的时候,偶会在面试者身上花去近40分钟的时间,面试完之后,又不能描绘出该应聘人的全貌,有了几次不成功的招聘之后,我做了一些总结,本篇文章将从应聘和招聘两个方面分别讨论。 (一)找工作指南 1. 控制面试节奏 面试官在考察什么?专业知识,始终都是专业知识。
万物皆对象。 如果面试官问你“什么是面向对象”,万物皆对象就是个很好的开场白。 在网上认识的一些新人(甚至部分有三五年经验的老鸟),在谈论到面向对象\面向过程的时候,就陷入了误区。 误区一,面向对象和面向过程是非此即彼的对立方,相互不兼容。
说几个风马牛不相及的词儿,spring的依赖注入定义,hibernate的数据映射定义,XML的DTD,再就是我们常说的报文格式。 如果对它们不甚了解,请参考章节一《想到哪儿写到哪儿》。有了基本的了解之后,应当隐约之中有一种感觉,“它们很相似”。
如何让画面动起来? 都知道动画的原理,想想看跑马灯,在任意时刻把跑马灯按停,面对眼睛的那附图,它叫做帧(Frame)。 帧,就是一串儿连贯动画里的单个截面。 玩儿游戏的人知道,要达到基本流畅的水准,30fps(frame per second)就够了,达到毫无察觉的流畅,可能要到60fps,那么,界面以30~60次每秒的频率重绘,画面不就动起来了? 在本篇文章里,将解释常见的基础概念生命周期到底是怎么回事。
说UI能延展出一丢丢的东西来,光java就有swing,swt/jface乃至javafx等等UI toolkit,在桌面上它们甚至都不是主流,在web端又有canvas、svg等等。 基于这些UI工具包\框架,又产生了大量通用的或者业务性的UI框架,比如Draw2d、GEF、easyUI乃至国内的EChart、白鹭等等。
一、想到哪儿写到哪儿 给公司新员工培训,和网上的新手做交流,我最先强调的都是基础。 基础有什么用? 1、节省沟通成本 有天,java群里来了个新人,上来就提了一个问题: “我代码跑不起来,怎么办?” 这一看就是还没入门,没办法提供具体的信息。
由于SWT取用的是系统文字size,有个简单方式可以获取一整段包含中文\英文\数字\特殊字符的字符串宽度。 即是利用Label的computeSize方法,我们知道Label的大小可以随着内容文字伸缩,即可以推断,Label可以拿到准确的文字宽度。
Eclipse debug文档翻译 运行一个程序需要添加launch configurable,在自定义launch configuration的时候会指定模式,比如run,debug,profile等等。
早前写了一篇关于A*算法的文章:《算法:Astar寻路算法改进》 最近在写个js的UI框架,顺便实现了一个js版本的A*算法,与之前不同的是,该A*算法是个双向A*。 双向A*有什么好处呢? 我们知道,A*的时间复杂度是和节点数量以及起始点难度呈幂函数正相关的。
JDT中有两套Java文件模型映射。 其核心类\接口分别为: org.eclipse.jdt.core.IJavaElement和org.eclipse.jdt.core.dom.ASTNode IJavaElement是Java Element的通用“协议”,即是对Java包、类、方法、变量、注解等等元素的规范。
自己扩展CNF之后,导航栏的删除、复制、黏贴等快捷键失效了,在网上搜索了半天,结果最终不如自己看源码。 本篇文章的主要目的不止于解决快捷键失效,更在于如何处理类似的问题,如何利用debug快速定位。这种解决问题的思路能帮助我们更加理解他人的代码,快速熟悉一套陌生的框架。
重写EditPart#getDragTracker 即可替换拖拽事件。
他把手指扭在一起,又把头撑在交叉的手指上,过了半刻,他抬起头。 迟钝,茫然,他的眼睛转向别处,他张了张嘴,叙述的欲望在喉结处上去又下来。 “一言难尽啊。”他说。 然后,他笑了笑。
有很多学习SWT的同志遇到过一类需求,为某些控件添加了诸如MouseListener、KeyListener之类的监听,然后呢,希望使用代码模拟鼠标、键盘来执行点击、按键等操作。 首先说明一点,这是可以实现的,但是99%的需求都不应该这样实现。
从e4开始,eclipse rcp界面具备了深度自定义的能力。 但是在eclipse3.7.2上,几乎没有提供能够用于修改界面的外部接口。 这里介绍一种方式来自定义你自己的eclipse rcp。
当图形边缘碰触时,会产生一条帮助拖拽的辅助线 这里需要三个类: 1、SnapToGeomotry 2、SnapToGuide(非必须) 3、SnapFeedbackPolicy
网格和标尺效果如上图所示。 添加网格比较简单,也可以自己实现,主要思路是为编辑器添加一个GridLayer。但是还是建议参考eclipse自己的GEF样例来实现。 需要注意两个部分: 1、重写org.
该题是用来公司教学,并无难度。用于说明算法效率差异以及循环和递归的效率差别。 package practice; import java.math.BigDecimal; /** * @author caiyu * @date 2014-12-3 */ publ...
此题非常水,不做说明。 package practice; import java.io.BufferedInputStream; import java.util.Scanner; /** * @author caiyu * @date 2014-12-2 */ ...
等待是个体力活。 你醒来看见蚊子在天花板上起起落落,像是新添的斑点灰迹。 走廊传来脚步声,经过了你门外。 你看见阳光照在床沿边,分辨不出是清晨还是黄昏。 一只鸽子停在阳台上,阳台晒满好久不收的衣服。
这题比较简单,重点应该在如何减少循环次数。 package practice; import java.io.BufferedInputStream; import java.
这题有直接套公式的解法 这里提供一个O(n)的解法。 package practice; import java.io.BufferedInputStream; import java.
该题太水,没必要参考。 package practice; import java.io.BufferedInputStream; import java.util.Map; import java.
直到刚才都还醒着。 要下雨了,风刮得窗子一阵阵响。我走到窗边,夜色深沉如铁,长街悄无声响,一个人影融在夜幕里,几无分辨。 有个想法冒出来,立刻出门,现在就去,在半夜的长沙走走。 一直走到下雨了,走到世界散落成光影。
package practice; import java.util.Scanner; public class TreasureHunt { public static void main(String[] args) { Scanner cin = new Scanner(System.
package practice; import java.io.BufferedInputStream; import java.util.Arrays; import java.util.Scanner; /** * * 一个街区有很多住户,街区的街道只能为东西、南北两种方向。