自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Redis数据库

Redis介绍Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU

2021-09-07 13:20:11 223

转载 Synchronized与ReentrantLock的区别

谈谈synchronized与ReentrantLock的区别?1.从底层实现来说synchronized 是JVM层面的锁,是Java关键字,通过monitor对象来完成(monitorenter与monitorexit),其中monitorenter表示进入同步,monitorexit表示退出同步。对象只有在同步块或同步方法中才能调用wait/notify方法,ReentrantLock 是API层面的锁。synchronized 的实现涉及到锁的升级,具体为无锁、偏向锁、轻量级锁以及重量级锁,R

2021-09-06 14:28:59 155

原创 设计模式--代理模式

代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。意图:为其他对象提供一种代理以控制对这个对象的访问。代理模式SpringAOP的底层就是代理模式。代理模式的分类:静态代理动态代理静态代理角色分析抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人代

2021-09-03 21:58:36 95

原创 设计模式-适配器模式

适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。**Target(目标抽象类)**目标抽象类定义

2021-09-03 21:02:09 76

原创 设计模式-原型模式

原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。意图:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。注意事项:与通过对一

2021-09-03 18:28:34 44

原创 设计模式-建造者模式

建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。使用场景: 1、需要生成的对象具有复杂的内部结构。2、需要生成的对象内部属性本身相互依赖。注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。..

2021-09-03 17:18:44 50

原创 设计模式-单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。具体实现1.懒汉式package shejimoshi.danli

2021-09-03 17:09:27 77

原创 设计模式-工厂模式

**工厂模式**工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。具体实现1.创建一个接口:package shejimoshi.gongchang;/** * 创建一个接口 */pu

2021-09-03 16:34:35 81

原创 SSM-Mybatis

MybatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。数据持久化:持久化就是将程序的数据再持久状态和瞬时状态转化的过程。内存:断电即失数据库(jdbc),io文件持久化优点1)简单易学:本

2021-08-03 17:04:28 87

原创 Linux

Linux系统目录结构1.一切皆文件2.根目录/,所有的文件都挂载在这个节点下ls /Linux基本命令关机sync #将所有数据同步到硬盘中shutdown -h now #立即关机重启reboot绝对路径相对路径切换目录cd /xxx #绝对路径cd ~ #回到当前用户目录pwd #查看当前目录cd ..列出目录ls -a#查看所有文件ls -l#列出所有文件,没有隐藏文件tar解压tar -zxvf xxxx.tar.gz删除rm -f #

2021-07-22 21:07:09 65

原创 Redis概述及安装

**Nosql概述**1.单机MySQL的年代2.Memcached(缓存)+MySQL+垂直拆分(读写分离)发展过程:优化数据结构和索引–>文件缓存(IO)–>Memcached(当时最热门的技术!)3.分库分表 + 水平拆分 + MySQL集群本质:数据库(读、写)早些年MyISAM:表锁,十分影响效率!高并发下出现严重的锁的问题。转战InnoDB:行锁。慢慢就开始分库分表来解决写的压力。4.如今的年代MySQL等关系型数据库不够用了,数据量多,变化很快。目

2021-07-21 09:46:44 64

原创 Java反射机制

Java反射机制动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要的动态语言:C#、JavaScript、PHP、Python等。静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。Java不是动态语言,但Java可以称之为”准动态语言“。即Java有一定的动态性,我们可以利用反射机制获得类似动态语言的特性。Java的动态性让编

2021-07-19 19:29:43 127

原创 TCP、UDP

网络编程网络编程中主要有两个问题1)如何准确的定位到网络的一台或者多台主机2)找到主机之后如何进行通信网络编程的要素1)IP和端口号2)网络通信协议万物皆对象IPip地址:InetAddress唯一定位一台网络上计算机端口不同的进程有不同的端口号。被规定0~65535TCP、UDP:65535*2公有端口:0~1023程序端口:1024~49151,分配用户或程序netstat -ano #查看所有端口netstat -ano|findstr "5900" #查看指定的端

2021-07-19 16:11:08 71

原创 JUC-多线程进阶

JUC-多线程进阶什么是JUC?Java.util.concurrentJava.util.concurrent.atomic 原子性Java.util.concurrent.locks lock锁线程与进程一个进程可以包含多个线程,至少包含一个。Java默认有几个线程?2个,main、GC。Java真的可以开启线程吗?Java无法操作硬件,底层调用本地方法start0()。并发与并行并发:单核CPU,多线程操作同一个资源并行:多核CPU,多个线程同时执行;线程池并发编程的

2021-07-09 19:24:41 169

原创 Java—JVM

定义Java程序的运行环境(Java二进制码的运行环境)好处1)一次编写,到处运行2)自动内存管理机制,垃圾回收功能3)数组下标越界检查4)多态比较:组成内存结构1.程序计数器(寄存器)作用:在jvm指令执行的过程中,记住下一条jvm指令的执行地址。特点:1)是线程私有的,每个线程都有自己的程序计数器2)不会存在内存溢出2.虚拟机栈每个线程运行时需要的内存空间;每个栈由多个栈帧组成,对应着每次方法调用时所需要的内存;每个线程只能有一个活动栈帧,对应着当前执行的那个方法

2021-07-01 20:07:23 151

原创 Mysql数据库

数据库分类1.关系型数据库Mysql、Oracle、Sql Server通过表与表之间,行于列之间的关系进行数据的存储2.非关系型数据库Redis、MongDB非关系型数据库,对象存储,通过对象的自身属性来决定创建数据库操作数据库:CRUDC(Create):创建创建数据库:Create database 数据库名称;创建数据库,判断不存在,再创建:Create database if not exists 数据库名称;创建数据库,并指定字符集:Create database

2021-07-01 20:04:51 265

