- 博客(21)
- 收藏
- 关注
原创 c++中的四种cast
reinterpret_cast:显示转换,可以进行任意的转换,是通过完全复制对象的二进制数据,返回的结果不可控,不会进行安全检查。四种cast分别为 static_cast、dynamic_cast、reinterpret_cast、const_cast。const_cast:去除对象的const和volatile属性,但是const_cast中的类型必须是指针或引用。static_cast: 代替隐式替换,对象可以是类也可以是指针和引用,在进行基类向派生类转换时不提供安全检查。
2023-09-10 12:07:01
125
原创 单例模式与双检测锁
2、单例模式允许在程序的任何地方访问特定对象。懒汉式单例模式在多线程情况下会出现线程不安全从而导致创建多个实例的情况,由此可知,在创建实例时需要加锁。但是这样会导致每次调用getInstance方法时都要加锁,浪费资源,只需在第一次创建实例时加锁。1、控制对于某些共享资源(数据库,文件)的访问权限。单例模式:是软件设计模式的一种,单例必须保证只有一个类实例存在。1、需要频繁实例化候销毁的对象。懒汉式单例模式:实例对象在第一次使用时构建,延迟初始化。饿汉式单例模式:实例对象在类装载时就构建,急切初始化。
2023-05-25 20:52:04
173
原创 线程安全类
当多个线程访问同一个对象时,**如果不用考虑这些线程在运行时环境下的调度和交替运行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,**调用这个对象的行为都可以获取正确的结果,那这个对象是线程安全的。
2023-05-25 17:29:40
94
原创 简单工厂模式与抽象工厂模式
抽象工厂模式:当类的种类很多且可以按某个属性将其中的几个类划分为一个类时,再使用工厂方法模式将会产生大量的工厂类,由此提出抽象工厂模式,一个工厂有多个成员函数来生成这一大类中的不同小类的实例。工厂方法模式:是对简单工厂模式的一个升级,不再通过接受参数来返回需要的实例,而是给每个需要的实例实现一个对应的工厂类,再通过相应的工厂类返回所需实例。简单工厂模式:建立一个简单的工厂类,工厂类的静态成员方法接收一个参数来分辨返回何种类的实例。
2023-05-24 09:55:55
87
原创 c++重入锁
使用情况:存在有两个函数A和B,函数A需要调用函数B,但两个函数执行都需要使用加同一把锁来执行原子操作,若使用互斥锁,当在函数A中需要调用函数B时,由于此时函数A持有锁,需要等函数B执行完后才能解锁,而函数B需要等函数A释放锁从而阻塞等待,造成了死锁,在这种情况下,提出了重入锁,持有锁的线程可以重复加锁,并将上锁数加1,当解锁时,只有解锁的是当前线程才有作用,每执行一次解锁,上锁数减1,当上锁数为0后,线程释放锁。指拥有这个锁的线程可以在执行过程中重复加锁。
2023-05-23 23:46:35
746
原创 共享内存使用
等同于将一块共享内存拼接到进程用户空间,不需要再通过内核参与数据的传输。内存共享是进程通信最快的手段,不需要多次转存数据就可实现的数据交换。4、进程断开与共享内存的连接。3、对共享内存的读写操作。5、对共享内存标记删除。
2023-03-10 11:44:19
331
原创 jdbc配置步骤
1.注册驱动,加载驱动 Class.forName("com.mysql.cj.jdbc.Driver");2.获得连接String url = "jdbc:mysql://localhost:3306/company";String user = "root";String password = "1234";Connection connection = DriverManager.getConnection(url, user, password);if (connectio.
2021-08-16 16:47:49
1132
原创 servlet、jdbc、jquery、Ajax
servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。工作过程:1.客户端发送请求至服务器 2.服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器 3.服务器将响应返回客户端jdbc(Java Data Base Connectivity(Java数据库连接)):连接java与底层数
2021-08-16 16:32:17
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人