`
chenhaodejia
  • 浏览: 114595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
你是否有这样的习惯呢,吃什么东西之前,总要想一想这个东西对自己是不是有益的或者有害的。有人肠胃不好,就要少喝点酒,多喝点粥。有人容易过敏就要少吃导致过敏的食物。有人血脂高,就要少吃油腻的食物。   这 ...
      初学者总会对设计模式的概念很模糊,如果只是单独去看一些书上列举的设计模式,会觉得眼花缭乱,因为会有几十种设计模式,即使明白了也会弄混,比较常用的设计有:单利模式、代理模式、观察者模式及适配器模式等。此篇主要简单聊一下观察者模式:       深入理解设计模式的话,需要我们自己去写代码,即使一个小小的demo也会使我们更加深入地理解这种模式的概念及使用的场景,如果有大牛写的代码阅读一下,也是很有帮助意义的。观察者模式主要的作用是用来监听处理事件,做到一处触发,处处监听处理的效果。       首先,我们需要建立一个观察者的类,用来注册实现监听的方法。然后,在触发事件的类中,建立 ...
即日起将博客搬家至CSDN,谢谢大家!
    1、算法,浩如烟海,找到自己感兴趣的那个分支,或那个点来学习,然后,一往无前的深入探究下去。    2、兴趣第一,一切,由着你的兴趣走,忌浮躁。    3、思维敏捷。给你一道常见的题目,你的头脑中应该立刻能冒出解决这道问题的最适用的数据结构,以及算法。    4、随兴趣,多刷题。ACM题。poj,面试题,包括下文将出现的研究生复试上机考试题,都可以作为你的编程练习题库。    5、多实践,多思考。学任何一个算法,反复研究,反复思考,反复实现。    6、数据结构是一切的基石。不必太过专注于算法,一切算法的实现,原理都是依托数据结构来实现的。弄懂了一个数据结构,你也就通了一大片算法。    ...
人们似乎把编程等同于编码,这就是问题所在。在编码之前你应该弄清自己在干什么。如果不能写下自己在干什么,你就不会清楚自己是否理解它。如果首先写下的是代码,那你大概确实不能理解自己要做的事。如果你在没有蓝图(我们称为规格)说明的情况下就想建一座桥或搭一座房子,那就很难建得既好看又可靠。然而大多数代码就是这样写出的。每次你咒骂你的电脑,你其实是在骂那个没想明白就编出程序的人。 软件文化中的某些东西阻碍了规格说明的应用。我们有一种精确描述事物的方式,这种方式已经发展了几千年,它的名字叫数学。我想在我们构建某种东西的时候,应该以这种方式来进行思考。
问题描述: 判断字符串a是否包含字符串b。我们称a为文本串,b为模式串。比如 [plain] view plaincopy a = bcabcabcabbcabcabcabcabd  
这篇文章只是总结下getView里面优化视图的几种写法,就像孔乙己写茴香豆的茴字的几种写法一样,高手勿喷,勿笑,只是拿出来分享,有错误的地方欢迎大家指正,谢谢。 listview Aviewthatshowsitemsinaverticallyscrollinglist。 一个显示一个垂直的滚动子项的列表视图在android开发中,使用listview的地方很多,用它来展现数据,成一个垂直的视图。使用listview是一个标准的适配器模式,用数据--,界面--xml以及适配器--adapter,数据被适配器按照需要的方式展现出来,xml描写了数据如何展现,activity中控制这些活动。 其中 ...
这里提到的ListView只是作为一个典型代表 其实在Android中 采用类似Adapter机制的GridView等都是可以适用的 而ListView应该是用得最多的 所以就以它来举例 大家都知道 将ListView和Adapter绑定以后 其实也就是将数据源和控件显示绑定在一起 而每次需要显示ListView的时候 里面的item其实是Adapter提供的 通过的就是重要的getView()方法 而做法也是在这上面进行   先来看一下基本的getView写法   Java代码  
在整理前几篇文章的时候有朋友提出写一下ListView的性能优化方面的东西,这个问题也是小马在面试过程中被别人问到的…..今天小马就借此机会来整理下,网上类似的资料蛮多的,倒不如自己写一篇,记录在这个地方,供自己以后使用,不用再翻来翻去的找了,用自己写的…呵呵,不多讲其它了,说起优化我想大家第一反应跟小马一样吧?想到利用ViewHolder来优化ListView数据加载,仅仅就此一条吗?其实不是的,首先,想要优化ListView就得先了解ListView加载数据原理,这是前提,但是小马在这个地方先做一些简单的补充,大家一定仔细看下,保证会有收获的:    列表的显示需要三个元素: ...
       sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了cpu,但其他被同步锁挡住了的线程也无法得到执行。wait是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify方法(notify并不释放锁,只是告诉调用过wait方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放。如果notify方法后面的代码还 ...
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程是处理器调度的基本单位,但进程不是.4)二者均可并发执行. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单 ...
进程中线程同步的四种常用方式: 1、 临界区(CCriticalSection) 当多个线程访问一个独占性共享资源时,可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段,其他线程若想访问,则被挂起,直到拥有临界区的线程放弃临界区为止。具体应用方式: 1、 定义临界区对象CcriticalSection g_CriticalSection; 2、 在访问共享资源(代码或变量)之前,先获得临界区对象,g_CriticalSection.Lock(); 3、 访问共享资源后,则放弃临界区对象,g_CriticalSection.Unlock();   2、  ...
   当你启动eclipse时出现... No java virtual machine  was found after searching the follwing locations:d:javaeclipsejreinjavaw.exe 'javaw.exe' in your current path错误时,可尝试以下方法:   1、在Path中设置javaw.exe的路径,如:      C:/java/jdk1.6.0_10/bin/javaw.exe 2、也可修改eclipse.ini 文件,在最前面加上下面两行内容:     -vm      C:/java/jdk1.6 ...
客户端加码 Java code? 1 String str = URLEncoder.encode("我们是好朋友", "utf-8"); ,服务端再解码 Java code? 1 2 URLDecoder ud = new URLDecoder();           System.out.println(ud.decode(str, 
添加一个动画效果   发现动画没执行完  就直接跳转或者finish掉   添加动画监听事件即可,代码如下: player.startAnimation(anim);   anim.setAnimationListener(new AnimationListener() {              @Override       public void onAnimationStart(Animation animation) {           // TODO Auto-generated method stub             ...
Global site tag (gtag.js) - Google Analytics