Java线程与并发编程
基本知识
线程的本质是机器指令的执行路径,它完全是多任务操作系统之上的虚拟概念。从硬件角度来看,每一个CPU只有一条执行路径,成百上千的线程同时运行,只是操作系统调度形成的假象。
每一个计算机程序,或者说进程,至少有一个线程,称为主线程。Java程序的主线程叫…
阅读全文
16 years ago
0
JDBC知识集锦
通过JDBC得到数据字典、数据库元数据信息
下面的例子中,获取到所有表的名称,并进行了截断。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
StringBuffer buff = new StringBuffer(); conn = getConnection(); conn.setAutoCommit( false ); String TABLE_NAME = "TABLE_NAME"; String[] TABLE_TYPES = { "TABLE" }; DatabaseMetaData dbmd = conn.getMetaData(); ResultSet tables = dbmd.getTables( null, null, null, TABLE_TYPES ); while ( tables.next() ) { String tabName = tables.getString( TABLE_NAME ); buff.append( "TRUNCATE TABLE " + tabName + ";" ); } conn.createStatement().execute( buff.toString() ); conn.commit(); |
如何使用HSQLDB内存模式
1 2 3 |
Class.forName( "org.hsqldb.jdbcDriver" ); Connection conn = DriverManager.getConnection( "jdbc:hsqldb:mem:test", "sa", "" ); conn.createStatement().execute( "SHUTDOWN" ); |
如何使用HSQLDB进程内(In-Process)模式
和内存模式类似,URL为:jdbc:hsqldb:file:/C:/testdb/testDbName 阅读全文
17 years ago
0
PHP5学习笔记
第一部分:语言基础
PHP5注释
C方式:
/**/ 这是一个C风格的注释 *它可以跨越多行 *直到关闭标记
C++方式:
// 这是一个C++风格的注释,它在行的末尾结束
Shell方式:
# 这是一个Shell风格的注释,它在行的末尾结束
PHP5变量
- 变量不需要声明直接使用,可以自动改变类型,用 $ 标志当变量名的前缀
- 主脚本中定义的变量,若在函数中使用,需要 方式引用
- 不支持全局变量,除了预定义的超全局变量:
超全局变量 | 说明 |
包含所有PHP从客户浏览器接收的GET参数的数组,包括通过URL发送的数据 | |
包含所有PHP从客户浏览器接收的POST参数的数组 | |
包含所有请求参数的数组 | |
包含所有PHP从客户浏览器接收的cookies的数组 | |
包含环境变量的数组 | |
存放服务器变量的数组 | |
存放会话变量的数组 |
变量类型提示
在PHP5中,允许在声明函数时,为对象、接口、数组或者callable类型的入参强制声明类型。对于字符串、整型等标量类型,不支持类型提示:…
阅读全文
17 years ago
0
ExtJS知识集锦
常用代码片段
DOM的增删改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
var myDiv1 = Ext.get( 'div1' ); //根据ID获取DOM元素 myDiv1.createChild( 'Child from a string' ); //创建要给子节点 myDiv1.createChild( '<div>Element from a string</div>' ); //创建一个子元素 myDiv1.createChild( { //使用对象配置方式添加子元素 tag : 'div', html : 'Child from a config object' } ); //添加多个子代元素 myDiv1.createChild( { tag : 'div', id : 'nestedDiv', style : 'border: 1px dashed; padding: 5px;', children : { tag : 'div', html : '...a nested div', style : 'color: #EE0000; border: 1px solid' } } ); //在最前面插入子元素 myDiv1.insertFirst( { tag : 'div', html : 'Child inserted as node 0 of myDiv1' } ); //在某个子元素之前插入 myDiv1.createChild( { tag : 'div', id : 'removeMeLater', html : 'Child inserted as node 2 of myDiv1' }, myDiv1.dom.childNodes[3] ); //删除一个元素 var myDiv1 = Ext.get( 'div1' ); myDiv1.remove(); |
组件导航
1 2 3 4 5 |
var me = currentBorderContainer; //根据Region在border布局中导航 var northChild = me.down( '*[region=north]' ); //遍历所有子组件 Ext.each( me.items.items, function( cmp ) {}); |
使用模板(Template和XTemplate)
使用模板可以很方便的创建复杂的DOM结构。模板中的占位符使用花括号{}包围,可以应用一个上下文对象以替换模板生成最终结果。
XTemplate支持循环、选择等基础程序结构,支持任意表达式的计算。可用于表达式的内置变量包括:
- out:模板结果添加到的输出数组对象
- values:当前上下文对象
- parent:使用…
17 years ago
0