zoukankan      html  css  js  c++  java
  • 20161115学习笔记

    linux:

    man命令,显示使用手册  /关键字,搜索手册中想要查询的字

    1可执行程序或shell命令2系统调用(Linux内核提供的函数)3库调用(程序库中的函数)4特殊文件(通常在/dev下)5文件格式和惯例(例如/etc/passwd)6游戏7杂项(包括宏包和惯例,比如man(7),groff(7))8系统管理命令(通常只能被root用户使用)9内核子程序

    NAME手册页对应的命令或函数的名字,后接简单描述

    SYNOPSIS这个区域的作用是列出使用命令的所有方法,列出了所有可能的参数组合。其中粗体文字要原封不动的输入,下划线的文字要用实际内容替换。

    whatis 命令,概述命令的作用

    ==============================================================

    容器:水壶是容器,水壶中存放着水,等我们需要水了,就直接用;Spring中的applicationContext是容器,里面存放着各种Bean,等我们需要了直接用,并可以自动创建管理Bean;Hierarchy是Log4j的容器,里面存放着各种Logger,用来管理各种Logger.

    AOP面向切面编程,基本单元是Ascept切面;OOP面向对象编程,基本单元是类。

    Spring AOP就是负责实施切面的框架,他将切面所定义的横切逻辑织入到切面所指定的连接点钟。

    AOP的工作重心在于如何增强织入目标对象的连接点上,这里包含两个工作:如何通过pointcut和advice定位到特定的joinpoint上,以及在advice中编写切面代码。

    sql注入攻击是最为常见的web应用程序攻击技术。同时sql注入攻击所带来的安全破坏也是不可弥补的。

    所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。具体来说,它是利用现有应用程序,将恶意的sql命令注入到后台数据库引擎执行的能力,它可以通过在web表单中输入恶意sql语句得到一个 存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行sql语句。比如先前很多影视网站泄露vip密码太多就是通过web表单提交查询字符爆出的,这类表单特别容易受到sql注入式攻击。

    原理:sql注入攻击是指通过构建特殊的输入作为参数传入web应用程序,而这些输入都是sql语法里的一些组合,通过执行sql语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据入侵系统。

    根据相关技术原理,SQL注入可以分为平台层注入和代码注入。前者右不安全的数据库配置或者数据平台的漏洞所致;后者主要是由于程序员对输入未进行细致的过滤,从而执行了非法的数据查询,基于此sql注入产生的因为通常表现为以下几个方面:1不当的类型处理2不安全的数据库配置3不合理的查询集处理4不当的错误而处理5转义字符处理不合适6多个提交处理不当。

    防护:1永远不要信任用户的输入,对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和--进行转换等;2永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询;3永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;4不要把机密信息直接存档,加密或者hash掉密码和敏感信息;5应用的异常信息应该给尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装;6sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT -IPS可以有效的防御sql注入,xxs攻击等,

    java中wait和sleep方法的不同?

    最大的不同是在等待时wait会释放锁,而sleep一直持有锁。wait通常被用于线程之间的交互,sleep通常被用于暂停执行。

    对于sleep方法,我们首先要知道该方法是属于Thread类中的。而wait方法,则是属于object类中的

    sleep方法导致了程序暂停执行地制定的时间,让出cpu其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。

    在调用sleep方法的过程中,线程不会释放对象锁。

    而当调用wait方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify方法后本县城才进入对象锁定池准备。

    23种设计模式:
    创建型模式 5:单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式

    结构型模式 7:适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式

    行为型模式 11:模板方法模式,策略模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,职责链模式,访问者模式

    设计模式的六大原则:开闭原则,里氏代换原则,依赖倒转原则,接口隔离原则,迪米特法则,合成复用原则

    开闭原则:对扩展开放,对修改关闭。(需要用到接口和抽象类)

    里氏代换原则:是对实现抽象化的具体步骤的规范

    依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体

    接口隔离原则:使用多个隔离的接口,比使用单个接口要好。

    迪米特法则:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

    合成复用原则:尽量使用合成/聚合的方式,而不是使用继承。

    博客收录内容大部分是网上自己找的,非原创。
  • 相关阅读:
    BZOJ 3626: [LNOI2014]LCA(树链剖分+离线处理)
    python备用
    STL的使用。。备忘
    DP专题
    任务
    hdu 网络流题集
    hdu KM匹配题集
    hdu 差分约束题集
    hdu 2sat题集
    Codeforces Round #261 (Div. 2)
  • 原文地址:https://www.cnblogs.com/zero1224/p/6067356.html
Copyright © 2011-2022 走看看