为您找到搜索结果:8628个
<转>Eclipse插件开发中的Java项目模型
http://developer.51cto.com/art/200906/130101.htm Eclipse插件开发中的Java项目模型是比较重要的内容,也是我们最长接触到的。本文将详细的为大家讲解Java项目模型。 Java项目模型Eclipse的项目有很多种,包括Java项目、C++项目、C#项目等,每种项目都有自己的特点。我们最常接触到的项目就是Java项目,因此我们重点来讲解一下Java项目模型。Java模型是用来对与创建、编辑和构建Java程序相关联的对象进行建模的一些类。Java模型类是在org.eclipse.jdt.core中定义的。这些类实现资源的特定于Java的行为,并进一步将Java资源分解成模型元素。 Java模型的继承结构图如图3.13所示。图3.13 Java模型的继承结构图IJavaElement的子类接口还有IMethod、IType等,在这里没有全部列出。Java模型中的类结构比较简单,级次也非常少。下面介绍一下各个接口的主要方法。(1) IJavaElementexists:判断元素是...
java虚拟机垃圾回收机制
一、相关概念 基本回收算法引用计数( ReferenceCounting ) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为 0 的对象。此算法最致命的是无法处理循环引用的问题。标记 - 清除( Mark-Sweep ) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。复制( Copying ) 此算法把内存空间划为两个相等的区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。次算法每次只处理正在使用中的对象,因此复制成本比较小,同时复制过去以后还能进行相应的内存整理,不过出现 " 碎片 " 问题。当然,此算法的缺点也是很明显的,就是需要两倍内存空间。标记 - 整理(&nb...
Java集合框架比较
数组类Array是Java中最基本的一个存储结构。它用于存储一组连续的对象或基本类型的数据。其中的元素的类型必须相同。Array是最有效率的一种:1、效率高,但容量固定且无法动态改变。Array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们Array的容量。2、Java中有一个Arrays类,专门用来操作Array,提供搜索、排序、复制等静态方法。equals():比较两个Array是否相等,Array拥有相同元素个数,且所有对应元素两两相等。fill():将值填入Array中。sort():用来对Array进行排序。binarySearch():在排好序的Array中寻找元素。System.arraycopy():Array的复制。JavaCollectionsFramework成员主要包括两种类型,即:Collection和Map类型。在Java中提供了Collection和Map接口。其中List和Set继承了Collection接口;Vector、ArrayList、LinkedList三个类实现List接口,HashSet、TreeSet实...
<转>java注解实例
java注解实例2009-08-1011:27Java代码packageTest_annotation; importjava.lang.annotation.Documented; importjava.lang.annotation.Inherited; importjava.lang.annotation.Retention; importjava.lang.annotation.Target; importjava.lang.annotation.ElementType; importjava.lang.annotation.RetentionPolicy; /**元注解@Target,@Retention,@Documented,@Inherited** @Target表示该注解用于什么地方,可能的ElemenetTyp...
JavaScript给动态插入的元素添加事件绑定
由于实际的需要,有时需要往网页中动态的插入HTML内容,并在插入的节点中绑定事件处理函数。我们知道,用Javascript向HTML文档中插入内容,有两种方法,一种是在写HTML代码写入JS,然后插入到文档中;另外一种是通过ajax的方式,从服务器获取数据,然后用js把获取的数据经过处理后插入文档中;两种方法各有特点,本文将分析新插入到文档中的元素的事件绑定问题,并假定新插入的对象不做内联的事件绑定(即不用类似<aonclick=””>的形式)。所有的示例将会用到jQuery和原生Javascript。<body><p>第1行内容</p><p>第2行内容</p><p>第3行内容</p><script>varappendhtml=document.createElement("p");appendhtml.innerHTML="这是插入的内容";document.body.appendChild(appendhtml);varnodep=document.g...
数组降维-JavaScript中apply方法妙用
海纳百川,有容乃大1、普通循环转换方式将多维数组(尤其是二维数组)转化为一维数组是业务开发中的常用逻辑,除了使用朴素的循环转换以外,我们还可以利用Javascript的语言特性实现更为简洁优雅的转换。本文将从朴素的循环转换开始,逐一介绍三种常用的转换方法,并借此简单回顾Array.prototype.concat方法和Function.prototype.apply方法。以下代码将以把二维数组降维到一维数组为例。functionreduceDimension(arr){varreduced=[];for(vari=0;i<arr.length;i++){for(varj=0;j<arr[i].length;j++){reduced.push(arr[i][j]);}}returnreduced;}此方法思路简单,利用双重循环遍历二维数组中的每个元素并放到新数组中。2、利用concat转换先来回顾一下MDN上对于该方法的介绍: "concatcreatesanewarrayconsistingoftheelementsintheobjectonwhichitisca...
JavaScript 中的 Function.prototype.bind() 方法
转载自:https://www.cnblogs.com/zztt/p/4122352.htmlFunction.prototype.bind()方法bind()方法的主要作用就是将函数绑定至某个对象,bind()方法会创建一个函数,函数体内this对象的值会被绑定到传入bind()函数的值。例如,在f()函数上调用bind()方法并传入参数obj,即f.bind(obj),这将返回一个新函数,新函数会把原始的函数f()当做obj的方法来调用,就像obj.f()似的,当然这时f()函数中的this对象指向的是obj。简单使用情形一varo={f:function(){varself=this;varfff=function(){console.log(self.value);//此时this指向的是全局作用域global/window,因此需要使用self指向对象o};fff();},value:"HelloWorld!"};o.f();//HelloWorld!上例是我们常用了保持this上下文的方法,把this赋值给了中间变量self,这样在内部嵌套的函数中能够使用self访问到对象...
JavaScript中的反柯里化
转载自:https://www.cnblogs.com/zztt/p/4152147.html柯里化柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。请见我的另一篇博客·浅析JavaScript中的函数currying柯里化反柯里化相反,反柯里化的作用在与扩大函数的适用性,使本来作为特定对象所拥有的功能的函数可以被任意对象所用.即把如下给定的函数签名,obj.func(arg1,arg2)转化成一个函数形式,签名如下:func(obj,arg1,arg2)这就是反柯里化的形式化描述。当然是有个前提的,函数y需要语言上支持鸭子类型,引自维基在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。...在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的走和叫方法...例如,下面的一个简单实现:Function.prototype.uncurrying=func...
JavaScript中的柯里化
转载自:https://www.cnblogs.com/zztt/p/4142891.html何为Curry化/柯里化?curry化来源与数学家HaskellCurry的名字(编程语言Haskell也是以他的名字命名)。柯里化通常也称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果。因此柯里化的过程是逐步传参,逐步缩小函数的适用范围,逐步求解的过程。柯里化一个求和函数按照分步求值,我们看一个简单的例子varconcat3Words=function(a,b,c){returna+b+c;};varconcat3WordsCurrying=function(a){returnfunction(b){returnfunction(c){returna+b+c;};};};console.log(concat3Words("foo","bar","baza"));//foobarbazaconsole.log(concat3WordsCurrying("foo"));//[Func...
JavaScript中的map()函数
概述Array.map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,同时不会改变原来的数组。用法Array.map(callback);示例//简单数组constarr=[1,3,4,5,6,7,8,10];constcube=(num)=>{returnnum*num;}constres=arr.map(cube);//[1,9,16,25,36,49,64,100]//orconstres=arr.map((num)=>{returnnum*num;})//[1,9,16,25,36,49,64,100]//对象数组和构造器constOjbArray=[{name:'a',age:18,isLikeEat:true,isLikeSleep:true},{name:'b',age:19,isLikeEat:true,isLikeSleep:true},{name:'c',age:22,isLikeEat:true,isLikeSleep:true}];constPerson=(target)=>{return{name:target.name...
Javascript中中括号的几种形式
有以下几种形式vararr=[];varb=[1,1,1];varc=b[0];varobj={'name':'tom','age':23};vard=obj['name'];arr和b表示定义的数组c中表示数组的某下标的值d中表示对象的某个属性原文链接:https://blog.csdn.net/weixin_43649130/article/details/91948161...
JavaScript设计模式-组合模式(表单应用实现)
书读百遍其义自见《JavaScript设计模式》一书组合模式在表单中应用,我问你答答案。注:小编自己根据书中的栗子码的答案,如有错误,请留言斧正。另:如有转载请注明出处,谢谢啦<!DOCTYPEhtml><html><head><title>组合模式-表单实现</title><metacharset="utf-8"><styletype="text/css">#FormItem{width:400px;}</style></head><body></body><scripttype="text/javascript">//原型式继承functioninheritObject(o){//声明一个过度对象functionF(){};//过度对象的原型继承父对象F.prototype=o;//返回过度对象的一个实例,该实例的原型继承了父对象returnnewF();}functioninheritPrototype(subClass,superCla...
Javascript设计模式实践之代理模式--图片预加载
图片的预加载就是在加载大图片前,先显示一个loading.gif,就算在网络比较慢的时候也能让人知道正在加载,总比啥反应都没有强。下面这段代码就是预加载的一个简单的实现,假设先不处理加载图片时的onError,onAbort,超时的问题。只关注代码的结构。<!DOCTYPEhtml><html><head><metacharset="utf-8"></head><body><buttonid='btnLoadImg'>加载图片</button><br><divid='imgContainer'></div><br><scripttype='text/javascript'src="./jquery-1.11.3.min.js"></script><scripttype='text/javascript'>$(document).ready(function(){$('#btnLoadImg').bind('c...
JavaScript中的方法和属性
书读百遍其义自见学习《JavaScript设计模式》一书时,前两个章节中的讲解的JavaScript基础知识,让我对属性和方法有了清晰的认识。如下是我的心得体会以及部分摘录的代码。不同于大多数面向对象语言一样,JavaScript作为一种解释性的弱类型语言,通过自身的一些特性实现类的封装,从而实现面向对象的。面向对象编程的思想就是一些属性方法的隐藏和暴露,比如私有属性、私有方法、共有属性、共有方法等。既然JavaScript实现了面向对象,同样具有这些属性和方法。JavaScript中包含:私有属性(私有方法)特权方法公有属性(公有方法)类静态共有公有属性(类静态公有方法) 注:对象不能访问共有属性(共有方法)静态私有属性(静态私有方法) 注:通过闭包可以实现如下是代码实例: 1<!DOCTYPEhtml>2<html>3<head>4<title>属性与方法</title>5<metacharset="utf-8">6<scripttype="text/javasc...
javaBean
1.javaBean一种满足特定规则的类,比如值的获取设置都是set,get方式;2.为什么这么做?这样一种统一的方式,以便简化处理3.作用 比如信息的传递,将信息封装到一个javaBean,可以通过get方法获得所有的信息。4.利用反射获取和设置javaBean属性的两种方式:5.也可以使用beanUtil工具包,需要额外jar包支持 ...