
编程基础
eclipse_xu
Android开发
展开
-
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名?123456789101112131415package Reflec转载 2012-11-11 22:41:46 · 1864 阅读 · 0 评论 -
设计模式详解之桥接模式
桥接模式(Bridge):桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看原创 2013-03-15 16:41:52 · 2986 阅读 · 0 评论 -
设计模式详解之组合模式
组合模式(Composite):组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图:public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector(); public TreeNode(Strin原创 2013-03-15 16:43:06 · 2493 阅读 · 0 评论 -
编程思想
现实生活中有很多问题,人为不好解决,但利用计算机速度快,不出错的特性,可以很方便的解决这些问题,下面简单说说我在程序设计中解决实际问题的一些常见思想,高手可以忽略掉,我也是无聊了随便写写而已。1.枚举最优解时的情况有很多问题初看很棘手,但经过仔细的分析,可以得出一些显然的结论。比如下面这个问题: 平面内有上千个点,用一个半径为R的圆去覆盖,最多能覆盖多少点?很多程序转载 2014-02-16 16:55:58 · 2916 阅读 · 0 评论 -
ubuntu下使用自带的openJDK查看java源代码
如题Ubuntu自带的OpenJDK只有jre环境,不提供源码,所以我们还是需要去下载。 JDK6:http://download.java.net/openjdk/jdk6/JDK7:http://download.java.net/openjdk/jdk7/下载好了后,只需要解压下载包下的一个子目录:/jdk/src/share/classes/,解压的路径记好了,如:/home/simon/原创 2014-04-30 10:12:56 · 6170 阅读 · 4 评论 -
通过正则表达式生成满足条件的随机数据
通常情况下,我们都是拿正则表达式去验证一个字符串是否符合要求,但有时候我们需要生成一些符合一定规则的数据的时候,我们也可以使用正则,今天我要给大家详细讲解下如何生成,首先,我们需要一个工具,链接如下http://download.youkuaiyun.com/detail/x359981514/7070319进入CMD运行该程序:参数很清楚,相信大家不用我翻译了使用如下:原创 2014-03-20 11:19:49 · 6605 阅读 · 0 评论 -
实现2个超大数的加法运算
一道笔试题~实现2个超大数据的加法运算,这2个超大数,意思就是long也装不下的数,就顶大概100位吧。这道题其实看上去很简单,但是实际上涉及到的知识点还是很多的,非常考验一个人的程序设计能力和对API的熟悉程度。思路很简单,这么大的数,long都存不下,那只能存在String中了,然后将每个数字取出,放到数组,由最末位开始计算,算加法,判断是否进位,进位则前位+1,若超过长度,则copy到新的数原创 2014-08-03 16:28:57 · 5443 阅读 · 3 评论 -
Python开发教程推荐
Python开发资源原创 2014-08-18 20:33:13 · 2834 阅读 · 0 评论 -
最简单也最难——如何获取到Android控件的高度
如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接调用原创 2014-10-08 21:19:04 · 15915 阅读 · 9 评论 -
List与array的相互转换
1、List-ArrayList list = new ArrayList(); list.add("1"); list.add("2"); list.add("3"); String[] strings = list.toArray(new String[list.size()]);原创 2014-10-19 21:43:28 · 2760 阅读 · 1 评论 -
Android View中的requestLayout和invalidate区别
RequestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。原创 2014-10-19 21:43:43 · 11816 阅读 · 0 评论 -
Creating Apps With Material Design —— Defining Shadows and Clipping Views
材料设计引入了深度的UI元素。深度帮助用户了解每个元素的相对重要性,以及集中注意力于手头的任务。 一个视图,通过Z属性表示的海拔,决定了它的影子的大小:具有较高的Z值的看法蒙上更大的阴影。浏览次数只投射阴影在Z=0平面上;他们不投在下面放置它们和上面的Z =0平面的其他意见的阴影。 具有较高的Z值的意见闭塞的看法与较低的Z值。然而,鉴于Z值不会影响视图的大小。 海拔也很有创建动画,其中的小部件暂时翻译 2014-10-20 15:59:28 · 2761 阅读 · 0 评论 -
Eclipse,到了说再见的时候了——Android Studio最全解析
去年的Google大会上,Google带给我们一个小玩具——Android Studio,说它是玩具,是因为它确实比较菜,界面过时,操作不流畅,效率也不高,但是现在,虽然版本还是0.6,甚至都没到1.0,但是我们可以发现亲儿子到底是亲儿子,现在的Android Studio已经今非昔比,用了一段时间,简直爱不释手,我觉得,It's time to say goodbye eclipse!本文将带领原创 2014-06-14 17:24:26 · 42621 阅读 · 99 评论 -
天罗地网——Python爬虫初初初探
环境准备Python我们使用Python2.7进行开发,注意配置好环境变量。IDE我们使用Pycharm进行开发,它和大名鼎鼎的Android Studio、IDEA同出一门——Jet Brains。关于破解,很无耻的贴两个:用户名:yueting3527注册码:===== LICENSE BEGIN =====93347-1204201000001FMHemWIs原创 2015-09-13 16:58:45 · 5997 阅读 · 10 评论 -
设计模式详解之外观模式
外观模式(Facade):外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)实现类:public class CPU { public void startup(){ Sys原创 2013-03-15 16:39:08 · 3290 阅读 · 2 评论 -
设计模式详解之代理模式
代理模式(Proxy):其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的带你就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。先来看看关系图:根据上文的阐述,代原创 2013-03-15 16:36:27 · 2886 阅读 · 0 评论 -
Eclipse如何自动生成注释
/*(non-Javadoc)* ${see_to_overridden}*//** * ${tags} * @version 1.0 * @author kervin * @created ${date} *//** * @version 1.0 * @author kervin * @created ${date} *//** * @fields ${field转载 2012-11-08 08:53:44 · 1785 阅读 · 0 评论 -
算法研究之不使用临时变量实现两个值的交换
变量值的交换经常在程序中使用,一般方法是使用一个临时变量,交换两个数的值,其实,不使用临时变量,依然可以实现这一功能。1、常规交换方法int a,b,temp;temp=a;a=b;b=temp;2、通过指针1: inline void Swap(int *a,int *b)2: {3: *a=*a+*b;4: *b=*a-*b;5: *a=*a-*b;原创 2012-12-14 13:54:36 · 2201 阅读 · 0 评论 -
javascript随机抽签程序
将下面的代码保存为html格式即可运行。抽签程序html, body{ padding:0px; margin:0px; font-size:12px;}body{ margin:50px;}#result{ height:20px; margin-bottom:10px;}#result div{ float:left; border:1px solid原创 2012-12-13 12:28:09 · 5304 阅读 · 0 评论 -
Java中格式化处理详解
在Java中我们需要对一个数字进行四舍五入处理或者是对一个字符串进行格式化处理,我们需要使用String.Format方法或者其他格式化方法一、Format方法比如:DecimalFormat df = new DecimalFormat("#.00");SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");等使用方法基本如原创 2013-01-29 10:40:51 · 5447 阅读 · 2 评论 -
算法研究之贝塞尔曲线
贝塞尔曲线贝塞尔曲线(The Bézier Curves),是一种在计算机图形学中相当重要的参数曲线(2D,3D的称为曲面)。贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所发表,他运用贝塞尔曲线来为汽车的主体进行设计。线性曲线给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出:当参数t变化时,其过程如下:线性原创 2013-02-03 20:22:14 · 8106 阅读 · 4 评论 -
Java循环列表的简单实现
private int[] colors=new int[]{0xFFFF0000,0xFF00FF00,0xFF0000FF,0xFFFF00FF,0xFF00FFFF}; //每一个索引的下一个索引,最后一个索引的下一个索引是第一个索引 private int[] next=new int[]{1,2,3,4,0}; private int current=0; private原创 2012-11-18 14:58:53 · 2543 阅读 · 0 评论 -
设计模式详解之抽象工厂模式
抽象工厂模式(Abstract Factory)工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。原创 2013-03-14 15:19:50 · 2683 阅读 · 0 评论 -
设计模式详解之单例模式
单例模式(Singleton):单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话原创 2013-03-14 15:47:53 · 2392 阅读 · 0 评论 -
设计模式详解之原型模式
原型模式(Prototype):原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类:public class Prototype implements Cloneable { publ原创 2013-03-14 15:55:12 · 2001 阅读 · 1 评论 -
设计模式详解之工厂方法模式
工厂方法模式(Factory Method)分为3种:1、普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:我们以一个例子来讲解:发送短信和发送邮件(具有共同的接口:发送)接口:public interface Sender { /* * 发送邮件或者短消息的共同接口 */ public void sender();原创 2013-03-14 15:10:35 · 2951 阅读 · 1 评论 -
设计模式详解之建造者模式
建造者模式(Builder)工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下:建造类:public c原创 2013-03-14 15:52:09 · 2506 阅读 · 0 评论 -
设计模式详解之装饰模式
装饰模式(Decorator):顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void met原创 2013-03-15 16:33:57 · 2584 阅读 · 0 评论 -
设计模式详解之享元模式
享元模式(Flyweight):享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象,FlyWeight是超类。一提到共享池,我们很容易联想到Java里原创 2013-03-15 16:44:38 · 2622 阅读 · 0 评论 -
设计模式详解之适配器模式
适配器模式(Adapter):适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。1、首先,我们来看看类的适配器模式,先看类图:核心思想就是:有一个Source类,拥有一个方法,待适配,目标接口时Targetable,通过Adapter类,将Source的功能扩展原创 2013-03-15 16:31:37 · 2305 阅读 · 0 评论 -
跳槽?社保?买房?
前言本文专门写给那些想在限购地区买房,又担心跳槽会影响买房资格的开发者,一篇文章了解『跳槽对限购资格的影响,到底是杞人忧天,还是危机四伏』首先我们来了解下现在买房的限购条件(以下均是外地户籍,本地户籍,你可以看看其它技术文章),我们以上海为例:结婚 && (社保连续5年 || 个税连续5年)我们可以发现,实际上最困难的地方,就是这个5年连续的社保或者个税,结婚毕竟只要9块钱,可这个社保、个税,可是原创 2017-02-23 11:21:32 · 5882 阅读 · 11 评论