- 浏览: 81309 次
最新评论
-
msdghs:
kidding87 写道涂简单,下面没有更短的了把
priva ...
一道很有意思的java线程题 -
longhua2003:
...
python ElementTree解析xml小记 -
pjwqq:
pansong291PS 写道pjwqq 写道pansong2 ...
Demo_ ZoomActivity 解读 -
pansong291PS:
pjwqq 写道pansong291PS 写道您好,请问那个图 ...
Demo_ ZoomActivity 解读 -
pjwqq:
pansong291PS 写道您好,请问那个图片是用什么做到的 ...
Demo_ ZoomActivity 解读
文章列表
最近学习 Android,感觉Android事件传递机制很有意思,搞懂这个基础知识点是必须的,于是收集资料,做个Demo加深印象,记录之。
Demo比较简单,一个ViewGroup上放置一个按钮。
自定义VieGroup继承自LinearLayout:
package com.example.mydispatchtouchevent;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.vi ...
这个是developer.android.com的demo,初学android,做下笔记.
目的: 实现点击缩略图,动画放大为大图,点击大图,反向动画为缩略图.
思路: 最外层用FrameLayout,便于将加载大图的ImageView覆盖在缩略图之上,先将此imageView ...
CyclicBarrier/关卡,多个线程在关卡处同步,是CountDownLatch的加强版,多了一些有用的新特性。
Demo(Java7并发编程):在一个巨大的矩阵中寻找某个数字,任务可能相当耗时,于是多个线程分配好任务后一起上,人多力量大,大家都完成任务后,到组长那里汇报结果,组长再对结果进行统计(分治法)。
1.模拟矩阵
package java7.Lesson5_CyclicBarrier;
import java.util.Random;
import util.Util;
public class MatrixMock {
pr ...
CountDownLatch/门栓,在完成一组其它线程中执行的操作之前,该线程(可以是多个)一直等待。
相信大家遇到过这样场景:在进行某个操作之前,先需要加载不同数据源的一系列数据,而每个加载可能相当耗时,客户端就只能一直等待。
Demo:举行一个小型会议,所有人到齐了才能开会,如果有人迟到,大家一起干等。
1.模拟会议进度线程
package java7.lesson4_CountdownLatch;
import java.text.SimpleDateFormat;
import java.util.Date;
import jav ...
Semaphore/信号,用来控制一个或多个共享资源访问。
例子(Java7并发编程,略做改动):有3台打印机(看作一个资源池),多个客户端请求打印,显然每台打印机一次只能处理一个打印请求。
1.打印机队列实现
//打印队列,同时支持3台打印机
package java7.lesson3_SemaphoreEx;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.Semaphore;
import java.util.concurren ...
这几天看结城浩的《java多线程设计模式》,跟着做一些习题,有几道题目很有意思,记录下自己的体会。
首先是题目(在原书212页,书尾有解答):
public class Main {
public static void main(String[] args) {
try {
Blackhole.enter(new Object());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Blackhole {
...
访问者模式是个有点深度的模式。
先看维基的描述:
访问者模式是一种将算法与对象结构分离的软件设计模式。
这个模式的基本想法如下:
1. 首先我们拥有一个由许多对象构成的对象结构,这些对象的类都拥有一个accept方法用来接受访问者对象;
2.访问者是一个接口,它拥有一个visit方法,这个方法对访问到的对象结构中不同类型的元素作出不同的反应;
3.在对象结构的一次访问过程中,我们遍历整个对象结构,对每一个元素都实施accept方法,在每一个元素的accept方法中回调访问者的visit方法,从而使访问者得以处理对象结构的每一个元素。
先看维基的解释
享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量 ...
最近看<JAVA与模式>,单例章节的例子,我作了修改之后的练习,用properties文件代替数据库,略有不同。
需求:某个系统需要的多键值生成器,键值唯一,键值缓存(避免多次访问,节约资源)
实现:
一个标准单例:
package singleton.keyGenerator;
import java.util.HashMap;
public class KeyGenerator {
private static KeyGenerator keyGenerator = new KeyGenerator();
...
昨天按照需求把很久以前写的某段delphi代码修改了一下,单个Unit终于突破了5000行,其实花的时间主要是修改之前的"复习"。
出于对今后再次修改的恐惧,也是为了理清思路,把某些方法和变量封装成几个Class。感觉代码干净多了。
今天读了<Java与设计模式>前几章,感觉讲的非常好,之前也看过一些模式的书和博客,具体模式都讲的很清楚,但是总感觉缺了点什么,少了提纲挈领的东西。
摘录一段(可能不是原话):
开闭原则 Open-Closed Principle 简称 OCP:一个类应该对扩展开放,对修改关闭。
开闭原则从另一个角度上 ...
这几天开始看netty,作些笔记。
netty5文档中 ChannelHandler开始处介绍了attachment的使用,用来保存handler的状态信息
public class DataServerHandler extends SimpleChannelInboundHandler<Message> {
private final AttributeKey<Boolean> auth =
new AttributeKey<Boolean>("auth");
@Override
...
说实话Ext这个东西还是比较不爽,那个官方的api也太简单了,很多地方都寥寥几句话,搞的像我这样的初学者很泄气,不过做事最好还是有始有终,有点心得,记录一下。
所谓的常见的应用界面就是登录完毕之后,左边一个菜单面板,中间一个TabPanel来放具体功能
后台传回数据后,点左边菜单应该可以动态加载功能
1.登录完毕后,加载左菜单,这个没啥好说的,数据:
{
"success": true,
"children": [
{ "functionId": 1, "functionMapping ...
Grid是第一个要学的,Ext也一样,体验了一把,感觉MVC下用起来还是很爽的啊!
记录一下,免得忘了。
功能很简单,显示用户密码,然后CURD
view在此
Ext.define('PJ.view.UserInfoPanel', {
extend: 'Ext.panel.Panel',
alias : 'widget.userinfopanel',
store : 'UserInfo',
layout: {
type: 'border'
},
title: '用户管理',
initComponent: f ...
学习Ext4.2的MVC有半个月了,感觉进展缓慢,一方面是资料比较少,另一方面主要还是比较懒,加上工作上暂时也没这方面需求。Ext真是个不错的Web前端框架,就凭他自成体系,把js从头到脚包装一遍花的力气,也让人赞叹(当然好不好用是另外一回事)。所谓重量级可不是吹的。
虽然进度比较慢,还是有点小心得,记录下来。
Ext.data.writer的类型不是json就是xml等,有时候与我的要求不符,因为有时候post到后台的我要求的不是纯json,例如我经常这么干:
@Action(value = "userAction")
public class User ...