自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (6)
  • 收藏
  • 关注

原创 观察者模式

什么是观察者模式?(又称为发布-订阅模式)举个例子,当A,B,C上课打游戏时候,让小D帮他们放风,如果老师来了就要通知他们,他们就放下游戏开始看书,这个就是一个观察者模式。观察者模式包含观察者和通知者(主题)。主题保存的是观察者对象,包含的操作是可增加、删除观察者对象,当某个状态改变时,执行通知动作。在上例中,主题保存的就是A,B,C,并且当E也想让D放风时,可将E也加入观察者对象,若...

2020-03-09 22:10:54 105

原创 stomp.min.js(stomp协议的客户端脚本)、sockjs.min.js(SockJS的客户端脚本)以及jQuery

stomp.min.js(stomp协议的客户端脚本)、sockjs.min.js(SockJS的客户端脚本)以及jQuery 点击打开链接

2017-11-28 15:55:03 5719

原创 1.spring基础:spring概述+基础配置+Java配置+AOP

spring概述Spring框架是一个轻量级的企业级开发的一站式解决方案。解决方法指的是可以基于Spring解决Java EE开发的所有问题。Spring框架主要提供的技术支持:IOC容器、AOP、数据访问、Web开发、消息、测试。Spring使用简单的POJO(Plain Old Java Object,即无任何限制的普通Java对象)来进行企业级开发。每个被Spring

2017-11-28 15:30:54 363

原创 3.shell传递参数&&数组

在执行shell脚本时,可以向脚本传递参数,脚本获取参数的格式是:$n。n代表的是第n个参数。n为0时候,是所执行脚本的文件名。例:在test.sh中输入:                                                                    运行结果:                                             

2017-11-28 15:25:07 717

原创 2.shell变量

1.shell变量名的命名规则:    (1)首个字符必须为字母    (2)中间不能有空格,可以使用下划线    (3)不能使用标点符号    (4)不能使用bash中的关键字   如:your_name="hello"可以用语句给变量赋值。如:for file in 'ls /etc'  是将 /etc 下目录的文件名循环列出来2.使用变量:使用一个定义过的

2017-11-28 15:24:05 184

原创 1.Shell初识

脚本语言:    短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。Shell:    Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,它既是一种命令语言,又是一种程序设计语言。它指的是一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。shell脚本:    是一种为sh

2017-11-28 15:23:36 239

原创 七.磁盘管理

Linux磁盘管理的好坏直接关系到系统性能的问题。磁盘管理常用的命令:    1.df:列出文件系统的整体磁盘使用量。    2.du:检查磁盘空间使用量。    3.fdisk:用于磁盘分区。1.df:获取硬盘被占用了多少空间,目前还剩下多少空间。    语法:df [-ahikHTm]  [目录或文件名]    选项与参数:        -a:列出所有的文

2017-11-28 15:21:18 182

原创 1.数据分析引言--分解数据

固定基本流程:确定问题(了解问题)-->分解(数据分析总的来说就是分解问题和数据,使其成为更小的组成部分)-->评估(对在前两步了解到的情况做出各种结论)-->决策(把这些结论重新组合在一起,作出一个决策)数据分析总的来说就是认清问题,继而解决问题,分析师需要帮助客户思考自己的问题。1.确定问题    客户是分析结果的服务对象,所以要尽可能从客户那里了解多一些信息,才能确定问题。

2017-11-28 15:19:25 599

原创 六.Linux用户和用户组管理

Linux是一个多用户多任务的分时操作系统,当一个用户想使用系统资源的时候,他必须向系统管理员申请一个账号,然后用这个账号进入系统。使用账号管理的好处:    1.可以跟踪用户,控制其对系统资源的访问;    2.帮助用户组织文件,为用户提供安全性保护。实现用户账号的管理,需要:    1.用户账号的添加、删除和修改。    2.用户口令的管理。    3.用户组的管理

2017-09-18 14:08:31 488

原创 五.Linux文件与目录管理

Linux目录结构为树状结构,最顶级目录为根目录/。绝对路径:由根目录/写起。相对路径:由当前目录写起。处理路径常用的命令:1.ls:列出目录2.cd:切换目录3.pwd:显示当前目录4.mkdir:创建一个新的目录5.rmdir:删除一个空的目录6.cp:复制文件或目录7.rm:移除文件或目录可以使用 man 命令来查看各个命令的使用文档,如:ma

