手把手教你安装MySQL
|
Python解释执行原理 我是一个Python线程,我的工作就是解释执行程序员编写的Python代码。 之所以说是解释执行,是因为Python是高级语言,CPU那家伙不认识Python代码,需要运行的时候动态翻译成CPU指令。 我把Python源代码经过“编译”以后,变成了一个个的字节码文件:.pyc,这是一个二进制的文件,人类是看不懂的,只有我才能看懂。
然后我的工作就简单了,不断的取出字节码文件中的“指令”解释执行,直到所有指令都执行完成,我就可以休息了。 也就是说它表示的是一个具体时刻(时间戳),这个数值放在全球任何地方都是一模一样的,也就是说new Date()和System.currentTimeMillis()没啥两样。 JDK提供了TimeZone表示时区的概念,但它在Date里并无任何体现,只能使用在格式化器上,这种设计着实让我再一次看不懂了。 罪状六:线程不安全的格式化器 关于Date的格式化,站在架构设计的角度来看,首先不得不吐槽的是Date明明属于java.util包,那么它的格式化器DateFormat为毛却跑到java.text里去了呢?这种依赖管理的什么鬼?是不是有点太过于随意了呢? 另外,JDK提供了一个DateFormat的子类实现SimpleDateFormat专门用于格式化日期时间。但是它却被设计为了线程不安全的,一个定位为模版组件的API竟然被设计为线程不安全的类,实属瞎整。 就因为这个坑的存在,让多少初中级工程师泪洒职场,算了说多了都是泪。另外,因为线程不安全问题并非必现问题,因此在黑盒/白盒测试、功能测试阶段都可能测不出来,留下潜在风险。
罪状七:Calendar难当大任 从JDK 1.1 开始,Java日期时间API似乎进步了些,引入了Calendar类,并且对职责进行了划分:
有了Calendar后,原有Date中的大部分方法均标记为废弃,交由Calendar代替。 六 总结
(编辑:潍坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

