求1到10中所有偶数的平方
1
2L = [i*i for i in range(1, 11) if i%2 == 0]
print(L)
Python坑之——默认参数必须指向不变对象
原文地址:廖雪峰的Python教程——函数的参数
先定义一个函数,传入一个list,添加一个END
再返回:
1 | def add_end(L = []): |
Python所有库
http://www.lfd.uci.edu/~gohlke/pythonlibs/
搜索需要的库,点击下载,将后缀改为zip并解压。
将解压后的文件夹复制到python安装目录的lib文件夹下。
左旋转字符串
使用PHP获取系统时间,发现时间不对,是因为PHP默认的时区是UTC,应该将其时区设置为北京时间。
方法一:修改php.ini文件
打开php.ini文件:鼠标左键点击右下角的WampServer图标——PHP——php.ini,
查找date.timezone,找到date.timezone =”UTC”,
将其改为date.timezone =”PRC”,若date.timezone左边有分号,要将该分号去掉。
方法二:使用date_default_timezone_set('')
方法
1 | <?php |
线程安全和可重入的区别
源出处:http://waret.iteye.com/blog/744169
线程安全函数
- 概念:
线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 - 确保线程安全:
要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄存器。因此,对于同一进程的不同线程来说,每个线程的局部变量都是私有的,而全局变量、局部静态变量、分配于堆的变量都是共享的。在对这些共享变量进行访 问时,如果要保证线程安全,则必须通过加锁的方式。 - 线程不安全的后果:
线程不安全可能导致的后果是显而易见的——共享变量的值由于不同线程的访问,可能发生不可预料的变化,进而导致程序的错误,甚至崩溃。
PHP缓存机制
使用php自身的缓存机制
如果要测试php自己的缓存机制, 需要配置php.ini
文件
1 | display_errors=On |
两种缓冲区:outputbuffer
和程序缓存ob
缓存关闭以后就放到程序缓存,程序缓存必须放到header
后面,否则报错
函数:
1 | ob_start(); //开启缓存 |
测试题:
1 | <?php |
输出:aa
不报错
没有关闭,aa放入ob
1 | <?php |
输出:aa
报错
aa放入的是程序缓存
1 | <?php |
输出:abchelloaaaa
等待后面的一起输出
1 | <?php |
输出:abchelloaaabchelloaa
最后再关闭
require、require_once、include、include_once区别
require_once
和include_once
在执行时只对包含的文件执行一次,即使在代码中调用多次。include
和include_once
若包含失败,显示警告错误(warning error
),然后继续执行。require
和require_once
若包含失败,抛出致命错误(fatal error
),中止执行。
开发严谨应用时,应用require
和require_once
。实际中,千万别把错误信息抛给用户,可在代码中使用
error_reporting(0)
禁止错误显示。性能角度,使用
require
要快于require_once
empty、isset、is_null的区别
isset()
用来检测一个变量是否已声明且值不为NULL
。即,只有在变量值不为NULL
时返回真。empty()
用来检测一个变量是否为空,即如下情况返回真:变量是空字符串,false
,空数组[array()]
,NULL
,0
,’‘
,以及被unset
删除后的变量。is_null()
用来判断变量内容是否为NULL
值,即仅为变量是NULL
时返回真。
如表格所示,空白表示返回false
Struts2环境配置
导入jar包
导入struts.xml文件
删除多余代码。
若得不到相应提示,http://struts.apache.org/dtds/struts-2.3.dtd
dtd文件未找到。会在联网时自动下载dtd文件。
dtd文件手动导入。
打开Window—Perferences
,进入XML Catalog
,点击add
。
配置web.xml文件,配置核心过滤器
1 | <filter> |