工厂设计模式
抽象工厂模式模式定义:定义一个用于创建对象的接口,让子类决定实例话哪一个类。Factory Method使得一个类的实例化延迟到之类
12345678910111213141516171819202122232425262728293031323334353637383940public class FactoryMethod { public static void main(String[] args) { Application application = new ConcreteProductA(); Product product = application.getObject(); product.method(); }}interface Product{ public void method();}class ProductA implements Product{ @Override public void method() ...
单例设计模式
一、单例模式的定义及使用场景模式定义:保证一个类只有一个实例,并且提供一个全局访问点。
场景:重量级的对象,不需要多个实例,如线程池,数据库连接池。
二、单例模式的实现方式1.懒汉模式:延迟加载,只有在真正使用的时候,才开始实例化。12345678910111213141516171819202122class LazySingleton{ private volatile static LazySingleton lazySingleton; private LazySingleton() {} public static LazySingleton getInstance(){ if (null == lazySingleton){ // double check synchronized (LazySingleton.class){ if (null == lazySingleton ...
Java面试题整理
1.redis为什么是单线程?12redis是单线程的原因在于redis用单个CPU绑定一块内存的数据,然后针对这块内存的数据进行多次读写的时候,都是在一个CPU上完成的。redis核心就是,如果我的数据全都在内存里,我单线程的去操作就是效率最高的。所以,redis是单线程。官方答案:因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
2.深拷贝和浅拷贝的区别?以及深拷贝最简单的实现方式?1234浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”第一种实现方式是重写clone方法来实现深拷贝(实现cloneable接口)第二种通过对象序列化实现深拷贝(实现Serializable接口)
3.beanFactory和ApplicationContext的区别?1234567BeanFactory和A ...
Linux常用命令
1234pwd: 显示用户所在的目录ls: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息格式: ls [选项][目录或文件]
选项
说明
-a
查看当前目录下的文件,包括隐藏文件
-l
长格式显示文件
-lh
以方便阅读的长格式显示
123cd: 改变工作目录。将工作目录改变到指定的目录下。格式: cd 目录名
命令
说明
cd ..
返回上一级目录
cd ../..
返回上两级目录
cd ~
切换到home目录
cd /
切换到根目录
cd /home/lx/linux1/
绝对路径:从home目录出发,直到去想要的目录
cd …/lx/
相对路径:从当前目录出发,直到去想要的目录
123grep: 用于查找文件里符合条件的字符串格式: grep [选项] ‘查找字符串’ 文件名
选项
说明
-a
将binary文件以text文件的方式查找数据
-c
计算找到‘查找字符串’的次数
...
JUC高并发编程一(JUC概述)
1 什么是JUC
1.1 JUC简介JUC就是java.util.concurrent工具包的简称。这是一个处理线程的工具包,JDK 1.5开始出现。
1.2 进程与线程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
总结来说:进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。是程序执行的最小单位。
1.3 线程的状态1.3.1 ...