- 博客(38)
- 资源 (12)
- 收藏
- 关注
原创 docker容器外访问报错curl: (56) Recv failure: Connection reset by peer
docker容器外访问报错curl: (56) Recv failure: Connection reset by peer
2022-09-30 10:34:51 1341 2
原创 JAVA中的值传递和引用传递
在 Java语言中,本质只有值传递,而无引用传递,对于我们感觉的对象的引用传递只是通过值传递的方式传递实体对象的地址,进而改变实体对象的属性;
2022-09-28 20:36:21 976
原创 七大设计模式总结
七大设计模式是软件设计模式必须尽量遵循的原则,是设计模式的基础。在实际开发过程中,并不是一定要求所有代码都遵循设计原则,而是要综合考虑人力、时间、成本、质量,不刻意追求完美,要在适当的场景遵循设计原则。这体现的是一种平衡取舍,可以帮助我们设计出更加优雅的代码结构。 各种原则要求的侧重点不同,下面我们分别用一句话归纳总结软件设计模式的七大原则,如下表所示。设计原则 一句话归纳 目的 开闭原则 对扩展开放,对修改关闭 降低维护带来的新风险 依赖...
2021-06-24 11:02:19 269
翻译 设计模式七大原则——开闭原则
1、基本介绍(1)开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则(核心)(2)一个软件实体如类,模块和函数应该对扩展开放(指对提供方开放),对修改关闭(指对使用方关闭)。用抽象构建框架,用实现扩展细节。(3)当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。(尽量增加一种功能/扩展,而不是修改,因为被修改的这部分可能正在被使用)(4)编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。2、应用实..
2021-06-24 10:53:09 477 1
原创 合成复用法则(Composite Reuse Principle)
1、基本介绍原则是尽量使用合成/聚合的方式,而不是使用继承如上图的四种方式,从上到下,从左到右依次是:继承:(is a)B可能只是使用A类的某个方法,其他方法并不会使用到;如果A类还被其他类继承,A类的方法一旦改变,会影响到B 依赖:(B依赖A)在B中用一个方法将A传入即可 组合:(把A组合到B里面)B有个成员变量是A类型的,在构建该属性时就new,即:当B的一个对象实例创建好的时候,B中的属性a也创建好,此时,A和B的关系是组合关系。 聚合:(把A聚合到B里面)B有个成员变量是A类.
2021-06-24 08:55:32 203
原创 迪米特法则
1、基本介绍(1)一个对象应该对其他对象保持最少的了解(降低耦合度)(2)类与类关系越密切,耦合度越大(3)迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部,对外除了提供的 public 方法,不对外泄露任何信息(4)迪米特法则还有个更简单的定义:只与直接的朋友通信(5)直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是.
2021-06-24 08:52:24 128
翻译 开闭原则
1、基本介绍(1)开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则(核心)(2)一个软件实体如类,模块和函数应该对扩展开放(指对提供方开放),对修改关闭(指对使用方关闭)。用抽象构建框架,用实现扩展细节。(3)当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。(尽量增加一种功能/扩展,而不是修改,因为被修改的这部分可能正在被使用)(4)编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。2、应用实..
2021-06-24 08:49:35 210
原创 里式替换原则
2.6.1 OO中的继承性的思考和说明(1)继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。(2)继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障(3)问题提...
2021-06-23 16:01:39 127
原创 依赖倒转原则
1、基本介绍依赖倒转原则(Dependence Inversion Principle)是指:高层模块不应该依赖低层模块,二者都应该依赖其抽象(抽象类/接口),不要去依赖一个具体的子类 抽象不应该依赖细节,细节应该依赖抽象(这样稳定性会比较好) 依赖倒转(倒置)的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类 使用接口或抽.
2021-06-22 09:19:28 1799
原创 接口隔离原则(Interface Segregation Principle)
2.4.1 基本介绍客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。先看一张图:(1)类 A 通过接口Interface1依赖类 B,类 C 通过接口Interface1依赖类 D,如果接口 Interface1 对于类A 和类C来说不是最小接口,那么类B 和类D 必须去实现他们不需要的方法。(B、D的空心箭头代表实现,B和D都实现了Interface1,这样它们就得实现Interface1中的所有方法)(本图就违反了接口隔离原则)(2)按隔离原则应当这.
2021-06-19 23:35:34 777
原创 windows安装mysql8.0解决caching-sha2-password问题和关闭logbin
一、解决caching-sha2-password问题打开clinet登陆后执行四行命令ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码FLUSH PRIVILEGES; #刷新权限al..
2021-06-19 23:27:58 657
原创 设计模式七大原则——单一职责原则
序言:设计模式常用的七大原则有:(1)单一职责原则(2)接口隔离原则(3)依赖倒转(倒置)原则(4)里式替换原则(5)开闭原则(6)迪米特法则(7)合成复用原则
2021-06-08 10:28:27 144
原创 序言:设计模式概述
2.1 设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件)具有更好的代码重用性 (即:相同功能的代码,不用多次编写) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 可扩展性 (即:当需要增加新的功能时,非常的方便,也称为可维护性) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响) 使程序呈现高内聚,低耦合的特性。(即:模块内部是非常紧密的,但是模块与模块之间/功能与功能之间的.
2021-06-08 10:06:15 128
原创 分布式数据库HBase
1、HBase是什么? HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。Hadoop安装以后,不包含HBase组件,需要另外安装。(1)HBase和BigTable的底层技术对应关系(2)HBase的必要性(与HDFS和MapReduce的区别):•Hadoop...
2020-09-02 13:39:14 846
原创 大数据基础——大数据处理架构Hadoop
一、Hadoop是什么?(1)Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构(2)Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中(3)Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce(4)Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力(5)几乎所有主流厂商都围绕Had
2020-08-23 21:01:52 875
转载 王道书串和 KMP 算法内容优化
转载自王道论坛文档下载请到:https://download.csdn.net/download/wu_l_v/10589751
2018-08-08 08:29:01 1141
原创 机器学习常用算法总结
一、监督学习 (一)分类 1、k—近邻(Knn算法) 2、决策树 3、基于概率论的分类法:朴素贝叶斯 4、 支持向量机(SVM) 5、AdaBoost元算法 (二)回归 1、线性回归 2、局部加权线性回归/核回归 3、Logist...
2018-06-13 17:20:27 329 1
原创 java报错:Description Resource Path Location Type Java compiler level does not match the version of the
今天从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse...
2018-06-04 10:52:25 21770 2
原创 ubuntu下mysql安装、删除、配置远程访问
安装ubuntu上安装mysql非常简单只需要几条命令就可以完成。1. sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install libmysqlclient-dev 安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以
2018-01-30 12:47:30 316
原创 超简单的ubuntu下安装teamview教程
1、去官网下载安装包。官网链接:(https://www.teamviewer.com/zhcn/download/linux/)2、在命令行进行安装(在下载文件夹下打开命令行,输入:sudo dpkg -i teamviewer_13.0.6634_amd64.deb)(teamviewer_13.0.6634_amd64.deb为安装包名,根据自己安装包)sudo d
2018-01-28 12:13:42 52239 5
原创 pycharm 报错:pycharm please specify a different SDK name
我在给项目配虚拟环境里的解释器的时候有没有遇到过这个问题的啊,就是一个正常的项目,解释器忽然丢了,解释器是配在虚拟环境里面的,再去选择解释器就一直报这个错,给现有项目添加虚拟环境的时候也是报这个错——pycharm please specify a different SDK name。百度了好久没有解决方法,去Google上搜了搜发现,是因为我有两个*现有*虚拟环境具有相同的名称(即
2018-01-13 10:12:25 72981 39
原创 pycharm下基于Virtualenvwrapper和anaconda的Python虚拟环境配置应用
Python好用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,为了解决这些问题,有不少发行版的Python,比如WinPython、Anaconda等,这些发行版将python和许多常用的package打包,方便Python使用者直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。 我们在实际使用中往往自己的不同项目会用到不同的Pyth
2018-01-09 18:41:23 14293
原创 C#为什么输入console.readLine()调试仍然闪退
直入正题,今天C#上课的时候遇到了一个问题,就是输入console.readLine()调试仍然闪退,对于我这种新手来说,都是拿console.readLine()来当暂停键,还没遇到过这种问题,查了查前辈们的博客,原来是缓冲区在作怪。using System;using System.Collections.Generic;using System.Linq;using System.
2018-01-08 19:33:07 6766 1
原创 C#中的数据类型转换总结
初学c#经常为这几种数据类型转换方式而迷茫,为了彻底搞清它们之间的区别和优缺点,结合网上前辈总结的资料和自己的动手验证,在此写出来,一方面,为那些跟我有过相似经历的朋友们搜索资料的时候能提供一点微小的帮助,另一方面,希望前辈们路过的时候指导一下,看哪里有不合适的地方。 众所周知,C#是一门强类型语言,对类型要求比较严格,但是在一定的条件下是可以相互转换的,如将int型数据转换成doubl
2018-01-06 15:46:53 16962 3
原创 C#课后作业总结
*******************************************************************************************************************本文内容为课后作业的总结,内容仅供参考。*************************************************************
2018-01-05 22:43:39 1860
转载 ubuntu 和Mac下安装、配置、使用virtualenv与 virtualenvwrapper
virtualenvvirtualenv 是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.6.6 / python3.0 ,但是如果都装到一起,经常会导致问题。所以需要一个工具能够将这两种或几种不同版本的环境隔离开来,需要哪个版本就切换到哪个版本做为默认版本。virtualenv 既是满足这个需求的工具。它能够用于创建独
2018-01-04 18:36:12 260
原创 C#字符串操作上机编程题
1. 编写一个控制台程序,要求将字符串中的每个字符颠倒输出。 //[方法一:利用字符串操作] static void Main(string[] args) { string user = Console.ReadLine(); char[] a = user.ToCharArray();
2018-01-04 11:55:31 1358 1
转载 【转】 C#操作字符串方法总结
staticvoid Main(string[] args){ string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD"; Console.WriteLine(s[0]); // 输出"A"; Console.WriteLine(s.Length)
2018-01-04 11:47:17 368
翻译 深度学习进阶之第5章 手写数字识别
人脑识别图像:【deeplearning是由New network演变而来的】人脑: 大脑视觉皮层V1, 包含140,000,000神经元; 数百亿个连接, 还有V2,V3,V4,V5 人脑进化几千年计算机识别图像:【计算机识别图像: 读到的数据都是数字矩阵】神经元:
2018-01-03 20:13:20 633
翻译 深度学习进阶之第3章&第4章 环境配置分部详解
OS: Linux: Ubuntu 14.04【要是按作者的方法配置,一定要用Ubuntu14.04,用16.04版本会发生错误】安装:1. Pip (Python 2.7.9或以上自带pip): sudo apt-get install pyton-pip2. 尝试安装scikit-neuralnetwork: 需要 numpy scipy theano
2018-01-03 19:40:25 387
翻译 深度学习进阶之第2章 软件包安装和环境配置总述
OS: Linux: Ubuntu 14.04【要是按作者的方法配置,一定要用Ubuntu14.04,用16.04版本会发生错误】安装:1. Pip (Python 2.7.9或以上自带pip): sudo apt-get install pyton-pip2. 尝试安装scikit-neuralnetwork: 需要 numpy scipy theano
2018-01-03 19:19:32 352
翻译 深度学习进阶之第1章 基本概念清晰版
1. 什么是深度学习? 深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。2. 深度学习什么时间段发展起来的? 其概念由著名科学家Geoffrey Hinton等人在2006年和2007年在《Sciences》等上发表的文章被提
2018-01-03 18:59:29 352
转载 windows下安装Python虚拟环境virtualenvwrapper-win
1 前言由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题。通过 virtualenv 这个工具,就可以构建一系列 虚拟的Python环境 ,然后在每个环境中安装需要的软件包(配合 pip 使用),这一系列的环境是相互隔离的。作为一个独立的环境就不容易出现版本问题,还方便部署。
2018-01-03 14:44:34 1815
原创 Windows解决anaconda下双python版本安装TensorFlow
首先,就是双版本anaconda的安装: 以前安装好的是python2.7版本,而TensorFlow的安装仅支持3.5版本的。但是自己本来的2.7版本又不想遗弃。所以安装双版本的; 在anaconda的官网上下载2.7版本和3.5版本; 先安装其中一个,我是想安装的2.7.一路next就可以了。 重点来了,安装3.5版本的过程如下: 1. 我下载的版本是Anaconda 4.2.0-W
2018-01-03 11:36:20 909
转载 致Python初学者们 - Anaconda入门使用指南
打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢?到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢? 为什么提示说在安装这个工具前必须先安装一堆其他不明所以的工具? 相信大多数 Python 的初学者们都曾为环境问题而头疼不已,但你并不孤独,大家都是这么折腾过来的。为了在入门时少走弯路,并且让高涨的积极性不
2018-01-03 10:50:23 861
原创 vs后期添加c#语言环境
vs是Microsoft Visual Studio的简称,是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.Net
2018-01-03 10:38:22 12331 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人