2017-09-11 14:28:50 186

原创 四.Linux文件属性

Linux是典型的多用户系统,每个用户权限都不一样,为了保护系统安全,Linux对不同用户访问同一文件的权限做了不同的限定。显示一个文件的属性以及文件所属的用户和组的命令:ll 或者 ls -l1.第一个字符代表的是这个文件是目录、文件或者链接文件等等。    d:目录    -:文件    l:链接文档(link file)    b:装置文件里的可供储存的接

2017-09-11 14:27:11 235

原创 三.Linux远程登录

Linux是通过SSH服务实现远程登录的,默认端口为22。Windows实现Linux远程登录的软件有XShell、putty等等,本文以XShell为例。打开XShell,弹出窗口如下图:名称中输入你想给这个会话起的名字,主机输入你的Linux的IP地址,点击确定。确定后,弹出窗口,需要输入登录的用户名,此时输入你的Linux用户名:输入完成后,点击确定,

2017-09-11 14:25:57 248

原创 了解微服务

微服务:将软件的功能进行拆分,将服务粒度做小,可以独立承担对外服务的职责。1.软件开发时,将要开发的项目分为不同的功能,负责每个功能的人员在自己的项目上并行开发,即每个微服务都是各自独立的项目,而对应的开发团队也基本上独立对应,保证了微服务的秉性研发,并且各自快速迭代。2.软件交付时,每个功能的项目都可以独立交付,不受其他功能的影响。这加快了微服务的迭代和交付效率。3.部署运行

2017-09-08 19:59:36 250

原创 初识Docker

容器:容器有效的将单个操作系统的管理资源划分到孤立的组中,以平衡孤立的组中的有冲突的资源的使用。容器可以在核心CPU本地运行指令,而不需要任何解释机制。也避免了准虚拟化和系统调用替换中的复杂性。虚拟化的核心是对资源的抽象,目标往往是在同一个主机上同时运行多个应用或系统,从而提高资源利用率。1.Docker基于Go语言,遵循Apache2.0协议,是开源容器项目。目前主流Linux操作系

2017-09-08 19:58:33 201

原创 AddTwoNumbers

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return

2017-09-08 19:55:48 188

原创 二.Linux系统目录

/bin:Binary,存放最经常使用的命令。/boot:存放启动Linux时使用的核心文件,包括一些连接文件和镜像。/dev:Device,存放Linux的外部设备。Linux访问设备方式和访问文件方式相同。/etc:存放所有的系统管理所需要的配置文件和子目录。/home:用户的主目录,每个用户都有自己的用自己账号命名的目录。/lib:存放系统最基本的动态链接共享库,几乎所有程序都要用到。/lo

2017-09-08 15:28:37 234

原创 一.Linux系统启动

Linux启动过程大概可以分为五个阶段:                                1.内核的引导:当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。首先读入/boot目录下的内核文件。    2.运行init:init进程是所有进程的起点。init程序首先要读取配置文件 /etc/inittab。启动时根据运行级别确定需

2017-09-08 15:15:50 196

原创 TwoSum

题目: Created by Administrator on 2017/8/11. Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exa

2017-08-11 21:09:26 187

原创 Flask使用mysql数据库

我使用的数据库框架为:Flask-SQLAlchemy,它是一个Flask扩展,这个扩展包装了SQLAlchemy,支持多种数据库后台。1.Flask-SQLAlchemyFlask-SQLAlchemy安装:pip install flask-sqlalchemy安装完成之后,还需要安装pymysql(pymysql是python中操作mysql的模块):pip install py

2017-04-11 22:16:36 1687

原创 web表单(2)--重定向和用户会话&Flash消息

1.重定向和用户会话在web表单(1)中的hello.py存在一个问题:用户输入名字提交表单后,点击浏览器的刷新按钮,会得到一个要求用户再次提交表单之前进行确认的警告。出现这个问题的原因是刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果这个请求是包含表单数据的POST请求,刷新页面后会再次提交表单。所以要解决这个问题,最好的办法是别让web程序把POST请求作为浏览器发送的最后一个

2017-04-05 16:12:21 1044

原创 web表单(1)--表单类&将表单渲染为HTML&在视图函数中处理表单

1.表单类使用Flask-WTF时,每个web表单都由继承自Form的类表示。这个类定义表单中的一组字段,每个字段都用对象表示。字段对象可以附属一个或多个验证函数。验证函数用来验证用户所提交的数据是否符合要求。hello.py:定义表单类from flask_wtf import Formfrom wtforms import StringField, SubmitFie

