今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。高质量代码的三要素我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。1.可读性强一提到可读
系统 2019-08-29 21:58:58 2158
在Hibernate3.2中,引进了Java5的新特性,就是注释配置,替代了我们以前用的*.hbm.xml配置文件,只需在实体类中进行相应的配置来完成Hibernate的映射。正如其他的ORM工具,Hibernate同样需要元数据来控制在不同数据表达形式之间的转化.在Hibernate2.x里,多数情况下表示映射关系的元数据保存在XML文本文件中.还有一种方式就是Xdoclet,它可以在编译时利用Javadoc中的源码注释信息来进行预处理.现在新的JDK标
系统 2019-08-12 09:30:27 2158
在一个页面上有两个DIV,DIV1和DIV2,在DIV1中有一棵树,在DIV2中有一个strutsform,在strutsform中有一个文本框和一个提交按钮,我想实现如下功能:在文本框中写上信息,然后按提交按钮,提交按钮会调用struts的action,将文本框中的数据写入数据库中,然后DIV2中的strutsform刷新为初始状态,我想知道如何实现页面DIV2的刷新而DIV1页面保持不变?有代码可以参考吗?-----div1--------------
系统 2019-08-12 09:30:19 2158
SYSZUXpinyin只能用到arm上,x86下用不了。原因是SYSZUXpinyin的实现,用到了一个QWSinputMethod的类,这个类是arm平台的qt库所特有的。还记得我们在终端里启用qt程序后面要加个-qws参数,原因就在这。所以,用SYSZUXpinyin在arm平台尽管移植成功,但pc机上跑不了,增加了调试的复杂性。希望以后SYSZUXpinyin能考虑下这个问题!就为了在pc上跑通SYSZUXpinyin,浪费了我一个上午时间查资料S
系统 2019-08-12 09:29:55 2158
看到这张图,突然有一种很空虚的感觉。仿佛站立在太空,俯视西安附近的城市随着历史进程的变化过程,一个个的城市崛起,人群聚集,然后战争,毁坏,然后新的王朝又在附近重新建设新的城墙和皇宫,随后,再次的盛极一时,车马攒动,然后内乱,外患,又开始盛极而衰的历程,直到现在。转眼,当我们审视我们目前所站立的地方,所生存的地方,会有什么感想。你住的地方,也许几十年后会重新被夷为平地,新的建筑结构矗立在这里,你将永远不属于这里,这里也不会再次属于你。你是谁,我是谁,我们又是
系统 2019-08-12 09:29:31 2158
00.嵌套try/except语句:当异常因幡是,控制权会跳回具有相符的except句子,最近进入的try语句,而程序会在try语句后继续执行下去。except自居会拦截并停止异常,这里就是你处理异常并从中恢复的地方。01.嵌套try/finally:当异常在这里引发时,控制权会回到最近进入的try去执行其finally语句,异常会持续传播所有激活状态下try语句的finally,直到最终抵达默认顶层处理器。02.sys.exc_info:通常允许一个异常
系统 2019-09-27 17:57:32 2157
题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。思路BFS广度优先搜索,使用双端队列deque(因为性能比另外两种Queue好得多),在大循环内对二叉树的每个层做一次遍历,range(len(queue))使只遍历当前的层,每次大循环ans加1。由于每个节点仅访问一次,所以时间
系统 2019-09-27 17:56:23 2157
♚作者:weapon,闲来笑浮生悬笔一卷入毫端,朱绂临身可与言者不过二三。博客:zhihu.com/people/hong-wei-peng起步Python提供的多线程模型中并没有提供读写锁,读写锁相对于单纯的互斥锁,适用性更高,可以多个线程同时占用读模式的读写锁,但是只能一个线程占用写模式的读写锁。通俗点说就是当没有写锁时,就可以加读锁且任意线程可以同时加;而写锁只能有一个线程,且必须在没有读锁时才能加上。简单的实现这是读写锁的一个简单的实现,self.
系统 2019-09-27 17:56:19 2157
#python直接退出多重循环的方法#方法1,抛出异常classgetoutofloop(Exception):passtry:foriinrange(5):forjinrange(5):forkinrange(5):ifi==j==k==3:raisegetoutofloop()else:print(i,'----',j,'----',k)exceptgetoutofloop:passprint("done")#方法2,函数中returndeftest(
系统 2019-09-27 17:54:11 2157
字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。字典类型与序列类型的区别:1.存取和访问数据的方式不同。2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,
系统 2019-09-27 17:54:02 2157
题目给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root=[6,2,8,0,4,7,9,null,null,3,5]示例1:输入:root=[6,2,8,0,4,7,9,null,null,3,5],p=2,q=8输出:6解释:节点2和节点8的最近公共
系统 2019-09-27 17:53:57 2157
人红是非多,最近Python就遇到了这样的问题。与国际技术社区上一片「形势大好」对比鲜明的是,国内技术圈却一直存在对Python,「力挺」和「吃瓜」两派阵营,针锋相对,那么,Python到底有没有用,真相究竟如何?是谁推波助澜了Python?Python究竟能做什么?程序员:该重新定义都说Python易学,究竟好学在哪里呢?因为其拥有大量第三方库,所以开发人员不必重复造轮子,就像搭积木一样,只要擅于利用这些库就可以完成绝大部分工作。它可以做网络爬虫。不夸张
系统 2019-09-27 17:53:43 2157
在学习本篇之前,如果你对Python下进行GUI编程基础内容还有不明白,推荐一篇相关文章:简单介绍利用TK在Python下进行GUI编程的教程写一个简单的界面很容易,即使是什么都不了解的情况下,这个文本转载了最简单的界面编写,下个文本介绍了TK的简单但具体的应用在python中创建一个窗口,然后显示出来。fromTkinterimport*root=Tk()root.mainloop()就3行就能够把主窗口显示出来了。root是一个变量名称,其代表了这个主
系统 2019-09-27 17:53:14 2157
#0.PyCharm常用快捷键#1.查看使用库源码PyCharm主程序员在Stackoverflow上答道经常听人说,多看源码。源码不仅能帮我们搞清楚运行机制,还能学习优秀的库或者框架的最佳实践。调用库时,你可以在你好奇的几乎任何地方点击Command+B,就可以很方便的跳转到源码里的类,方法,函数,变量的定义。#2.让你的代码PEP8写Python代码时,你会严格遵守pep8规范么?还是要遵守的,不然代码传到github或者知乎上被人怼就不好了。但是如果
系统 2019-09-27 17:53:10 2157
在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:hexstring如:'1C532145697A8B6F'str如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'list如:[0x1C,0x53,0x21,0x45,0x69,0x7A,0x8B,0x6F]各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。需要用到的核心的方法如下:list()将对象转换为
系统 2019-09-27 17:52:42 2157