Fork me on GitHub

MySQL优化方案

  1. 数据库设计要合理(3F)
  2. 添加索引(普通索引、主键索引、唯一索引、全文索引)
  3. 分表分库技术(取模分表、水平分割、垂直分割)
  4. 读写分离
  5. 配置mysql最大连接数()my.ini
  6. mysql服务器升级
  7. 随时清理碎片化
  8. sql语句调优

jquery常用方法总结

取值与赋值操作

1
2
3
4
5
6
$("#ID").val(); //取value值
$("#ID").val("xxx"); //赋值
$("#ID").text(); //相对于innerText
$("#ID").text(""); //相当于赋值给innerText
$("#ID").html(); //相当于取innerHTML
$("#ID").html(""); //相当于赋值给innerHTML

属性设置

1
$("#ID").attr(key,value);//取得或设置匹配元素的属性值

显示和隐藏

1
2
$("ID").hide(); //隐藏
$("ID").show(); //显示

事件处理

1
2
3
$(document).ready(fn);
$("#ID").bind(type,[data],fn); //绑定事件处理器函数
$("#ID").toggle(fn,fn);//注册每次点击时切换要调用的函数

外观效果

1
2
3
$("#ID").addClass(class);//添加样式
$("#ID").removeClass(class);//移除样式
$("#ID").css(name,value);//设置一个样式属性的值
阅读更多...

Java中的String为什么是不可变的? -- String源码分析

原文Java中的String为什么是不可变的? – String源码分析

什么是不可变对象?

众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。

区分对象和对象的引用

对于Java初学者, 对于String是不可变对象总是存有疑惑。看下面代码:

1
2
3
4
5
String s = "ABCabc";
System.out.println("s = " + s);

s = "123456";
System.out.println("s = " + s);

打印结果为:

s = ABCabc
s = 123456

首先创建一个String对象s,然后让s的值为“ABCabc”, 然后又让s的值为“123456”。 从打印结果可以看出,s的值确实改变了。那么怎么还说String对象是不可变的呢? 其实这里存在一个误区: s只是一个String对象的引用,并不是对象本身。对象在内存中是一块内存区,成员变量越多,这块内存区占的空间越大。引用只是一个4字节的数据,里面存放了它所指向的对象的地址,通过这个地址可以访问对象。

也就是说,s只是一个引用,它指向了一个具体的对象,当s=“123456”; 这句代码执行过之后,又创建了一个新的对象“123456”, 而引用s重新指向了这个心的对象,原来的对象“ABCabc”还在内存中存在,并没有改变。内存结构如下图所示:

mark

阅读更多...

比特--字节--字符--编码

比特(bit) =(经过分组编码)=> 字节(Byte) =(经过字符集编码)=> 字符

比特=bit=位 是数据存储的最小单位

1字节=8比特=8bit=8位

字符 = 字节+字符集

原文 比特–字节–字符–编码

比特

  • 计算机专业术语,是信息量单位,是由英文BIT音译而来。

    二进制数系统中,每个0或1就是一个位(bit),位是数据存储的最小单位。

    二进制数的一位所包含的信息就是一比特,如二进制数0100就是4比特。

    计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一次最多能处理32位数据。

  • 比特就是 bit(可以简写为b),就是位,是数据存储的最小单位。
  • bit=位=比特

字节

  • 字节是现代计算机中连续的、固定数量的比特(二进制):八个比特位为一字节
  • 英文Byte翻译就是字节
阅读更多...

使用通俗的语言理解Restful

来源知乎怎么用通俗的语言解释REST,以及RESTful

首先要明确一点:REST 实际上只是一种设计风格,它并不是标准。(所以你可以看到网上一大堆的各种最佳实践,设计指南,但是没有人说设计标准)。aisuhua/restful-api-design-references · GitHub

说说几个重要的概念:

1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。
URI 的设计只要负责把资源通过合理方式暴露出来就可以了。对资源的操作与它无关,操作是通过 HTTP动词来体现,所以REST 通过 URI 暴露资源时,会强调不要在 URI 中出现动词。比如:左边是错误的设计,而右边是正确的

1
2
3
4
GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 
GET /rest/api/addDogs --> POST /rest/api/dogs 添加一个小狗狗
GET /rest/api/editDogs/:dog_id --> PUT /rest/api/dogs/:dog_id 修改一个小狗狗
GET /rest/api/deleteDogs/:dog_id --> DELETE /rest/api/dogs/:dog_id 删除一个小狗狗

左边的这种设计,很明显不符合REST风格,上面已经说了,URI 只负责准确无误的暴露资源,而 getDogs/addDogs…已经包含了对资源的操作,这是不对的。相反右边却满足了,它的操作是使用标准的HTTP动词来体现。

2、REST很好地利用了HTTP本身就有的一些特征,如HTTP动词、HTTP状态码、HTTP报头等等

阅读更多...

面向对象的理解

来源 什么是面向对象思想

回答一

面向对象编程注重的是:

1)数据和器行为的打包封装

2)程序的接口和实现的解耦

回答二

面向对象是相对于面向过程的,比如你要充话费,你会想,可以下个支付宝,然后绑定银行卡,然后在淘宝上买卡,自己冲,这种种过程。但是对于你女朋友就不一样了,她是面向“对象”的,她会想,谁会充话费呢?当然是你了,她就给你电话,然后你把之前的做了一遍,然后她收到到帐的短信,说了句,亲爱的。这就是面向对象!女的思维大部分是面向“对象”的!她不关心处理的细节,只关心谁可以,和结果!

回答三

给你一个任务,你要思考怎么做。
如果你的思维方式是:我先做什么,再做什么……这叫面向过程;
如果思维方式是:我先做一个什么东西来做这件事,再做一个什么东西来做那件事,然后它们怎么相互配合……这叫面向对象。

阅读更多...

json数据详解

来源 JSON数据详解

一、 概念:JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。

优点:

(1)本质就是具有特定格式的字符串

(2)JSON完全独立于编程语言

(3)JSON比XML数据传输的有效性要高出很多,更省流量

缺点:

语义性较差,不如XML直观

二、JSON数据与XML数据的区别

mark

阅读更多...

js选择器和jquery选择器

1 元素、属性、标签的关系

html文档由嵌套的html元素组成,一个html元素包含开始标签和结束标签。属性是html元素提供的附加信息。

下面的例子中定义了一个div元素

id、name、class是元素属性

而div是组成元素的标签

1
<div id="test-div-id" name="test-div-name" class="test-div-class"></div>

选择器的作用就是获取满足指定条件的元素。这里的条件可以是元素的id、name、标签名、class名,还可以根据元素的属性来进行选择。

js选择器

getElementById()通过元素ID获取元素

getElementsByName()通过元素Name获取元素

getElementsByTagName()通过元素的标签名称获取元素

getElementsByClassName()通过元素的CSS类来获取元素

JQuery选择器

阅读更多...

Cookie与Session的区别

cookie和session都是为了解决HTTP协议是无状态的协议,使用cookie和session来记住用户的状态

cookie的内容主要包括:名字,值,过期时间,路径和域。

路径与域一起构成cookie的作用范围。

若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。。这种生命期为浏览器会话期的cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。

若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。

session

而session机制采用的是一种在服务端保持状态的解决方案。seeion机制需要借助cookie保存sessionID,当浏览器禁用cookie时,可以通过URL重写,把session id附加在URL路径的后面。

区别

阅读更多...
  • Copyrights © 2015-2023 高行行
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信