- 博客(90)
- 收藏
- 关注
原创 Synchronized
一. 引言因代码中从来没有写过该类代码,但是又不能不了解,更不能不会写,为了梦想还是得学下.–每个人都知道怎样做才是最正确的,但是很少有人去那样做,因为那样做太TM辛苦了!二. 介绍synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码们,作用对象是调用这个代码的对象;修饰一个方法,被修饰的方法被称为同步方法,其作用范围是整个方法,作用对象是调用这个方法的对象修改一个静态
2021-11-08 15:42:18
574
原创 ubuntu20.0.4安装
博主是在vmware上进行安装,用于练习下载ubuntu20.0.4镜像首先到官网下载镜像,博主以带桌面的ubuntu为例安装系统文件 -> 新建虚拟机 -> 我选择的是自定义 -> 下一步-> 下一步[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tIgAcT7I-1627364719860)(https://ftp.bmp.ovh/imgs/2021/07/a44c07b87dd57adb.png)]-> 安装程序光盘映像
2021-07-27 13:45:52
1042
原创 utools图床
博主之前用过PicGo用来上传图片一开始额时候,有免费可用不限制的,但是不知为何后来,复制到优快云后外链图片就失效了,不论切换其他图床还是啥的都不行,于是只能换软件了utools这可正是个牛哄哄的软件嘞,谁用谁知道这里面有图床,我下了个下载量比较多的他的界面是这样的或者直接粘贴到这里进行上传都行...
2021-07-26 16:19:28
413
原创 WIN10添加桌面,切换桌面,蹭蹭提高效率,甚至节约显示器!!!
引言注: 博主配置有一台联想R9000P3060笔记本(2.5k165HZ)和一个1980*1080p的60hz显示器因为经常切换项目,每个项目所需的资源都是不一样的,数据库,前端,idea等等,多个项目同时打开的话,桌面东西太多且复杂,经常找东西都是一个一个遍历的寻找,效率低且难受,无意间发现win+TAB上面有个新建页面功能,试了下,真的叼!!!给大家上个预览图多屏幕win + TAB打开页面的左上角新建桌面,然后就可以使用Ctrl + win + 左右方向来切换桌面了,每个桌面放一个项目
2021-06-29 16:48:30
498
原创 两个Java项目使用同一个端口号
引言最近是部署两个项目的时候需要使用相同的端口号,但是这两个项目却不能将代码合并,真是个头大的问题,上网上搜也搜不到好的方法我的环境是windows注意: 首先你这两个项目中最好不要有相同的路由地址,否则接口调用会冲突我的方法就是使用nginx的转发来解决的安装nginx1.下载nginxhttp://nginx.org/en/download.html 下载稳定版本,以nginx-1.12.2.zip为例,直接下载 nginx-1.12.2.zip下载完后直接解压2.
2021-06-03 10:53:43
1790
原创 设计模式七大原则-合成复用原则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本合成复用原则的定义合成复用原则(Composite Reuse Principle, CRP)又叫组合/集合复用原则.它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现.如果要使用继承关系,则必须严格遵守历史替换原则.合成复用原则同历史替换原则相辅相成的,两者都是开闭原则的具体实现规范合成复用原则的重要
2021-05-28 16:50:42
265
原创 设计模式七大原则-迪米特法则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本迪米特法则的定义迪米特法则(Law of Demeter,LoD)又叫做最少知识原则,产生于1987年美国东北大学的一个名为迪米特的研究项目,由伊恩·荷兰提出,被UML创始者之一的布奇普及,后来又因为在经典著作<<程序员修炼之道>>提及而广为人知迪米特法则的定义是:只与你的直接朋友交谈,不跟"陌生人"说活.其含义是:如果
2021-05-28 15:11:15
190
原创 设计模式七大原则-接口隔离原则的定义
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本接口隔离原则的定义接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。2002 年罗伯特·C.马丁给“接口隔离原则”的定义是:客户端不应该被迫依赖于它不使用的方法。该原则还有另外一个定义:一个类对另一个类的依赖应该建立在最
2021-05-28 15:08:26
306
原创 设计模式七大原则-单一职责原则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本单一职责原则定义单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是只类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分该原则提出对象不应该承
2021-04-22 18:15:45
220
原创 设计模式七大原则-依赖倒置原则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本依赖倒置原则定义依赖倒置原则(Dependence Inversion Principle,DIP)是 Object Mentor 公司总裁罗伯特·马丁(Robert C.Martin)于 1996 年在 C++ Report 上发表的文章。依赖倒置原则定义为: 高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖
2021-04-22 16:57:51
352
1
原创 设计模式七大原则-里氏替换原则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本历史替换原则定义里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出: 继承必须确
2021-04-22 16:30:43
176
原创 设计模式七大原则-开闭原则
引言在软件开发中,为了提高软件系统的可维护性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本开闭原则的定义开闭原则由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭这就是开闭原则的经典定义.这里的软件实体包括以下几个部分:项目中划分出的模块类与接口方法开闭原则
2021-04-22 16:29:55
191
原创 设计模式-装饰者模式详解.md
定义动态地给一个对象添加一些额外的职责.就增加功能来说,装饰者模式比生成子类更为灵活装饰者模式是一种对象结构型模式使用场景在不影响其他对象的情况下,以动态,透明给单个对象添加职责需要动态的给一个对象增加功能,这些功能动态的被撤销当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时.不能采用继承的情况主要有两类:第一类是系统中存在大量的独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长;第二类是因为类定义不能继承角色抽象构建角色: 定义一个对象接口或抽象
2021-04-22 15:20:33
129
原创 Java多态详解
引言今天在写代码的时候突然看到一个堆多态的详解,说的很详细,没错是我看一遍看不懂的那种.本以为自己对多态还是比较了解的,但是看了下面这道面试题我沉默了面试题class A { public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); }}class B extends A{
2021-04-21 16:02:28
267
原创 关于Java字符串中拼接换行符
引言今天在写代码的时候发现一个问题,用普通打印/n会进行回车,但是从数据库中获取的值/n不会进行变换问题如下 System.out.println("大爷!你好大爷\n,咱这是到哪去啊?"); // 从数据库获取的值(跟数据库存储的内容是一模一样的) System.out.println(parameterValue + "到二仙桥");输出:大爷!你好大爷,咱这是到哪去啊?巡查地点: {NAME}\n任务状态: {STATUS}\n原因: {R
2021-04-21 11:02:09
14569
7
原创 Android中Context是什么
一. 引言在我看项目代码的时候,经常看到一些方法调用的时候都会放一个context对象,或者在Activity中直接放个this.为什么有这么多Context都是干嘛用的?首先我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考下,一个Android程序和一个java程序他们的最大区别在哪里?Android不想java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity,Service,Broa
2021-04-08 14:29:48
284
原创 M3U8详解
引言M3U8是Unicode(未编码)版本的M3U,用UTF-8编码.“M3U” 和 “M3U8” 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。M3U8其实就是HLS协议部分内容,而HLS是一个有苹果公司提出基于HTTP的流媒体网络传输协议HLS工作原理HLS的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些.当媒体流正在播放时,客户端可以选择从许多不同设备用源
2021-04-07 13:16:51
10039
原创 HLS协议详解
一. HLS简介视频的封装格式是TS.视频的编码格式为H264,音频编码格式为MP3,AAC或者AC-3除了TS视频文件本身,还顶一个了用来控制播放的m3u8(文本文件)为什么苹果要提出HLS这个协议,其实主要是为了解决RTMP协议存在的一些问题.比如RTMP协议不使用标准的HTTP接口传输数据,所以在一些特殊的网络环境下,可能被防火墙屏蔽掉.但是HLS由于使用的HTTP协议传输数据,不会遇到被防火请屏蔽的情况,除非你的防火墙做了特殊设置另外对于负载,RTMP是一种有状态协议,很难对视频服务进
2021-04-07 13:15:50
2679
原创 Vue学习遇到的坑(下拉选择框无法和传入数据对应)
下拉选择框无法和传入数据对应这是我一开始的代码不论我怎么v-model或者v-bind很多种方法,甚至让我怀疑element给的是不是正确的代码,我比对了好几遍,在确认无误后继续寻找原因,因为是我自己写的后台接口,我一度怀疑是不是布尔值的原因传过来的时候是这样的"sMalfunction" = false这样的json所以我怀疑吧引号去掉就会好吧,然而…最终问了下前端的大佬…value前面应该是有个:我没加上 <el-form-item label="是否故障" pro
2021-03-30 16:26:38
701
原创 UDP和TCP协议详解
一. 引言网络协议是每个程序员都要掌握的基础知识,干啥都离不开网络,就算在家里新买了个路由器不是吗,同事连不上网,你的女朋友手机没有网看剧了正看到高潮部分,到那时候你打开百度…那嫌弃的你的眼神仿佛在说,就这?程序员连个网都不会修?以上都是臆想,以实际为准.虽然看完本文章,你还是需要去百度怎么修复网络问题,但是你已经知道为什么会出现这种问题了!二. UDPUDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议.在OSI中,第四层传输层,处于IP协议的上一层UDP
2021-03-19 09:45:44
1655
原创 ArrayList详解
一. 引言ArrayList是Java集合框架中比较常用的数据结构了.继承自AbstractList,实现了List接口.底层基于数组实现容量大小动态变化.允许null的存在.同时还实现了RandomAccess,Cloneable,Serializable接口,所以ArrayList是支持快速访问,赋值,序列化的二. 成员变量ArrayList底层是基于数组来实现容量大小动态变化的private int size; // 实际元素个数transient Object[] elementData
2021-03-19 09:43:38
191
原创 LinkedList详解
一. 引言其实想知道LinkedList是个啥,知道什么是链表,什么是数组即可数组特点在内存中,数组是一块连续的区域.数组需要预留空间,在使用前要先申请占内存的大小,可能会浪费内存空间.三种情况有空间没有被使用太多就要扩容数组更换数组插入,删除效率低.因为其连续性,插入和删除一个元素其后面的元素都要向前或向后移动随机读取效率高.因为数组是连续的,知道每一个数据的内存地址,可以直接找到给地址的数据不好扩展,有时候数组空间不够要重新定义数组链表特点在内存中可以存在任何地方,不
2021-03-19 09:42:00
4623
2
原创 HashMap详解
HashMap引言哈希表(HashTable)也称散列表,是一种非常重要的数据结构,应用场景机器丰富,许多缓存技术的核心其实就是在内存中维护一张大的哈希表,本文会对java集合框架中HashMap的实现原理进行讲解,并对JDK7的HashMap袁爱民进行分析什么是哈希表首先来了解下其他的数据结构再讲数组采用一段连续的存储单元来存储数据.对于制定下标的查找,时间复杂度为O(1),通过给定值进行查找,需要遍历数组,注意对比给定关键字和数组元素,时间复杂度为O(n),当然对于有序数组,正则可以
2021-03-19 09:40:26
408
原创 ConcurrentHashMap
一. 引言HashMap众所周知底层是基于数组+链表组成的,不过在jdk1.7和1.8中具体实现稍有不不同,二. Java1.7上图是HashMap中的比较核心的几个成员变量初始化容器大小,因为底层是数组,所以这是数组默认大小容器最大值默认的负载因子(0.75)table真正存放数据的数组map存放数量的大小容器大小,可在初始化时显示指定负载因子,可在初始化显示指定负载因子因为hashMap的容量大小是固定的,比如默认初始化: public HashMap() {
2021-03-19 09:39:02
205
1
原创 学习Android遇到的Bug
吐司出现项目名小米高版本手机连上Android Stdio进行调试的时候,使用吐司会将项目名字也打印在上面,Toast.makeText(MainActivity2.this,"Hello World!", Toast.LENGTH_SHORT).show();打印为MyApp:Hello World!将上面代码修改为:Toast toast = Toast.makeText(MainActivity2.this, "Hello World!", Toast.LENGTH_SHORT);t
2021-03-19 09:35:35
188
原创 路由器配置
配置路由器连接路由器普通的路由器一般分为2种网线口(蓝色WAN口,黄色4个为LAN口),一个电源口(黑线),一个开关机键(左一),一个重置键(右一)WAN口(蓝色)WAN口是外网网线的接口,如从光猫上接过来的网线,或者从其他路由器的LAN口过来的网线(二级路由),如果该路由器的上一级是其他路由器,这里就假设上一级为主路由器A,此路由器为副路由器B,ip地址则需要从A路由器的配置里配置,或者打开配置页面自行配置,一般路由器的登录页是192.168.0.1/192.168.1.1等等可以根据品牌上网查
2021-03-19 09:34:08
2476
原创 SpringBoot整合netty
引入依赖 <!-- netty依赖 --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.42.Final</version> <scope>c
2021-03-19 09:25:36
212
原创 @Bean和@Autowaired区别
引言今天在构建项目的时候引入redisUtils的时候发生了错误,错误如下***************************APPLICATION FAILED TO START***************************Description:Field redisTemplateDB0 in net.cc.ucare.adsbhandler.config.RedisConfiguration required a single bean, but 2 were found:
2021-03-19 09:23:07
480
1
原创 新建一个普通的SpringBoot项目
新建SpringBoot项目首先,File->New->Project新建项目选择这个,其他,默认即可根据需求填写如下下一步,选择Spring版本,和想要导入的依赖们,我这里选择一个SpringWeb和数据库相关依赖就好单击下一步.输入文件夹名称和存储路径接下来等待依赖自动导入完成即可...
2021-03-19 09:19:33
255
原创 MySQL-Spring的事务机制
文章目录MySQL 事务引言特点Spring的事务机制JAVA EE传统事务机制Spring事务机制使用手动回滚MySQL 事务引言MySQL事务主要用于处理操作量大,复杂度高的数据,比如说,在人员管理系统中,两个用户同时删除某个人员时,等等,这样就构成了一个事务.特点在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务.事务处理可以用来维护数据的完整性,保证呈批的SQL语句要么全部执行,要么全不执行事务用来管理insert,update,delete语句
2021-03-18 09:05:31
127
原创 解决SSH连接不上的问题
首先问题可能出现在网络上,ping一下ip看是否能ping通检查防火墙是否开启,如果必须开启请检查防火墙是否开启22端口(软件默认使用22端口进行ssh连接)检查ssh是否启动 ./etc/init.d/ssh status检查账号密码是否正确,普通用户应该对应home下的文件夹的名字,如我的是wps[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1aA5PCsu-1616029189067)(index_files/c9cd2a53-dd41-4bdc-a6b9-8.
2021-03-18 09:02:36
12507
原创 前端多媒体-1.获取摄像头&麦克风
获取视频/音频引言因为最近在学习WebRTC,前端就需要学习一下媒体的相关知识.MediaDevices.getUserMedia()MediaDevice.getUserMedia()与WebRTC相关,欣慰他是通过这组API的门户.提供访问用户本地相机/麦克风媒体流手段MediaDevice.getUserMedia()方法提示用户是否允许使用一个视频或音频输入设备,例如相机或屏幕共享或麦克风.如果用户给予许可,就返回一个Promise对象.需要注意的是,由于用户不会被要求必须做出允许或者拒绝
2021-03-18 08:59:08
274
原创 http和https区别
引言我们在一些浏览器的地址栏可以看见有些网站显示安全,有些网站显示不安全,那么什么是安全的?什么是不安全的?在2017年1月发布的Chrome 56浏览器开始收集密码或信用卡数据的HTTP页面标记为"不安全",用户使用Chrome 62,带有输入数据的HTTP页面和所有以无痕模式浏览的HTTp页面都会被标记"不安全",此外,苹果公司强制所有IOS APP在2017年1月1日使用HTTPS加密HTTP和HTTPS发展史什么是HTTP?HTTP超文本传输协议,是一个基于请求响应,无状态的,应用层的协议
2021-03-18 08:56:53
138
原创 2021-03-18
srs引言之前使用webrtc技术进行拉流推流操作操作平台受限,因为是网页插件,且没有存储的功能,这让我移步到了srssrs简介srs是一个流媒体集群,支持RTMP/HLS/WebRTC/SRT/GB28181,高效、稳定、易用,简单而快乐。里面是有webRTC的,所以为什么我还要单独使用webrtc的,虽然网上的WebRTC使用代码可以进行存储,可是和我预期的还是有所偏差.srs是个什么?上面说了是一个流媒体集群,那这流媒体集群又是什么,你可以理解为他是一个服务器端,不需要依赖于浏览器运行,只需
2021-03-18 08:54:04
142
原创 Vue:计算机属性,内容分发,自定义事件
什么是计算属性,内容分发计算属性的重点突出在属性两个字上(属性是名词),首先它是个属性其次这个属性有计算的能力(计算是动词),这里的计算就是个函数;简单点说,它就是一个能够计算结果缓存起来的属性(将行为转化成了静态的属性),仅此而已;可以想象为缓存计算属性:计算出来的结果,保存在属性中,内存中运行:虚拟dom上代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">
2021-03-18 08:49:16
144
原创 Vue-Axios异步通信
什么是AxiosAxios是一个开元的可以在浏览器和NodeJS的一部通信框架,它主要作用是实现Ajax一部通信,其功能特点如下:从浏览器创建XMLHttpRequests从node.js创建http请求支持Promise API [JS链式编程]拦截请求响应转换请求数据和响应数据取消请求自动转换JSON数据客户端支持防御XSRF(跨站请求伪造)GitHub : http://github.com/axios/axios中文文档: http://www.axios-js.com/
2021-03-18 08:46:38
163
原创 学习Ajax看着一篇就够了
Ajax 引言学习Ajax之前一定要回Json,不会的可以参考我的这篇文章↓https://i.cnblogs.com/posts/edit;postId=13598088AJAX = Asynchronous JavaScript and XML(异步的JavaScript和XML)AJAX是一种不需要重新加载整个网页的情况下,能够更新部分网页的技术Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术在2005年,Google通过其Google Su
2021-03-18 08:42:34
279
原创 学习Json看着一篇就够了
引言在早期的web页面中,如web1.0时代,比如一个登陆页面需要刷新页面才能重新登陆,不点击登录页面就不知道自己密码输错了.再举个栗子,去百度输入1,再输入2,不用刷新是否下面的页面也会跟着改变,而且页面没有刷新.现在大多树的网站都是局部刷新,不刷新整个页面的情况下,实现页面刷新;web2.0时代,最重要的一个因素就是Ajax,而其中的传输数据就是Json数据什么是Json?JSON(JavaScript Object Notation.JS对象标记)是一种轻量级的数据交换格式,目前使
2021-03-18 08:42:07
191
原创 Java反射基础
静态VS动态语言动态语言是一类在运行时可以改变其结构的语言:例如新的函数,对象,甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化.通俗点说就是在运行时代码可以根据某些条件改变自身机构主要动态语言:Object-c ,c# ,javaScript,PHP,Python等.静态语言与动态语言相对应的,运行时结构不可改变的语言就是静态语言.如Java,c ,c++,Java不是动态语言,但是Java可以称之为准动态语言.即Java有一定的动态性,我们可以加以利用发射机制获得类似动
2021-03-18 08:41:16
82
原创 Java异常(Exception)
什么是异常实际工作汇总遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定复合你的要求,你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等.我们的程序跑着跑着内存或者硬盘可能就满了等等软件程序在运行过程中,非常可能遇到感刚刚提到的这些异常问题,我们叫异常,英文名叫Exception,意思是例外,这些,例外情况怎么让我们写的程序作出合理的处理,而不至于程序崩溃异常指程序运行总出现的不期而至的各种状况异常发生在程序运行期间,他影响了正常的程
2021-03-17 08:59:11
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人