自学笔记
文章平均质量分 88
自己记学习笔记用的
思绪13
从最坏处着想,往最好方向努力。
展开
-
安卓Java Web Socket简单使用
安卓Java Web Socket简单使用android使用javaWebSocket实现跨设备设备通讯的方式之一。demo地址:https://gitee.com/sixu_Java/java-web-socket只要关注onOpen、onMessage、onClose、onError这四个方法,然后server端启动,client端通过server端ip与端口去连接。即可完成简单的连接demo。而server端与client端的通讯关注onMessage。注意:操作界面需要在UI线程,如原创 2022-03-10 21:35:05 · 6250 阅读 · 3 评论 -
自学笔记:Docker
目录Docker概述问题的产生问题的解决Docker简介Docker的架构安装Docker在linux上安装Docker流程图命令帮助命令镜像命令容器命令其他命令小结安装的练习(可跳过)安装Nginx安装TomCat镜像的简单详解什么是镜像?镜像加载原理提交镜像容器数据卷容器数据卷简介?添加数据卷具名挂载与匿名挂载数据卷权限容器数据卷DockerFile什么是DockerFile?DockerFile基础知识DockerFile实战发布镜像DockerHub阿里云镜像Docker本次学习以B站Up主原创 2020-12-04 15:15:31 · 920 阅读 · 0 评论 -
自学笔记:Dubbo
目录DubboRPC什么是RPCDubbo简介Dubbo 的架构支持的协议Dubbo案例学习本地直连方式**服务接口模块****服务提供方****服务消费方****测试**Dubbo+Nacos**服务公共接口****服务提供方****服务消费方****测试**DubboRPC什么是RPCRPC是远程过程调用(Remote Procedure Call)的缩写形式。是一种进程间的通信方式,是一种技术思想,而不是一种规范。在如今微服务火热的时代,进场需要在不同异地的服务需要互相调用,而RPC可以允许原创 2020-11-26 22:27:34 · 669 阅读 · 1 评论 -
自学笔记:Nacos
目录Nacos简介环境入门外部mysql数据库的支持Nacos的管理模型命名空间nacos的配置管理应用服务从nacos获取配置获取多个配置Nacos的集群部署服务发现入门案例负载均衡演示Nacos简介最主要的功能是配置管理和服务发现。配置管理:nacos将配置发布配置。服务从nacos获取配置。如果修改了已经存在nacos的配置,并且服务开启了动态获取,则服务可以获取更新后的配置。**服务发现:**当两个服务之间需要有调用时,调用使用http协议,则以下图为例服务A、B会将自己的地原创 2020-11-26 22:22:12 · 252 阅读 · 0 评论 -
自学笔记:分布式id-雪花算法(SnowFlake)
SnowFlake分布式ID在业务的需求中,常常需要id来记录服务。但随着网络的发展,数据的量也越来越多,例如像淘宝订单,每一秒的成交订单都难以估量,这就对生成的id有了要求。例如,id号必须要确保唯一,否则两个订单的id号相同,会出大乱子;id不能简单的自增(+1),否则可能会被轻易的恶意扒取;等等……因此,分布式id有如下要求:全局唯一性:绝不能出现重复的ID号,最基本的要求。id趋势递增:保证我的下一ID一定大于上一个ID。信息安全:如果ID是连续的,则id号甚至可能会被猜出来,所以需要原创 2020-11-24 21:58:04 · 751 阅读 · 0 评论 -
自学笔记:baomidou-dynamic-datasource(读写分离)
Dynamic-Datasourcedynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。其支持 Jdk 1.7+, SpringBoot 1.5.x 和 2.x.x。作用:实现读写分离特性支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库敏感配置信息 加密 ENC()。支持每个数据库独立初始化表结构schema和数据库database。支持 自定义注解 ,需继承DS(3.原创 2020-11-24 14:49:30 · 8376 阅读 · 2 评论 -
自学笔记:Mybatis-Plus
Mybatis-Plus简介什么是Mybatis-plus?MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特点:无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,原创 2020-11-24 14:44:28 · 569 阅读 · 0 评论 -
自学笔记:canal
canal个人学习当时所使用的环境canal版本:1.1.5canal安装系统:windowmysql版本:5.7mysql安装在远程服务器linux(CentOS 7)canal为何存在?在现代的系统开发中, 为了提高搜索效率 , 以及搜索的精准度, 会大量的使用 redis ,memcache 等 nosql 系统的数据库 ;但这就会长生一个问题:如何让redis和mysql双方的数据及时同步?为了解决这个问题,有以下几种不同的方案:使用业务代码实现同步在业务层执行增加、修改原创 2020-11-16 20:44:06 · 1745 阅读 · 0 评论 -
自学笔记:Redis
Redis根据“狂神说”的redis教程学习。他有b站号和微信公众号,如果想要学习,可自行去搜索。NOSQL什么是NOSQLNoSQL,泛指非关系型的数据库,区别于关系数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。例如当前各种类型用户的个人信息,社交网络,地理位置原创 2020-11-14 20:47:15 · 481 阅读 · 0 评论 -
自学笔记:linux
Linuxlinux,一些皆是文件。目录详解目录名称详解/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/boot存放linux启动的一些核心文件,包括一些连接文件以及镜像文件(不能动)/devDevice(设备)的缩写,存放linux的外部设备文件/home用户的主目录,在linux中,每个用户都有一个自己的目录,一般以用户的账户命名/etc存放系统管理和配置文件/lib存放跟文件系统中的程序运行所需要的原创 2020-11-09 21:43:14 · 629 阅读 · 0 评论 -
自学笔记:分布式事务
分布式事务什么是分布式事务?传统事务在分布式应用会产生的问题在之前所学的事务,指的是单机的事务。但是近些年来,由于微服务的发展,应用由单体应用转变为分布式应用,原来的事务就会出实现问题。举例:以下订单为例,假设一个分布式应用由两个服务:订单服务和库存服务。当要完成一个订单时,需要同时创建订单以及减少库存。订单数据库和库存数据库分别在两个不同的服务器。大致步骤:下订单,开启事务订单数据库生成订单远程调用库存服务:库存数据库减少库存提交/回滚事务当远程调用库存服务,让库存正常减少了;库原创 2020-11-07 18:13:21 · 376 阅读 · 0 评论 -
自学笔记:Java并发编程基础
基础概念:进程:是系统正在运行中的一个程序。线程:是进程内一个独立执行的单元。一个进程至少有一个线程。多线程就是指一个进程内包含了多个线程。举例说明:一台电脑,可以同时运行QQ,微信,迅雷等等,这就是是多个进程。用其中一个进程举例子,例如QQ管家,它其中有多个内容模块,当你使用它查杀病毒,同时又清理垃圾,同时做了不止一件事,这就是多个线程。...原创 2020-10-22 15:57:18 · 282 阅读 · 1 评论 -
自学笔记:JWT
JWT简介jwt(JSON Web Token),json web令牌。顾名思义,即用于做web应用的令牌,作用是用于校验。jwt的功能:授权认证最常用的jwt使用方式。用户登入之后,之后的每个请求都包括jwt,从而允许用户访问令牌所允许的路由、服务和资源。单点登入是如今广泛使用jwt的一项功能,因为开销小并且可以轻松的使用。信息交换jwt可以在各方之间传输信息,并且可以对其进行签名,可以防止信息被纂改。jwt的组成结构由Header,Payload,Signature组成。原创 2020-11-06 15:49:44 · 109 阅读 · 1 评论 -
自学笔记:Sentinel
typora-root-url: …\图片typora-copy-images-to: …\图片SentinelAlibaba出品的面向分布式服务架构的轻量级流量控制组件。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。流量控制:流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。例如有时候系统会在某一瞬间接收到大量的请求,并且超过了系统的处理能力,但这个瞬间过后请求量就从峰顶跌入到谷底。此时就可以通过Sentinel 来对这请求流量.原创 2020-11-05 22:02:22 · 708 阅读 · 1 评论 -
自学笔记:基础算法
2.2 算法2.2.1 排序分为内部排序和外部排序。内部排序:所有数据加载到内存中,进行排序。八大算法必须掌握。插入排序直接插入排序希尔排序选择排序简单选择排序堆排序交换排序冒泡排序快速排序归并排序基数排序外部排序:数据过大,无法一次性全部加载到内存中,需要结合外部存储器进行排序。#####直接插入排序又称插入排序。***排序思想:***首先将一个长度为length的数组分为两部分,无序数组和有序数组。刚开始无序数组长度为le原创 2020-10-29 14:04:49 · 141 阅读 · 0 评论 -
自学笔记:数据结构
数据结构##2.1 数据结构根据韩顺平老师的数据结构与算法视频学习的包括:线性结构和非线性结构线性结构:最常用的数据结构。特点是数据与元素之间存在一对一关系,例如数组,队列,链表,栈等。按照存储结构又分为顺序存储结构和链式存储结构。顺序存储结构:元素的存储地址值是连续的。例如数组。链式存储结构:元素的存储地址值不一定是连续的,元素节点存放又数据以及相邻节点的信息。例如链表。非线性结构:树结构,图,多维数组等。2.1.1 字符串2.1.2 数组稀疏数组(Sparse原创 2020-10-29 14:00:28 · 745 阅读 · 0 评论 -
自学笔记:面向对象OOP
面向对象OO技术只要有三个领域:OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)面向对象就是将一组数据以及操作数据的方式封装在一个对象中,将数据封装为对象的属性,将操作数据的方式封装为对象的方法。程序员只需要调用对象就可以使用这些属性与方法,不需要知道哪些方法是如何实现的。OOP的三个基本特性封装就是将对象的属性和方法尽可能的隐藏在类里面,只给用户留下使用的途径即可。而关于属性以及方法的实现,用户不需要知道。而根据封装,又有4种权限,类的属性和方法可以给谁看。publ原创 2020-10-29 13:24:33 · 237 阅读 · 0 评论 -
自学笔记:异常
异常异常就是在程序运行过程中产生使程序终止正常运行的错误对象。因为java是面向对象,所以定义了多重异常类。已有的异常都是Throwable类的子类。Throwable定义了如下方法:String getMessage():返回异常对象的详细描述。String toString():覆写了Object的方法,返回异常的简短描述。void printStackTrace():再标准错误流上输出异常调用栈的轨迹。void printStackTrace(PrintWriter s):再指定输出流原创 2020-10-29 13:22:06 · 86 阅读 · 0 评论 -
自学笔记:IO流
I/O流流根据流的方向分为输入流和输出流输入流:字节输入流、字符输入流输出流:字节输出流、字符输出流输入流是从数据源中读取数据,只进行读操作。输出流是将数据写入到指定文件中,只进行写操作。根据流的数据类型分为字节流和字符流字节流:字节输入流、字节输出流字符流:字符输入流、字符输出流纯文本数据优先使用字符流,除此之外使用字节流。字节流字节流结构图:InputStream为字节输入流的根类,有多个子类。方法:int read():从输入流中读取下一个字节并返回,返回为0~2原创 2020-10-29 13:17:27 · 581 阅读 · 0 评论 -
自学笔记:Java容器
容器**概念:**用来存放其他类的一种类,被称为容器或集合。**为何需要容器?**数组可以用来存放数据,但数组一旦生成就不能改变大小,而且数组只能存放相同的数据类型。容器关系图:(补充:Map接口下还有HashTable,做图的时候忘记了)Iterator接口是一个迭代器,因为创建代价小,被称为“轻量级”对象。开发人员在不了解序列底层结构的情况下,对其进行遍历。hasNext():检查序列下一个元素是否存在,有则返回true。next ():返回序列的下一个元素。remove():将迭代原创 2020-10-29 13:12:22 · 288 阅读 · 0 评论 -
自学笔记:JDBC
JDBCJDBC,Java DataBase Connectivity,全称数据库连接。是java用于连接数据库的标准API,为个习性数据库提供了一个同一的接口,然后不同的数据库公司实现该接口数据库连接步骤加载数据库驱动程序建立连接对象创建sql语句执行sql语句并获得结果关闭连接对象,释放资源。public JDBCDemo{ public static void main(String[] args){ //1. 加载数据库驱动 Class.f原创 2020-10-29 13:07:02 · 658 阅读 · 0 评论 -
自学笔记:SpringBoot
SpringBoot面向spring开发与springboot的区别:之前使用spring开发,如果做一个简单的项目,需要自己动手导jar包或者maven导依赖整合其他框架,如SSM。但是使用springboot之后,可以快速的生成一个独立运行的spring项目以及主流框架的集成。总而言之,springboot就是简化spring应用的开发的框架,对spring技术栈的整合。优点:快速的创建一个可独立运行的Spring项目以及主流框架的集成。使用嵌入式的Servlet容器,应用不需要打包成w原创 2020-10-29 12:53:20 · 244 阅读 · 0 评论