- 浏览: 17354 次
- 性别:
- 来自: 北京
最新评论
文章列表
如何将图片导入到面板上显示出来的几种方式。
第一种:将图片导入到label上显示:
1: Toolkit.getDefaultToolkit().getImage(name):name为图片的路径。支持gif ,JPEG or PNG.格式的图片
2:将Image转化为ImageIcon 并设置到Label上:label.setIcon(new ImageIcon(image));
第二种:将远程的图片显示在本地.加载到panel上
1: url = new URL(urlstr); 创建url
2: Image i ...
Thread thread = new Thread(new runnable(){});
1:获得当前线程
2:获得 SecurityManager 安全管理
3:设置新建线程的所属的线程组
4:线程组设置未启动的线程+1
5:根据父类是否为守护线程来设置新建线程是否为守护线程。
6:根据父类的线程优先级来设置新建线程的线程优先级
7:设置上下文的classloader
8:通过当前上下文设置新建线程的上下问。
9:设置线程的threadlocal
10:设置新建线程的ID
thread.start()
1:每个线程只能运行一次。先检查当前显示是否为new
2:将当前线程添加到当前线程组 ...
工作内存:
官方解释为:线程的working memory只是cpu的寄存器和高速缓存的抽象描述.
动态工作内存:涵盖了cpu,寄存器,高速缓存,内存
静态内存:它只局限在内存,而且只局限在JVM的内存。
堆区:分为新生代,旧生代 ,持久代三块。
新生代又分为eden区,s0区,s1区。新建一个对象时,基本小的对象,生命周期短的对象都会放在新生代的eden区中,eden区满时,有一个小范围的gc(minor gc),整个新生代满时,会有一个大范围的gc(major gc),将新生代里的部分对象转到旧生代里。
方法区:就是持久代。
可见性:一个线程修改了共享变量,其他线 ...
先序遍历:
1. 访问根结点
2. 按先序遍历左子树;
3. 按先序遍历右子树;
4. 例如:遍历已知二叉树结果为:A->B->D->G->H->C->E->F
中序遍历:
1. 按中序遍历左子树;
2. 访问根结点;
3. 按中序遍历右子树;
4. 例如遍历已知二叉树的结果:B->G->D->H->A->E->C->F
后序遍历:
1. 按后序遍历左子树;
2. 按后序 ...
题一、 给定单链表,检测是否有环。
使用两个指针p1,p2从链表头开始遍历,p1每次前进一步,p2每次前进两步。如果p2到达链表尾部,说明无环,否则p1、p2必然会在某个时刻相遇(p1==p2),从而检测到链表中有环。
/*
* if list_a and list_b has cross point return the addrss of cross-point.
* else return NULL
*/
static List *has_cross(List *list_a, List *list_b)
{
List *p ...
一.概述
类是对特性和行为的封装,接口和抽象类是体现差异化,通过继承来实现多态
* JAVA中的类继承抽象类的缺陷在于,两个不同的子类可能有不同的行为,而都继承一个抽象类,则表现为,一个子类分明没有某一 ...
mediator 模式
- 博客分类:
- java设计模式
一、概要
用一个中介对象来封装一系列的对象交互,终结者使对象不需要显示的交互,使其耦合松散,而且可以独立的改变他们之间的交互。
二、适用性
想定制一个分布在多个类的行为,而又不想生成太多的子类
一个对象引用其他很多对象,并且直接与这些对象通信
三、 优缺点
1)减少了子类生成Mediator将原本分布于多个对象间的行为集中在一起,改变这些行为只需生成Mediator的子类即可,这样各个Colleague类可被重用。
2)它将各Colleague解耦。Mediator有利于各Colleague间的松耦合,你可以独立的改变和复用各Colleague类和Mediator类。
3) ...
一、介绍
表示作用于某对象结构中的各元素的操作,它可以不使你修改原来元素类的前提下增加元素的新的操作,也就是动态增加新的方法。
二、角色
1访问者角色(visitor):对对象结构中的具体元素提供一个访问接口,该操作接口的名字和参数表示符定义了访问的具体元素角色,这样访问者就可以通过这些特定的接口直接访问。
2具体访问者角色(concreteVisitor):访问角色的具体实现
3元素角色(element):定义accept操作的接口,操作具体的访问者
4具体元素角色(concreteElement)实现accept操作的
5对象结构(objectStructure):实现元素的集合与遍历, ...
flyWeight 模式
- 博客分类:
- java设计模式
一、FlyWeight模式定义:
运用共享技术有效地支持大量细粒度对象。
二、模式解说
也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样 ...
早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。
[ 转自铁血社区 http://bbs.tiexue.net/ ]
ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独 ...
迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。
从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访 ...
STUN协议的全称是Simple Traversal of User Datagram Protocol Through Network Address Translators,主要功能是检测是否位于NAT后面,如果位于NAT后面,经过NAT转换后的地址和端口是什么,另外可以检测NAT的类型。
基本思想
在私网内部安装一 ...
方法区
在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中。类型信息是由类加载器在类加载时从类文件中提取出来的。类(静态)变量也存储在方法区中。
jvm实现的设计者决定了类型信息的内部表现形式。如,多字节变量在类文件是以big-endian存储的,但在加载到方法区后,其存放形式由jvm根据不同的平台来具体定义。
jvm在运行应用时要大量使用存储在方法区中的类型信息。在类型信息的表示上,设计者除了要尽可能提高应用的运行效率外,还要考虑空间问题。根据不同的需求,jvm的实现者可以在时间和空间上追求一种平衡。
因为方法区是被所有线程共享的,所以必须考虑数据的线程安全。假如两个线 ...
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。
基本类型包括:byte, short, int, long, char, float, double, Boolean, returnAddress
引用类型包括:类类型,接口类型和数组。
堆与栈
堆和栈是程序运行的关键,很有必要把他们的关系说清楚。
栈是运行时的单位,而堆是存储的单位。
栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的 ...
Tidy.jar 将html文件转换成xml文件:
xpp.jar 对象和xml文件互换
sip.jar 实现java中的系统托盘,早期的java不支持
fastPath.jar 支持网页的spark
idlelinux是linux内核的一个进程
JNDIWrapper.jar java与本地信息的交互
jmf.jar 多媒体库
jdic.jar 消除本机应用程序与Java等价物之间差距组件,允许应用程序进入本机的操作系统特性、
log4j.jar 日志管理
commons-collections.jar apach工具集,增强java对集合处理能力
commons-logging.jar ap ...