2017-03-30 17:20:58 2011

原创 跨站请求伪造保护

默认情况下,Flask-WTF能保护所有的表单免受跨站请求伪造(Cross-Site Request Forgery, CSRF)的攻击。恶意网站把请求发送到被攻击者已经登陆的其他网站时就会引发CSRF攻击。Flask-WTF实现CSRF保护:需要程序设置一个密钥,Flask-WTF使用这个密钥生成加密令牌,再用令牌验证请求中表单数据的真伪。app.config字典可以用来存储

2017-03-29 21:55:42 443

原创 安装Flask-WTF

Flask-WTF:这个扩展对独立的WTForms包进行了包装,方便集成到Flask程序中。安装Flask-WTF:pip install flask-wtf

2017-03-29 21:32:20 1366

原创 自定义错误页面

Flask允许程序使用基于模板的自定义错误页面。常见的错误页面有以下两种:1.404:客户端请求未知页面或者路由时候显示2.500:有未处理的异常时候显示在hello.py中自定义错误页面:from flask import Flask, render_templatefrom flask_bootstrap import Bootstrapapp = F

2017-03-29 21:25:46 875

原创 Bootstrap

Bootstrap基本信息:       Bootstrap是Twitter开发的一个开源框架,它提供的用户组界面可用于创建整洁的页面,且这些网页还可以兼容所有现代Web浏览器。它是客户端框架,所以不会直接涉及服务器。使用之前首先要安装一个Flask-Bootstrap的Flask扩展。安装 Flask-Bootstrap:使用pip进行安装Flask-Bootstrap,安装命令

2017-03-21 20:48:31 272

原创 Jinja2模板(2)--变量和控制结构

变量在Jinja2模板(1)中的例2中,{{name}}结构表示一个变量,它是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取。Jinja2能识别所有类型的变量。可以使用过滤器修改变量:过滤器名添加在变量名之后,中间使用竖线分隔开,如,下面的模板以首字母大写形式显示变量name的值:   Hello, {{name | capitalize}}Jinj

2017-03-20 21:23:17 8755

原创 Jinja2模板(1) --基本概念,模板引擎,渲染模板

首先需要了解几个概念:例:当用户在网站中注册了一个新账户,用户在表单中填写信息,然后点击提交按钮。业务逻辑:服务器接收到包含用户输入数据的请求,然后Flask把请求分发到处理注册请求的视图函数。表现逻辑:这个视图需要访问数据库,添加新用户,然后生成响应回送给浏览器。业务逻辑和表现逻辑混在一起会使得代码难以维护和扩展。把表现逻辑移到模板中可以提升程序的可维护性。模板:是一个包含响

2017-03-20 19:51:42 1067

原创 垃圾收集器

垃圾收集器确定对象是否存活的方法:1.引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器数值就加1,;当引用失效时,计数器数值就减1;任何时刻计数器为0的对象就是不可能再被使用的。Java虚拟机中没有选用此方法来管理内存,最主要的原因是因为它很难解决对象间相互循环引用的问题。如:对象A和对象B都有字段instance,赋值令A.instance=B.instance以

2017-03-20 19:36:39 195

原创 程序的基本结构:第一个Flask程序

在编写第一个程序之前,首先有几个概念需要知道:1.初始化:所有的Flask程序都必须创建一个程序实例。程序实例是Flask类的对象,经常使用的创建代码为:from flask import Flaskapp=Flask(__name__)Flask类的构造函数只有一个必须指定的参数,Flask用这个参数决定程序的根目录,以便能找到相对于程序根目录的资源文件,这个参数为程序主模块

2017-03-19 21:57:07 720

原创 Windows下Flask安装

·此次安装需要pip。若没安装pip首先需要安装pip安装Flask最便捷的方式是使用虚拟环境。虚拟环境是Python解释器的一个私有副本,在此环境中可以安装私有包且不会影响系统中安装的全局Python解释器。虚拟环境的好处:1.可以在系统的Python解释器中避免包的混乱和版本的冲突,为每个程序创建的虚拟环境可以保证程序只能访问虚拟环境中的包2.不需要管理员权限虚拟环

2017-03-16 20:26:07 1572

原创 垃圾收集算法

