`
364434006
  • 浏览: 586858 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
html+css
div布局垂直居中显示
<style type=”text/css”>
body, html { height:100%; }
#outer { height:100%; overflow:visible; position:relative; }
#outer[id] { display:table; position:static; }
#middle { position:absolute; top:50%; }
#middle[id] { display:table-cell; vertical-align:middle; position:static; }
#inner { position:relative; top:-50%; }
#inner[id] { position:static; }
</style>
</head>
<body>
<div id=”outer”>
<div id=”middle”>
<div id=”inner”>
<p>这个在IE中可以实现居中,在Firefox中也可以实现居中</p>
</div>
</div>
</div>
</body>
</html> 
Eclipse快捷键
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力) 
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用) 
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定) 
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候) 
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能) 
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)Alt+Shift+V 移动函数和变量(不怎么常用)Alt+Shift+Z 重构的后悔药(Undo)
MongoDB
http://www.cnblogs.com/hoojo/archive/2011/06/01/2066119.html

http://code.google.com/p/rock-php/wiki/rock_mongo_zh

http://blog.csdn.net/column/details/mongodb.html
javascript
日期比较
Date.parse($("#dateTime").val().replace('-','/'))

js oo
http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html

日期函数
http://www.mattkruse.com/javascript/date/source.html
Java basic
后++ 的顺序是load ----iinc---store 
先++ 的顺序是iinc ----load---store 


synchronized与lock
相同点:具有相同的语义性和并发性
前者自动获取锁和释放锁,后者需要手动获取锁和释放锁
线程a获取对象o的锁,如果线程b要获取o的锁,
如果使用前者,那么线程a不释放o的锁,那么线程b将一直等待下去
如果使用后者,那么线程b可以通过指定的等待时间没有获取锁自动中断等待,执行其他操作(tryLock)
性能监测工具能够监测到前者的锁,无法检测到后者的锁,因为前者是锁定义是在jvm层面上的,后者是定义在代码层面上
使用场景:
竞争激烈下使用lock,否则使用synchronized

hibernate延迟加载
为了提升程序执行效率而采用的一种机制,使用cglib代理对象来实现
使用场景:
hibernate的load方法,返回的是一个代理对象,只有真正需要获取该对象的数据时,才会发送sql语句查询对象
hibernate的一对多查询

IOC
程序解耦,对象之间的依赖关系不需要进行硬性编码,他们的关联关系交由容器来维护

内部类:成员内部类、静态嵌套类、方法内部类、匿名内部类
项目管理
项目管理计划和实施建议:
http://blog.csdn.net/linfen1680/article/details/5781461
transaction
脏读:一个事务读取到了另一个事务还未提交的数据
不可重复读:在同一个事务中,前后两次读取的结果不一致
幻读:事务1读取工资为1000的员工10人,事务2添加一员工1000,事务1再次读取为11人
Data Struct
散列表:指定key通过散列函数返回散列表的地址。(见百科-哈希表)
JMX
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架
管理组件的规范
例如:Tomcat、Jboss、Weblogic
Jboss
Jboss
JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用

Jboss是基于JMX规范架构

Jboss内部的东西都是以组件的形式存在于服务器上(组件都是以mbean的形式注册在JMX服务器上),所以它本身就是面向服务的架构(Service-Oriented Architecture,SOA); 
WebService
介绍
http://blog.csdn.net/thunder4393/article/details/1708567
JVM
分派

静态分派:所有依赖静态类型来定位方法执行版本的分派动作(方法调用)
示例:方法的重载

动态分派:在运行期根据实际类型确定方法执行版本的分派过程(方法调用)
示例:方法的重写

Human man = new Man();

Human静态类型
Man实际类型
Node.js
Node.js
不是js应用、是基于服务器端的js运行平台
采用google chrome js引擎V8运行
采用C++编写
采用单进程、单线程运行(因为不需要考虑并发,所以就没有了锁和阻塞的概念)
采用事件驱动、异步编程为网络服务
采用“事件循环”的架构

V8:google chrom浏览器的js引擎,用于解释执行js代码,采用C++编写。
Node.js:是基于V8引擎编写的js运行环境,用于解释执行服务器端的js代码,采用C++编写


Node(也称Node.js)是一个服务器端 JavaScript 解释器,它改变了服务器应该如何工作的概念。它的目标是
帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代
码。实际上Node是对Google V8引擎进行了封装,并对一些特殊用例进行了优化,提供了替代的API,使得V8
在非浏览器环境下运行得更好。


Node.js简介:
http://wangdf-jee.iteye.com/blog/1396811

入门
http://www.nodebeginner.org/index-zh-cn.html

资源
http://www.open-open.com/news/view/1c97673
python
Python性能鸡汤:
http://www.open-open.com/news/view/111850f
SpringMVC
调用config.ServletName()
HelloServlet: 结果为:HelloServlet
Hello.jsp : 结果为:jsp

SpringMVC:
配置文件命名【注释1】-servlet.xml
注释1:配置DispatcherServlet时的servlet映射名称


http://www.cnblogs.com/chenying99/archive/2012/03/06/2381243.html
Oracle优化
product表记录2亿,条件字段建立索引.
注:title、status为索引字段
select count(索引字段) from product
	where title like '%abc@' and status in (2,3,4)
执行如上语句,耗时20m


执行
select count(索引字段) from product
	where title like '%abc@' 
耗时:5、6s

执行
select count(索引字段) from product
	where status in (2,3,4)
耗时:..

优化后:
select /*+FIRST_ROWS*/ count(索引字段) from product
	where title like '%abc@' and exists(select 'a' from product where status in(1,2,3,4))
耗时:5、6


优化说明:
使用exists比in效率要高,还可以将like使用函数instr优化(具体没有测试)

使用like,如果%在前,那么在查询时会忽略索引,直接全表查询


to_date与to_char的查询时间效率:
如果条件字段是date类型,那么在where的时候就将其转型为date类型,保持与表字段类型一致
反之..

hints的用法

--查询锁表
select a.SID,a.SERIAL# from v$session a , v$locked_object b where a.SID = b.SESSION_ID;
--杀锁
alter system kill session 'sid,serial#'
Thread
守护线程
	系统创建,例如垃圾收集线程
用户线程
	用户线程执行完毕,JVM自动关闭。如执行Main方法则启动了用户线程

当你在一个守护线程中产生了其他线程,那么这些新产生的线程不用设置Daemon属性,都将是守护线程,用户线程同样

例:我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,当我们的程序中不再有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开

守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出)   
    所以setDeamon(true)的唯一意义就是告诉JVM不需要等待它退出,让JVM喜欢什么退出就退出吧,不用管它

线程启动顺序:
一系列线程以某种顺序启动并不意味着将按照该顺序执行,对于任何一组启动的线程来说,调度程序不能保证其执行次序

Thread.yield()
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。
结论:yield()从未导致线程转到等待/睡眠/阻塞状态,在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果
ibatis 批量操作
                client.startTransaction(); --手动控制事务
		client.startBatch();
		for(int i =1;i<2000;i++){
			User userVO = new User();
			userVO.setId(i);
			userVO.setName("Test"+i);
			userVO.setSex("BOY");
			client.insert("addUser",userVO);
		}
		System.err.println(client.executeBatch());
		client.commitTransaction();
note
1.ibatis:对象的关联,各个表要有主键ID

Jetty 的工作原理以及与 Tomcat 的比较
http://www.ibm.com/developerworks/cn/java/j-lo-jetty/#

Tomcat 系统架构与设计模式
http://www.ibm.com/developerworks/cn/java/j-lo-tomcat2/index.html

基于角色-功能-资源的权限控制模型的设计与实现-引子
http://www.cnblogs.com/Hedonister/archive/2006/11/21/567383.html

Apache HTTP Server 与 Tomcat 的三种连接方式介绍
既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个:

1. 提升对静态文件的处理性能

2. 利用 Web 服务器来做负载均衡以及容错

3. 无缝的升级应用程序




function _reset(){
	var forms = document.forms;
	for(var i = 0;i<forms.length;i++){
		var els = forms[i].elements;
		for(var j=0;j<els.length;j++){
			var obj = els[j];
			console.log(obj.type);
			if(obj.type=='text'){
				obj.value="";
			}
			else if(obj.type=='textarea'){
				obj.value="";
			}
			else if(obj.type=='checkbox'){
				obj.checked="";
			}
			else if(obj.type=='radio'){
				obj.checked="";
			}
			else if(obj.type=='select-one'){
				obj.value=obj.options[0].value;
			}
		}
	}
}


获取select节点
  	var sel = document.getElementsByTagName("select");
  	var app = sel[sel.length-1];
  	var approvePerson = app.options[app.selectedIndex].text;


ibatis迭代标签使用:
1.如果入参是List
则:<iterate open="(" close=")" conjunction=",">#[]#</iterate>
2.如果入参是Map
则:<iterate open="(" close=")" conjunction="," property="id">#id[]#</iterate>
javaCode:
Map map = new HashMap();
map.put("id", list3);//这里的list3可以是集合、也可以是数组


Hibernate缓存:
Session清理缓存按照缓存中对象的属性变化来同步更新数据库
机制: Session在清理缓存的时候会自动进行脏检查(dirty-check),如果发现Session缓存中的对象与数据库中相应的记录不一致,就会同步数据库。

如何脏检查?
建立对象快照

session何时清理缓存?
1、transaction的commit方法
2、执行查询操作
3、session的flush方法

设计模式
http://blog.csdn.net/zhengzhb/article/details/7247188

Oracle
execute Immediate xx
动态sql使用绑定参数只能用于值
select * from :1  --这里的绑定参数无效
insert into t values(:1); --绑定参数有效

tomcat/websphere之webservice安全机制:
http://www.ibm.com/developerworks/cn/views/webservices/libraryview.jsp?view_by=search&sort_by=Date&sort_order=desc&view_by=Search&search_by=Web+services+%E5%AE%89%E5%85%A8%E5%AE%9E%E8%B7%B5%EF%BC%8C%E7%AC%AC+&dwsearch.x=18&dwsearch.y=25

eclipse打开文件的方式设置:preferences-->general-->Editors-->file associtions

oracle行转列:http://blog.sina.com.cn/s/blog_4c45ad8b0100lvhi.html

oracle数据库同步:http://www.oracle.com.cn/viewthread.php?tid=8500
probleam
1.Collections.synchronizedMap();


============2011.11.11============
1.数据A导入到数据B
2.配置工艺路线图形化

============2011.11.16============
1.BeanShell文档


Caused by: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'addressVO' to the column 'USER.addRsMap'.  One or both of the types, or the combination of types is not supported.

全文搜索引擎
单点登录
RBAC

SpringMVC:
Neither BindingResult nor plain target object for bean name 'command' available as request


--2012/4/10
当jvm出现OutOfMemoryError时可以通过配置-XX:+HeapDumpOnOutOfMemoryError参数来保留下来内存中当前的快照,快照的地址可以通过-XX:HeapDumpPath来设置

tomcat、jetty、jboss、servlet的模型图
tomcat:
jetty:http://www.ibm.com/developerworks/cn/java/j-lo-jetty/index.html
jboss:csdn
servlet:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/

图书
http://open-open.com/news/view/c139a1

System.out.println 效率
System.err.println

EJB transaction rollback 事务超时处理机制

Apache axis(service call)

account
fkf54683  FAng_@_color
y00188136 xiao@@yang1116


HashMap
IO
synchronized与lock
使用延迟加载
IOC

VPN、交换机、ups、scsi存储
获取资源文件
doc = saxReader.read(Test7.class.getClass().getResourceAsStream("/aa.xml"));
			System.out.println(doc.getRootElement().getName());
			
			doc = saxReader.read(Thread.currentThread().getClass().getResourceAsStream("/aa.xml"));
			System.out.println(doc.getRootElement().getName());			
			
			doc = saxReader.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("aa.xml"));
			System.out.println(doc.getRootElement().getName());
Groovy代码
Groovy代码
使用GPath必须在双引号内,例如:def d = 'jack';println "hello:${d}";

安全导航(?.):
def myClz = new MyClass();
println myClz?.getInnerClass()?.myMethod();
如果问号前面对象为空,则直接返回null,否则执行.后面的内容

获取集合中每个元素的长度
def lst = ["a","bc","def"];
println lst.size();//3
println lst*.size();//[1,2,3]
Oracle数组参数
create or replace  type myvarray_list as varray(50) of VARCHAR2(20);  

Create Or Replace  Procedure test_proc(
       totalCount Out Number,
       dataType In myvarray_list
)
Is
Begin
     Select Count(*) Into totalCount From t_test Where content In
    (select column_value from table(
            cast(dataType as myvarray_list)
            )
    );   
End;

Declare
       outCount NUMBER;
       myarr myvarray_list:=myvarray_list('content 9','content 6');
BEGIN
     test_proc(outCount,myarr);     
     dbms_output.put_line(outCount);
End;
Global site tag (gtag.js) - Google Analytics