一些小小的问题(2)

7、toString()方法
 一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可以引用类型呢,Person p = new Person();一个字符串加上这个p,你就不知道要怎么把这个p转换成字符串了,因为这个p是一个引用类型。,任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法,通过这个方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。
8、HTTP协议
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。在HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。
 HTTP请求的细节——请求行
  请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,常用的有: GET、 POST
  用户如果没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。
  不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上:如果请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1
  GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
  如果请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
 HTTP响应的细节——状态行
    状态行格式: HTTP版本号 状态码 原因叙述<CRLF>      举例:HTTP/1.1 200 OK
  状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类
 
9、一些最重要的 SQL 命令(对大小写不敏感)
• SELECT - 从数据库中提取数据
SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。SQL SELECT 语法
SELECT column_name,column_name  FROM table_name;(选取属性)与
SELECT * FROM table_name;(表中选取所有列)
• SELECT DISTINCT返回唯一不同的值
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。SQL语法
SELECT DISTINCT column_name,column_name FROM table_name;
• WHERE 提取那些满足指定标准的记录。
SELECT column_name,column_name  FROM table_name
WHERE column_name operator value
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。在上个实例中 'CN' 文本字段使用了单引号。如果是数值字段,请不要使用引号。
 
• AND & OR 运算符用于基于一个以上的条件对记录进行过滤
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录,例:
SELECT * FROM Websites  WHERE alexa > 15 AND (country='CN' OR country='USA');
• ORDER BY 对结果集进行排序。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
SELECT column_name,column_name   FROM table_name
ORDER BY column_name,column_name  ASC|DESC;
• UPDATE - 更新数据库中的数据
语法:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value
• DELETE - 从数据库中删除数据
DELETE 语句用于删除表中的行
DELETE FROM table_name     WHERE some_column=some_value;
您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:DELETE FROM table_name;或 DELETE * FROM table_name;
• INSERT INTO - 向数据库中插入新数据
INSERT INTO 语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name     VALUES (value1,value2,value3,...);第二种形式需要指定列名及被插入的值:INSERT INTO table_name (column1,column2,column3,...)    VALUES (value1,value2,value3,...);
• CREATE DATABASE - 创建新数据库
• ALTER DATABASE - 修改数据库
• CREATE TABLE - 创建新表
• ALTER TABLE - 变更(改变)数据库表
• DROP TABLE - 删除表
• CREATE INDEX - 创建索引(搜索键)
• DROP INDEX - 删除索引
10、正向代理和反向代理的区别
一、正向代理的概念
正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。结论:正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
二、反向代理的概念
举例:用户想访问:"http://ooxx.me/readme",但ooxx.me上并不存在readme页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户,但用户并不知情,这很正常,用户一般都很笨。这里所提到的ooxx.me 这个域名对应的服务器就设置了反向代理功能。结论:反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
三、正向代理和反向代理的区别
从用途上来讲:正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。从安全性来讲:正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。
打个比方,a,b,c三个人,正向代理是a通过b向C借钱,a知道c的存在 。反向代理是a向b借钱,b又向C借,a不知道c的存在。
11、MIME 类型
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。
12、正则表达式(部分校验)
@Pattern(regexp="",  message = "\"身份证\" 必须是18位数字")
"^\\d{18}$"身份证号 (^\\d{15}|\\d{18}$)
"^[0-9]*[1-9][0-9]*$正整数
"^\\d+$"正整数+0
"^(-)?\\d+(\\.\\d+)?$"  只能填写整数或小数
13、事务
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
例如:A——B转帐,对应于如下两条sql语句:
update from account set money=money+100 where name='B';
update from account set money=money-100 where name='A';
事务的四大特性(ACID)
4.1、原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败
4.2、一致性(Consistency)
  官网上事务一致性的概念是:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。以转账为例子,A向B转账,假设转账之前这两个用户的钱加起来总共是2000,那么A向B转账之后,不管这两个账户怎么转,A用户的钱和B用户的钱加起来的总额还是2000,这个就是事务的一致性。
4.3、隔离性(Isolation)
  事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
4.4、持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
14、@NotEmpty,@NotBlank,@NotNull用法区别
@NotEmpty 用在集合类上面
@NotBlank 用在String上面
@NotNull    用在基本类型上
   1.@NotNull:不能为null,但可以为empty   例: (""," ","   ")
    2.@NotEmpty:不能为null,而且长度必须大于0     例:(" ","  ")
3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0  例: ("test")    即:必须有实际字符
1.String name = null
@NotNull: false
@NotEmpty:false
@NotBlank:false
2.String name = "";
@NotNull:true
@NotEmpty: false
@NotBlank: false
3.String name = " ";
@NotNull: true
@NotEmpty: true
@NotBlank: false
4.String name = "Great answer!";
@NotNull: true
@NotEmpty:true
@NotBlank:true
15、实例中的所有 jQuery 函数位于一个document ready函数
例子:$(document).ready(function(){
--- jQuery functions go here ----
});
这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。如果在文档没有完全加载之前就运行函数,操作可能失败。
16、jQuery 事件 - bind() 方法
bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。
规定向被选元素添加的一个或多个事件处理程序,以及当事件发生时运行的函数。
语法   $(selector).bind(event,data,function)
参数 描述
event 必需。规定添加到元素的一个或多个事件。
由空格分隔多个事件。必须是有效的事件。
data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。
17、变动事件DOM2
DOM2级的变动(mutation)事件能在DOM中的某一部分发生变化时给出提示。变动事件是为XML或HTML DOM设计的,并不特定于某种语言。DOM2级定义了如下变动事件:
(1)DOMSubtreeModified:在DOM结构中发生的任何变化时触发。这个事件在其他任何事件触发后都会触发。
(2)DOMNodeInserted:在一个节点作为子节点被插入到另一个节点中时触发。
(3)DOMNodeRemoved:在节点从其父节点中被移除时触发。
(4)DOMNodeInsertedIntoDocument:在一个节点被直接插入文档或通过子树间接插入到文档之后触发。这个事件在DOMNodeInserted之后触发。
(5)DOMNodeRemovedFromDocument:在一个节点被直接从文档中移除或通过子树间接从文档中移除之前触发。这个事件在DOMNodeRemoved之后触发。
(6)DOMAttrModified:在特性被修改之后触发。
(7)DOMCharacterDataModified:在文本节点的值发生变化时触发。

 

posted on 2017-08-11 16:59  zhaoby451  阅读(122)  评论(0编辑  收藏  举报