1.标记-清除算法先标记处所有需要回收的对象,在标记完成之后统一回收所有被标记的对象。主要两个不足:(1)效率不高(2)空间问题:标记清除后会禅城大量不连续的内存碎片,空间碎片太多可能会导致程序运行过程中需要分配较大对象时无法找到连续空间而提前触发垃圾收集动作。2.复制算法将内存容量分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将这一块内存中还存活的对象

2016-08-23 11:05:53 181

原创 Java内存区域

1.运行时数据区域运行时数据区域分为:方法区 、虚拟机栈、本地方法栈、堆、程序计数器。(1)程序计数器: (线程私有的内存)是一块较小的内存空间,它可以看作是线程所执行的字节码的行号指示器。这个内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。每条线程都有一个独立的程序计数器,各条线程之间程序计数器互不影响,独立存储。(2)Ja

2016-08-14 19:21:07 179

原创 关于JAVA的一些小知识

1.JDK:把Java程序设计语言、Java虚拟机、Java API类库这三类统称为JDK。JDK是用于支持JAVA程序开发的最小环境。2.JRE:把Java API类库中的JAVA SE API子集和Java虚拟机这两部分统称为FRE。JRE是支持Java程序运行的标准环境。3.按照Java技术关注的重点业务领域来划分,Java技术体系可以分为4个平台:(1)Java Car

2016-08-14 18:49:53 259

原创 线程几种方法

1. isAlive():判断当前的线程是否处于活动状态活动状态是指线程已经启动且尚未终止。public class IsAliveTest extends Thread {public static void main(String[] args) {IsAliveTest it=new IsAliveTest();System.out.println("begi

2016-08-14 11:32:18 307

原创 线程-实例变量

自定义线程中的实例变量可以分为两类:共享变量和不共享变量。1.不共享:每个线程都有自己的变量,不与其他线程共享。public class ThreadVariable extends Thread {private int count =3;public ThreadVariable(String name){super();this.setName(n

2016-08-14 10:36:37 287

原创 线程-实现线程的两种方式

线程就是进程中独立运行的子任务。单任务的特点是排队等待,是同步的,多线程是异步的。一个进程正在运行时候至少有一个线程在运行。可以调用Thread.currentThread().getId()和Thread.currentThread().getName()来获得当前线程的ID和名称。实现多线程的两种方式:继承Thread类和实现Runnable 接口。两种方式无本质区

2016-08-14 09:24:13 294

原创 策略模式

策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。

2016-04-06 18:10:10 233

原创 Java 中的一些小知识

1. Integer与boolean这两种类型并不相容。2.while循环必须要在方法里。

2016-03-31 14:22:46 263

原创 设计原则

1.把会变化的部分取出来并封装起来,好让其他部分不会受到影响。2.针对接口编程,而不是针对实现编程。针对接口编程其实是指 针对超类型编程 。就是说 变量的声明类型应该是超类型,这样的话,只要是具体实现这个超类型的类所产生的对象,都可以指定给这个变量。

2016-03-31 13:34:22 262

原创 设计模式概论

1.观察者模式: 让你的对象知悉现状 是JDK用的最多的模式之一。它可以帮助你的对象知悉现况,不会错过该对象感兴趣的事。对象甚至在运行时可以决定是否要继续被通知。有了观察者,你会消息灵通。2.装饰者模式:装饰对象如何使用对象组合的方式,做到在运行时装饰类。3.工厂模式:烘烤OO的精华实例化这个活动不应该总是公开的进行,初始化经常造成 耦合 问题。工厂模式从复杂的依赖

2016-03-29 20:00:48 247

JVM垃圾回收原理

JVM垃圾回收整理。。。

2018-08-20

JVM面试整理

JVM重要的章节的整理,都是面试需要的东西,自己一个一个整理的

2018-08-17

Microsoft Visual C++ 14.0

Microsoft Visual C++ 14.0 可放心使用 python下载mysql需要

2018-08-17

stomp.min.js(stomp协议的客户端脚本)、sockjs.min.js(SockJS的客户端脚本)以及jQuery

stomp.min.js(stomp协议的客户端脚本)、sockjs.min.js(SockJS的客户端脚本)以及jQuery

2017-11-28

AddTwoNumbers

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8

2017-09-08

StrategyPattern

一个小小的策略模式的代码 来自:Head First的书本内容

2016-04-06

空空如也

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

TA关注的人

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