08 2017 档案
摘要:2. 修改pom.xml,添加MyBatis依赖 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc
阅读全文
摘要:1. 新建一个Web项目 参考之前的博客 2.修改 pom.xml,添加Spring依赖 [html] view plain copy <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20
阅读全文
摘要:二、创建项目“骨架” 下面用命名行创建一个最基本的maven项目 2.1 mvn archetype:generate 先创建项目的根目录,比如c:\test,命令行窗口下输入 cd /d c:\test mvn archetype:generate 首次运行时,mvn会从远程"中央仓库"下载一些必
阅读全文
摘要:pom.xml文件中的内 使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译。 使用Maven编译完成之后,在项目根目录下会生成一个target文件夹,如下图所示: 4 配置代理服务器(可选) maven项目在编译、测试、打包里,会需要从ma
阅读全文
摘要:1.Maven的约定 src/main/java: 存放项目的java文件。 src/main/resources: 存放项目的资源文件,如spring,hibernate的配置文件。 src/test/java: 存放所有的测试的java文件。 src/test/resources: 存放测试用的
阅读全文
摘要:如何克隆远程版本库到本地 git clone URL 如何用命令将本地项目上传到git 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 (注意: cd C:/Users/Dell/workspace/GitTestProject/src(运行命令的时候,路径要
阅读全文
摘要:msysgit是Windows版的Git,从https://git-for-windows.github.io下载(网速慢的同学请移步国内镜像),然后按默认选项安装即可。 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后
阅读全文
摘要:当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。
阅读全文
摘要:18.1 淘宝大浏览量商品详情系统简介 HTTP请求经过负载均衡设备分配到某个域名对应的集群,经过Nginx代理到JBoss或者Tomcat容器,由他们负责具体处理用户请求。目前这些大浏览量的系统大部分需要读取的数据都已经直接走 K/V 缓存了,不会直接从DB获取数据。 18.2 系统面临哪些挑战
阅读全文
摘要:14.1 Spring MVC的总体设计 要使用SPring MVC,只要在web.xml中配置一个DispatcherServlet. 再定义一个dispatcherServlet-servlet.xml(定义Mapping规则, interceptors, viewResolver, contr
阅读全文
摘要:13.1 Spring的骨骼架构 最核心的组件是:Core, Context, Bean。 13.1.1 Spring的设计理念 Spring最核心的组件是Bean组件。Spring解决的最关键的问题:对象之间的依赖关系用配置文件来管理,也就是依赖注入机制。这个依赖注入在IOC容器中管理。 13.1
阅读全文
摘要:需要很多Cookie时,考虑HTTP对Cookie数量和大小的限制。 几百或更多台服务器的时候,如何解决Session在多态服务器之间共享的问题。 还有一些安全问题,如Cookie被盗,Cookie伪造等。 二者的作用是为了保持访问用户与后端服务器的交互状态。 Cookie个数的增加和访问量的增加,
阅读全文
摘要:11.1 Tomcat总体设计 11.1.1 Tomcat总体架构 Tomcat和核心有连个组件:Connector和Container,Connector是可以被替换的。一个container可以有多个connector,多个connector和一个container形成一个service,ser
阅读全文
摘要:9.1 从Servlet容器说起 Servlet容器:Jetty, Tomcat等。 这里以Tomcat为例, 真正管理Servlet的容器是Context容器,一个Context对应一个WEB工程。context容器管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行直
阅读全文
摘要:mvn clean install -Dmaven.test.skip=truemaven的package与install命令区别: package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用. mvn compile 编译源代码生成
阅读全文
摘要:8.1 物理内存与虚拟内存 地址总线(连接处理器和RAM或处理器和寄存器的)的宽度影响了物理地址的索引范围,决定了处理器一次可以从寄存器或内存中获取多少个bit。同时决定了处理器最大的寻址空间,32位总线宽度可以有4GB的内存空间。 每个进程有独立的地址空间,进程之间不重合,OS保证每个进程只能访问
阅读全文
摘要:JVM能跨计算机体系结构来执行Java字节码,主要是由于JVM屏蔽了与各个计算机平台的软件和硬件之间的差异。 7.1 JVM体系结构 7.1.1 何谓JVM 模拟一个计算机来达到一个计算机所具有的计算功能。 以计算为中心来看计算机的体系结构可以分为如下几个部分。 指令集 计算机能识别的机器语言的命令
阅读全文
摘要:补充(非书中): Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取Java字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个Java 类。通过此实例的 newInstan
阅读全文
摘要:一次编译好的class文件是如何到处运行的 5.1 JVM指令集简介 5.1.1 与类相关的指令 5.1.2 方法的定义 5.1.3 属性的定义 5.1.4 其他指令集 5.2 class文件头的表示形式 5.3 常量池 5.3.1 UTF8常量类型 5.3.2 Fieldref,Methodref
阅读全文
摘要:是一种行为模式。 将数据的定义和数据的操作分离,对数据的操作封装在visitor中,当增加新的操作的时候,可以增加vistor实现新行为,而不用改数据结构。 访问者模式的优点 符合单一职责原则:凡是适用访问者模式的场景中,元素类中需要封装在访问者中的操作必定是与元素类本身关系不大且是易变的操作,使用
阅读全文
摘要:4.1 Javac是什么 是一种编译器,将JAVA源代码(.java文件)语言先转化成JVM能够识别的一种语言(.class文件),然后由JVM将JVM语言再转化成当前机器可以识别的机器语言。 4.2 javac编译器的基本结构 javac编译器的作用是将符合JAVA语言规范的源代码转化成符合JAV
阅读全文
摘要:3.1 几种常见的编码格式 3.1.1 为什么要编码 一个字节 byte只能表示0~255个符号,要表示更多的字符,需要编码。 3.1.2 如何翻译 ASCII码:有128个,用一个字节的低7位表示。 ISO-8859-1,能表示256个,是单字节编码。 GB2312: 双字节编码, GBK:是对G
阅读全文
摘要:2.6 设计模式解析之适配器模式 2.6.1 适配器模式的结构 把一个类的接口变换成一客户端能接受的另一个接口。 Target(目标接口): 要转换的期待的接口。 Adaptee(源角色):需要适配的接口。 Adapter(适配器):将源接口适配成目标接口,继承源接口,实现目标接口。 2.6.2 J
阅读全文
摘要:ll命令就相当于ls -l. [-][rwx][r-x][r--] [-] 代表这个文件名为目录或文件(d为目录-为文件) [rwx]为:拥有人的权限(rwx为可读、可写、可执行) [r-x]为:同群组使用者权限(r-x为可读可执行) [r--]为:其它使用者权限(r--为仅可读) total 1-
阅读全文
摘要:(1) 按照JAVA, 增加环境变量JAVA_HOME = C:\Program Files\Java\jdk1.8.0_31 增加环境变量CLASS_PATH = .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 编辑环境变量Path, 在末尾加上 ;%JAV
阅读全文
摘要:(原文地址:https://zhuanlan.zhihu.com/p/23488863) NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处
阅读全文
摘要:java的I/O操作类在包java.io下,大致分成4组: 所有文件的存储都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再存储这些字节到磁盘。在读取文件时,也是一个字节一个字节读取。 字节流可以用于任何类型的对象,包括二进制对象;而字符流只能处理字符或者字符串 字
阅读全文
摘要:B/S架构带来了以下两方面的好处: (1) 客户端使用同一个的浏览器。浏览器有统一性,不需要特殊的配置。浏览器的交互性使得用户使用它非常简单。 (2) 服务端基于统一的HTTP。和传统的C/S架构使用自定义应用层协议不同,B/S架构使用HTTP。使用HTTP也为服务提供商 简化了开发模式,使得服务器
阅读全文
摘要:18.1 Distutils基础 18.2 打包 18.2.1 建立存档文件 18.2.2 创建Windows安装程序或RPM包 18.3 编译扩展 18.4 使用py2exe创建可执行程序
阅读全文
摘要:c, c++, java比python快几个数量级。 17.1 考虑哪个更重要 开发速度还是运行速度更重要。 17.2 非常简单的途径:Jython和IronPython Jython可以直接访问JAVA标准库。 IronPython中可以直接访问C#标准库。 17.3 编写C语言扩展 扩展Pyth
阅读全文
摘要:测试驱动开发。 16.1 先测试,后编码 16.1.1 精确的需求说明 16.1.2 为改变而计划 16.1.3 测试的4个步骤 16.2 测试工具 16.2.1 doctest 16.2.2 unittest 16.3 单元测试以外的内容 源代码检查和性能分析工具。 16.3.1 使用PyChec
阅读全文
摘要:15.1 屏幕抓取 15.1.1 Tidy和XHTML解析 Tidy:用来修复不规范且随意的HTML文档的工具。 为什么用XHTML: 和旧版本的HTML之间最主要的区别:HTML可能只用一个开始标签(<p>)结束一段然后开始下一段,而在XHTML中,首先要显示的关闭当前段落(</p>), 这种行为
阅读全文
摘要:14.1 少数几个网络设计模块 14.1.1 socket模块 套接字包括:服务器套接字和客户机套接字。 在创建一个服务器套架字后,让它等待连接,这样它就在摸个网络地址处(IP地址和一个端口号的组合)监听,直到有客户套接字连接。连接完成后就可以交互了。 服务器套接字比较麻烦,因为必须随时准备处理客户
阅读全文
摘要:13.1 Python数据库编程接口(API) 13.1.1 全局变量 13.1.2 异常 13.1.3 连接和游标 13.1.4 类型 13.2 SQLite和PySQlite 13.2.1 入门 13.2.2 数据库应用程序示例 13.3 小结
阅读全文
摘要:12.1 丰富的平台 12.2 下载和安装wxPython 12.3 创建示例GUI应用程序 12.3.1 开始 12.3.2 窗口和组件 12.3.3 标签、标题和位置 12.3.4 更智能的布局 12.3.5 事件处理 12.3.6 完成了程序 12.4 但是我宁愿用... 12.4.1 使用T
阅读全文
摘要:11.1 打开文件 >>> f = open(r'c:\text\somefile.txt'), 第一个参数是文件名,必须有;第二个是模式;第三个参数是缓冲。 11.1.1 文件模式 如果open函数只带一个文件名参数,那么我们可以获得能读取文件内容的文件对象。如果要向文件内写入内容,则必须提供一个
阅读全文
摘要:10.1 模块 10.1.1 模块是程序 假设自己写的hello.py放在c:\python目录中,下面的方法就是导入自己的模块: import sys sys.path.append('c:/python') // 假设自己的程序保存在 c:\python import hello 如果hello
阅读全文
摘要:9.1 准备工作 python 3.0的所有类都会隐式地成为object的子类。 9.2 构造方法 在python中创建一个构造方法:只要把init方法的名字修改为魔法版本__init__即可。 __def__ :是析构方法,但是调用时机不确定,所以不建议使用。 9.2.1 重写一般方法和特殊的构造
阅读全文
摘要:8.1 什么是异常 8.2 按自己的方式出错 如何引发异常,以及创建自己的异常类型。 8.2.1 raise语句 Exception: 所有异常的基类。 AttributeError:属性引用或赋值失败时引发 IOError: 打开不存在的文件(或其他情况)时引发。 IndexError: 使用序列
阅读全文
摘要:python是面向对象的语言。 7.1 对象的魔力 7.1.1 多态 不管是字符串还是列表,count()函数都可以正常工作。 >>> ['ab','b','c'].count('c')1>>> 'abc'.count('c')1 下面的加号 + 运算符对于整数和列表都可以起作用,而且行为不同: >
阅读全文