单例模式:C++与JAVA
Posted 慕書
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式:C++与JAVA相关的知识,希望对你有一定的参考价值。
C++单例模式
单例模式:自始至终都只能有一个chenxuhu实例,不能再new出另一个实例,共用同一个实例。
- C++单例模式
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
//创建个人类,比如我的名字,chenxuhu
class ChenXuHu
public:
static ChenXuHu * getInstance()
return singleMan;
private:
static ChenXuHu * singleMan;
ChenXuHu()
//拷贝构造 私有化
ChenXuHu(const ChenXuHu&cxh)
;
//在类外面实现new
ChenXuHu * ChenXuHu::singleMan = new ChenXuHu;
void test()
ChenXuHu *a = ChenXuHu::getInstance();
ChenXuHu *b = ChenXuHu::getInstance();
//ChenXuHu *c = new ChenXuHu;构造函数私有化,不可以再new
if (a == b)
cout << "a 与 b相同" << endl;
else
cout << " a与 b不相同" << endl;
int main()
test();
system("pause");
return EXIT_SUCCESS;
2.JAVA单例模式,链接数据库
package com.wulian.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class JdbcUtil
static JdbcUtil ju = null;
Connection connection;
private JdbcUtil()
try
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf8";
String name = "root";
String password = "123456";
connection = DriverManager.getConnection(url, name, password);
catch (Exception e)
e.printStackTrace();
public static JdbcUtil getInstace()
if (ju == null)
ju = new JdbcUtil();
return ju;
public Connection getConn()
return connection;
public void setCloseConn(Connection conn)
if (conn != null)
try
conn.close();
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
public void setClosePs(PreparedStatement ps)
if (ps != null)
try
ps.close();
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
以上是关于单例模式:C++与JAVA的主要内容,如果未能解决你的问题,请参考以下文章