导航:首页 > 编程语言 > java类多例

java类多例

发布时间:2023-03-23 02:07:18

1. java中,对象实例化的单例和多例的区别和适用环境

单例模式也是一种比较常见的设计模式其实无非是三个方面的作用:
1、控制资源的使用,通过线程同步来控制资源的并发访问;
2、控制实例产生的数量,达到节约资源的目的。
3、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。

单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。

2. java 中 单实例和多实例是指的什么

简单的说单例就是
只能有一个实例,所以地方用到的实例都是同一个。
就好像家人吃饭,桌子是单例的,大家用的是同一个。而碗是多例的,每人都有自几的。
下面是具体的例子:
Java模式之单例模式:

单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。

特点:

1,一个类只能有一个实例

2,自己创建这个实例

3,整个系统都要使用这个实例

例:
在下面的对象图中,有一个"单例对象",而"客户甲"、"客户乙"
和"客户丙"是单例对象的三个客户对象。可以看到,所有的客户对象共享一个单例对象。而且从单例对象到自身的连接线可以看出,单例对象持有对自己的引用。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录
数据库连接都需要这样的单线程操作。一些资源治理器经常设计成单例模式。

外部资源:譬如每台计算机可以有若干个打印机,但只能有一个Printer
Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干个通信端口,系统应当集中治理这些通信端口,以避免一个通信端口被两个请求同时调用。内部资源,譬如,大多数的软件都有一个(甚至多个)属性文件存放系统配置。这样的系统应当由一个对象来治理这些属性文件。一个例子:Windows
回收站。
在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个惟一的实例,而且回收站自行提供自己的实例。因此,回收站是单例模式的应用。
两种形式:
1,饿汉式单例类
public
class
Singleton
{
private
Singleton(){}
//在自己内部定义自己一个实例,是不是很希奇?

//注重这是private
只供内部调用
private
static
Singleton
instance
=
new
Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问

public
static
Singleton
getInstance()
{

return
instance;

}
}
2,懒汉式单例类
public
class
Singleton
{
private
static
Singleton
instance
=
null;
public
static
synchronized
Singleton
getInstance()
{
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次

//使用时生成实例,提高了效率!

if
(instance==null)

instance=new
Singleton();

return
instance;
}
}
第二中形式是lazy
initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注重到lazy
initialization形式中的synchronized,这个synchronized很重要,假如没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。
一般来说第一种比较安全。进入讨论组讨论。

3. java如何创建一个类的多个实例

1、定培尺义一个类

publicclassA{//定义一个类
}

2、根据类new多个实例

A亩枯a1=new配耐高A();//第一个实例
Aa2=newA();//第二个实例

4. java项目一般什么时候用多例,什么时候用单例ssh的action都是用单例吗就是scope="prototype"

Struts2不是单例的,每次请求都是一个新的action对象,至于保存上一次的数据应该是项目中自己实现的,比如定义一个拦截器,每次将提交的数据保存在session中。

5. java项目一般什么时候用多例,什么时候用单例ssh的action都是用单例吗就是scope="prototype"

当你在整个运行环境中某一个类只需要一个察李实例的时候,就使用单例。
scope="prototype" 这个不是单好雀列,它叫原型. 也就是你说的多例败袜迟吧。

6. java中我要创建多了类对象应该如何实现

请参考 多例模式
主要思想是在一个多例类中用一个静态的集合对象(通常可使用哈西表HashMap)存储所颂搜创建的多个Car对象,然后在态樱野此类中用一个静态工厂方法来负责创建Car类的实例,每创建一个就加到那个静态的集合对象中,每需要删除一个Car对象就通过Car对象的名字到集合中去索引到此对象,然后从集合中删除。
下面是一个多例类的示例帆喊
public class Car {
// 静态集合
private static HashMap cars = new HashMap();
// 静态工厂方法
public static Car createCar(String name, float speed, int price) {
Car car = new Car(name, speed, price);
cars.put(name, car);
}

public static Car deleteCar(String name) {
return cars.remove(name);
}

public static Car findCar(String name) {
return cars.get(name);
}

private String name;
private int price;
private float speed;
// 保护的Car类构造函数,不能被直接创建
protected Car(String name, float speed, int price) {
this.name = name;
this.speed = speed;
this.price = price'
........
........
}

........
........
}

7. java中,多态是多例还是单例

你用杯子喝可乐,喝完了不刷,继续去倒果汁喝,就是单例。
你用杯子喝可乐,直接扔了杯子,换个杯子去倒果汁喝,就是多例。

数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。

1. 什么是单例多例:

所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;

2. 如何产生单例多例:

在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope="prototype";

3. 为什么用单例多例:

之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;

之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;

用单例和多例的标准只有一个:

当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例;

单例其实就在内存中该对象只有一个内存对应地址。无论你多少个线程访问那个对象,都是同一个地址。这样节省内存

4. 何时用单例?何时用多例?

对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态;

而对于struts1来说,action则可用单例,因为请求参数的值是放在actionForm中,而非action中的;

另外要说一下,并不是说service或一定是单例,标准同第3点所讲的,就曾见过有的service中也包含了可改变的状态,同时执行方法也依赖该状态,但一样用的单例,这样就会出现隐藏的BUG,而并发的BUG通常很难重现和查找;

8. 怎么判断java对象是单例还是多列的

获取两个该对象, 然后用看 对象1==对象2 的结果是false还是true,
如果是单例模式创建的 ,如果是单例,结果应该是true,否则是多例;
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

9. 单例,多例.各有什么优缺点

单例顾名思义就是是整个程序运行过程中只存在一个实例对象。常见的单例有静态类,enum,java设计模式中也有单例这一模式。

多例 整个程序运行过程中只存在多个实例对象。每次使用的时候基本都是new出来的。

spring依赖注入默认使用的是单例。

如果类中存在有状态的变量,那么一般建议使用多例。因为单例的话 再并发的场景下数据会相互干扰。而多例的话数据是隔离的。

如果类的实现都是无状态的,那么建议使用单例,一个实例减少类对象的开辟和gc,性能上可能会好点。

更多单例和多例的介绍参考:单例和多例的区别

10. javaWeb项目中到底什么是单例,多例

单例就是不管这个程序怎么运行,多少人访问,他使用的都是同一个对象,多例呢,就刚好相反,有多少次访问,就会新创建多少个对象

阅读全文

与java类多例相关的资料

热点内容
秘密文件一般保存多少年 浏览:952
文件夹隐藏后怎么恢复 浏览:251
文件恢复360 浏览:914
c打开文件夹选择文件 浏览:430
工程变更文件需要多少份 浏览:227
风云三国28文件修改器 浏览:461
哪个app有pets词汇 浏览:926
苹果6s看电影屏幕变暗 浏览:474
怎么注册文件 浏览:600
excel数字怎么自动填入相同数据 浏览:652
上百万条数据用什么软件处理 浏览:680
打开的程序不是全屏 浏览:837
不用u盘传文件 浏览:673
什么少儿编程课网课哪个好 浏览:98
win101706开始界面 浏览:152
java二维数据初始化 浏览:174
listmapjava 浏览:296
利用视频赚钱的网站有哪些 浏览:766
iphone4sios711降级 浏览:246
探岳数据线口在哪里 浏览:654

友情链接