原创 Java面试题-多线程

多线程1.并行和并发有什么区别?并发:是指多个线程任务在同一个CPU上快速地轮换执行,由于切换的速度非常快,给人的感觉就是这些线程任务是在同时进行的,但其实并发只是一种逻辑上的同时进行;并行:是指多个线程任务在不同CPU上同时进行,是真正意义上的同时执行。2.线程和进程的区别?...

2021-06-29 19:12:41 137

原创 Java面试题-集合

集合1.java 容器都有哪些?1)HashSet:原理:基于哈希表实现,当HashSet调用add()方法存储对象的时候,先调用对象的hashcode()方法得到一个哈希值,然后在集合中查找是否有哈希值相同的对象;如果没有哈希值相同的对象就直接存入集合;如果有哈希值相同的对象逐个进行equals()比较,比较结果为false就存入,true则不存入。2)LinkedHashSet:原理:基于哈希表实现,原理与HashSet一样,底层是链表实现,可以维护容器中每个元素的顺序。3) Tr

2021-06-23 15:02:16 88

原创 Java面试题-java基础

Java基础1.JDK和JRE有什么区别?JRE是Java运行的环境。它包含Java虚拟机、Java平台核心类和支持文件;JDK是Java开发工具包,提供了Java的开发环境(提供了编译器javac等工具,用于将Java文件编译为class文件)和运行环境;JDK是整个Java的核心,包含了Java运行环境(JRE),一堆Java工具和Java标准类库。2.== 和 equals 的区别是什么?对于==,比较的是值是否相等;如果作用于基本数据类型的变量,则直接比较存储的值是否相等;如果作用于引

2021-06-21 14:50:38 73

原创 SSM-SpringMVC

SpringMVC充当前端控制器SpringMVC注解解析@RequestMapping作用:用于建立请求URL和处理请求方法之间的对应关系位置:类上,请求URL的第一级访问目录。此处不写的话,相当 于应用的根目录方法上,请求URL的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径。Value:用于指定请求的URL。它的path属性的作用是一样的Method:用于指定请求的参数Params:用于指定限制请求参数的条件。...

2021-06-09 14:18:30 96

原创 SSM-Spring

SSM:Spring springMVC MybatisSpring是什么Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核。提供了展现层SpringMVC和持久化Spring JDBCTemplate以及业务层事务管理等众多企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。Spring优势方便解耦,简化开发AOP编程的支持声明式事务的支持方便程序的测试

2021-06-07 17:37:15 83

原创 JavaWeb

Junit单元测试测试分类:黑盒测试、白盒测试Junit使用:1.定义一个测试类2. 定义测试方法:可以独立运行3. 给方法加注解@test4. 导入junit依赖环境判断:红色代表成功,绿色代表失败。一般使用断言(assert)操作处理结果Assert.assertEquals(期望的结果,运算的结果)加@Before,初始化方法,在所有测试方法执行之前执行加@After,在所有测试方法执行完后,都会自动执行该方法反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发

2021-06-06 15:12:14 283

原创 Java学习笔记-Java基础

Java基础多态概念:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。简单的说:就是用基类的引用指向子类的对象。特点:1. 要有继承关系2. 要有方法重写3. 要有父类引用指向子类对象成员变量:编译看左边(父类),运行看左边(父类)成员方法:编译看左边(父类),运行看右边(子类)。动态绑定静态方法:编译看左边(父类),运行看左边(父类)。静态和类相关,算不上重写父类引用指向子类对象就是向上转型,还有向下转型:Cat c = (Cat) a;关键字:inst

2021-06-06 13:54:05 240

原创 pytorch入门五

pytorch入门五:批训练import torchimport torch.utils.data as DataBATCH_SIZE=5#批训练参数为5x=torch.linspace(1,10,10)y=torch.linspace(10,1,10)torch_dataset=Data.TensorDataset(x, y)#创建数据集,将数据x,y传入loader=Data...

2020-04-15 19:31:08 40

原创 Pytorch入门一

pytorch入门之基本数据类型1)tensor(张量)Pytorch里面处理的最基本的操作对象就是Tensor(张量),它表示的其实就是一个多维矩阵,并有矩阵相关的运算操作。在使用上和numpy是对应的,它和numpy唯一的不同就是,pytorch可以在GPU上运行,而numpy不可以。所以,我们也可以使用Tensor来代替numpy的使用。当然,二者也可以相互转换。import torc...

2020-04-15 18:34:57 50

原创 python多线程

什么是多线程?多线程类似于同时执行多个不同的程序,可以加快程序的运行速度。每个独立的线程有一个程序运行的入口,顺序执行序列和程序的出口。线程不能独立的进行,必须依存在应用程序中,由应用程序提供多个线程执行控制。每个线程都有他自己的CPU寄存器,称为线程的上下文,该上下文反映了上次运行该线程的CPU寄存器状态。线程可以分为内核线程和和用户线程。内核线程:由操作系统内创建和撤销用户线程:...

2020-04-15 16:46:37 44

原创 pytorch入门四

pytorch入门四:模型的保存和提取import torchimport matplotlib.pyplot as plt# torch.manual_seed(1) # reproduciblex = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x data (tensor), shape=(100, 1)y...

2020-04-09 21:10:39 43

原创 pytorch入门二

pytorch入门二:pytorch搭建一维线性回归模型1)一维线性回归模型理论基础给定数据集D={(x1,y1),(x2,y2),(…),(xm,)}

2020-04-09 21:02:39 55

原创 pytorch入门三

pytorch入门三:pytorch实现分类1)分类模型import torchimport torch.nn.functional as Fimport matplotlib.pyplot as pltfrom torch.autograd import Variable# torch.manual_seed(torch1) # reproduciblen_data = t...

2020-04-01 14:50:44 56

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除