网上看到的相关知识

一.try {} 里有一个 return 语句,那么紧跟在这个 try 后的 finally {} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后 ?

1.finally {}一定会执行,只有一种情况下不会执行,即调用了system.exit(),终止了虚拟机进程。

2. finally始终是在跳出方法之前被执行,常用来做一些资源清理工作,所以在return(跳出方法)前执行。

3.比较复杂点的情况是,如果return 后面有一个表达式,那么会先执行表达式的内容,但并不会马上跳出方法,而是执行finally块,若finally也有return语句,整个方法会从finallyreturn跳出,若finally中没有return,则会再从try{}中的return跳出。

二.数据库索引:索引问题就是一个查找问题

一般来说,应该在这些列上创建索引:在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

一般来说,不应该创建索引的的这些列具有下列特点:

第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

三.  导数据:

1、CREATE TABLE XXX_20130910 AS SELECT * FROM XXX;

利用原表建立一个中间表。

2、TRUNCATE XXX;

Truncate原表。

3、INSERT INTO XXX SELECT * FROM XXX_20130910 WHERE 7天;

将7天的数据插入原表。

四.javac: .java --- > .class

所以javac工作原理就是:

1首先通过词法分析器java源文件的字符流变成对应的token流。

2.通过语法分析器将token流组成更结构化的语法树。

3.通过语义分析器将粗糙的语法树变得更优化。

4.最后通过代码生成器遍历语法树生成java字节码

五.Ajax:

1.所谓异步,即通过 AJAX,JavaScript 无需等待服务器的响应,而是在等待服务器响应时执行其他脚本,当响应就绪后对响应进行处理

2.AJAX应用可以仅向服务器发送并取回必需的数据,通过在后台与服务器进行少量数据交换,实现网页的异步更新。避免了在网络上发送那些没有改变过的信息。就是能在不更新整个页面的前提下维护数据,就是允许浏览器与服务器进行通信而无需刷新页面,这使得Web应用程序能够更为迅捷地回应用户动作。

3.而Ajax用XHR对象做出的请求不会记录在浏览器的历史中。如果你的用户习惯使用浏览器的“后退”按钮在Web应用中进行导航,就可能会产生问题。

六.编程模式: 回调

1. 函数可以作为参数传入子函数,可以由子函数进行调用和返回。

2.调用者 A 想要调用函数 B, 但并不知道具体的 B 应该是哪一个,由 A 的调用者将 函数B 作为参数传入给调用者 A。 函数B 称为回调函数,  B 函数的调用称为回调。

3.回调最著名的例子是灵活的对象排序。 排序函数对指定的同类型的多个对象进行排序, 但它并不知道如何去比较对象的大小,因此, 必须传入一个比较对象的函数给它。 

4.让客户写希望调用的方法

5.注意异步

6. Javascript: 

                 定义: 

                 function A(callback) {

                            // other code

                            var params = obtain();

                            callback(params);

                  }  

                 var  callback = function(params) {

                        // codes to process

                 }

                 客户端调用: 

                 A(callback);   

七.并发:

1. 为了更好的用户体验。有的事情处理起来太慢,比如数据库读写、远程通信、复杂计算等等,如果在一个线程一个进程里面来做,往往会影响用户感受,因此需要另开一个线程或进程转到后台进行处理。它之所以能够生效,仰仗的是单CPU的分时机制,或者是多CPU协同工作。在单CPU的条件下,两个任务分成两拨完成的总时间,是大于两个任务轮流完成的,但是由于彼此交错,给人的感觉更自然一些。

2.为了加速完成某项工作。大名鼎鼎的Map/Reduce,做的就是这样的事情,它将一个大的任务,拆分成若干个小的任务,分配个若干个进程去完成,各自收工后,再汇集在一起,更快地得到最后的结果。为了达到这个目的,只有在多CPU的情形下才有可能,在单CPU的场合(单机单CPU…),是无法实现的。

八. final 修饰的成员变量无默认值

九.网络连接服务故障排查技巧

1.先用ping或wget命令测试网络连接性。[ping命令是网络层协议,不涉及端口的状态;wget是应用层协议,要涉及端口]
2.检测端口是否冲突。[两种思路,一种在本机上测试,主要是netstat命令;另一种利用传输层或以上的通信协议远程测试,这种思路不太可靠,主要有telnet]

十.了解一个东西:什么时候该用,什么时候不该用

十一.绝对路径和相对路径:

1." ./ " 是同级, " ../ "是上一级, "/"  是相对于根目录的

例如, C:\site\index.html.   G:\siet\web\datas\a.html    

        1 如果index.html链接a.html       href地址为: C:\site是一样的, \web\datas\a.html

        2 如果a.html中链接index.html  href地址为:   ../../index.html.  因为index.html相当于a.html的上一级的上一级.

十二. Java参数传值:基本类型传的是值,复杂类型传的是引用的值(方法内引用变的时候源引用参数不变,修改对象时原对象修改)



N. jQuery的基本设计思想和主要用法,就是 "选择某个网页元素,然后对其进行某种操作"

1.涵盖:

1).各种选择器:

2).Dom树移动

3).对元素增删改查

4).元素赋值

5).工具方法

6).事件操作

7).特殊效果

8)允许使用链式写法

2.选择器速度:
id选择器和元素标签选择器最快,class选择器较慢,属性选择器最慢

使用链式写法:采用链式写法时,jQuery自动缓存每一步的结果,因此比非链式写法要快。根据测试,链式写法比(不使用缓存的)非链式写法,大约快了25%

3.事件的委托处理(Event Delegation)

javascript的事件模型,采用"冒泡"模式,也就是说,子元素的事件会逐级向上"冒泡",成为父元素的事件。利用这一点,可以大大简化事件的绑定。比如,有一个表格(table元素),里面有100个格子(td元素),现在要求在每个格子上面绑定一个点击事件(click),是否需要将命令执行100次?因此,这个事件只需要在父元素绑定1次即可,而不需要在子元素上绑定100次,从而大大提高性能。

4.少改动DOM结构

改动DOM结构开销很大,因此不要频繁使用.append()、.insertBefore()和.insetAfter()这样的方法。如果要插入多个元素,就先把它们合并,然后再一次性插入。根据测试,合并插入比不合并插入,快了将近10倍。

5.选择作用域链最短的方法

Javascript的变量采用链式作用域。读取变量的时候,先在当前作用域寻找该变量,如果找不到,就前往上一层的作用域寻找该变量。这样的设计,使得读取局部变量比读取全局变量快得多。

http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值