首页 文章 精选 留言 我的

精选列表

搜索[整理],共10001篇文章
优秀的个人博客,低调大师

JavaEE PO VO BO DTO POJO DAO 整理总结

佩服能将复杂难懂的技术,抽象成简单易懂事物的人。 厌恶将简单易懂的技术,添加一堆专业术语将别人弄的头晕目眩的人。 PO VO BO DTO POJO DAO 总体一览: 回到顶部 1.DAO[data access object]数据访问对象 DAO层对开发人员黑盒,由架构师设计封装。 在很长一段时间内,我将它理解为对数据库的访问,后面随着项目的积累。 发现自己的理解相对狭隘,对数据访问不仅仅指的是对数据库的访问。 假如A系统调用B系统的服务获取数据,这时候A系统对B系统访问数据对象的封装也可以称为DAO。 回到顶部 2.DTO[data transfer object]数据传输对象 假设数据表中存在20个字段,但是在页面展示列表的时候,这20个字段显然都不会用到。 我想对其中的5个字段进行展示,而且这5个字段展示的时候,也并不是数据库中他们原有的样子。 还需要进行计算、截取、业务代码转名称 .....等等 数据传输对象因此而被诞生,一是能提高数据传输的速度,二能隐藏后端表结构。 回到顶部 3.PO[persistant object]持久层对象 持久对象属性和数据库中的字段是一一对应的,数据库中的一条数据可以理解为一个持久对象。 因ORM框架的广泛使用而被引入到 JavaEE 项目设计当中。 回到顶部 4.BO[bussiness object]业务对象 业务对象顾名思义是在业务处理中抽象出来的对象,里面除了get/set 方法外,也可以有对字段进行业务处理的方法。 假设你要对一个班级进行业务处理,其中的学生、教师、甚至是桌椅板凳都是业务对象的组成部分。 当然其中的学生、教室....都可以是和数据库对应的PO。 回到顶部 5.VO[value object]值对象 值对象也可以称做页面对象,如果称做页面对象,那门它所代表的将是整个页面展示层的对象。 可以由需要的业务对象进行的换算转换而来。 如果称呼他为值对象的话,那门他可以理解为存放业务对象的一个地方。 假设锅碗瓢盆分别为对应的业务对象的话,那门整个碗柜就是一个值对象。 回到顶部 4.POJO[plain ordiary java object] 简单java对象 简单java对象应该是JavaEE世界里面最灵活的对象。 在简单系统中,如果从数据库到页面展示都是POJO的话,它可以是DTO。 如果从数据库中到业务处理中都是POJO的话,他也可以是BO。 同样如果从数据库到整个页面的展示的话,它同样可以是VO。 小结: 各个数据对象之间的转换是相当灵活的,在项目中可以定义上述对象的全部和其中的几种类型,这取决与架构师和需求。 在大型项目中,架构师在项目初期的任务除了搭建起整个开发环境以外,定义在系统中流转的数据结构对象同样是重重之重。 这项工作需要许多项目的积累和长期对软件开发的思考,多实践,多思考,提供最合适的数据对象解决方法,方能展现架构师的魅力。 本文转自Orson博客园博客,原文链接:http://www.cnblogs.com/java-class/p/5439646.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

windows 7 Ultimate beta 试用问题整理进行时

试用windows 7 Ultimate beta到现在已经3天了 镜像文件名称: en_windows_7_beta_language_pack_dvd_x86_x15-29103.iso 以上是系统的可操作性展示,对窗口的处理,图标的处理,以及动态效果更加细致了。 windows 7对输入输出下了很大的功夫,比如输入的语音识别技术。早期在微软的其他产品中也应用了这项技术,但是此次我对语音识别的体验中感受到了,微软下的大功夫。 同时也找到了一些不足: 1、语音识别教程中的部分汉化不是很人性,另外在命令篇的显示编号这个操作项的第二步有个明显错误(已经提交),如下图: 2、在vpc2007中安装完毕windows 7后 再安装vpc自带的产品组件“virtual machine additions”后,系统启动时会蓝屏。 其他的功能正在测试。请见后续更新。。。 本文转自 angerfire 51CTO博客,原文链接:http://blog.51cto.com/angerfire/132939,如需转载请自行联系原作者

优秀的个人博客,低调大师

DELL EqualLogic PS数据恢复过程整理及小结

DELL EqualLogic PS4000采用虚拟ISCSI SAN阵列,为远程或分支办公室、部门和中小企业存储部署带来企业级功能、智能化、自动化和可靠性。以简化的管理、快速的部署及合理的价格满足了分支办公室和中小企业的存储需求,同时提供全套企业级数据保护和管理功能、可靠的性能、可扩展性和容错功能,是中型企业级存储的起点产品,但某些物理故障或其他操作都可能会对卷或存储造成破坏,因此对系列存储的数据恢复技术才有了用武之地。而发生这些故障之后只能找专业的数据恢复公司做数据挽救工作。北亚数据恢复中心宋工最近处理过一起DELL EqualLogic PS4000因磁盘故障导致存储不可用的案例: 故障描述: 一台DELL EqualLogic PS4000E的存储,其底层是16块600GB的SAS硬盘组成的RAID。是一组RAID5,这组崩溃RAID5划分的VMFS文件系统,其中存放的是虚拟机文件,在存储系统的上层一共分了4个卷,其中3个卷大小为1.5TB,1个卷大小为1TB。后因磁盘故障而导致存储不可用,且已经过保,客户便联系到北亚数据恢复中心请求恢复数据。 硬件检测: 宋工先对客户的16块硬盘做了硬件检测,发现客户的2块硬盘出现坏道、SMART的错误冗余级别已经超过阀值,把14块正常的硬盘进行全盘镜像,另2块有坏道的硬盘用专业工具进行了恢复并生成镜像文件。 图一 故障分析: 首先收集DEll equallogic ps4000存储日志信息。从存储上硬盘的指示灯看到有两块盘亮黄灯,对收集到的日志信息进行分析,分析两块硬盘的掉线时间,从而得知哪块硬盘里面的数据是最新,用最新数据的硬盘进行数据恢复。 解决方案: 北亚会对存储的所有硬盘都进行相应的备份。对镜像文件进行分析,保证用户的原介质的安全。首先对16块盘进行虚拟还原之前的RAID状态,通过位图信息在虚拟出来的RAID中把4个lun全部提取出来。根据底层结构分析,把4个VMFS的文件系统进行跨区卷组合,导出用户数据,并验证虚拟机是否正常。 图二 图三 数据恢复成功: 我们将卷里的文件都拷贝出来,通过网络共享的方式验证恢复出来的虚拟机,虚拟机都可以正常启动,之后把虚拟机文件移交给客户。经过漫长的底层分析,加上不断的测试。终于在用户需求的时间内将数据完整恢复,整个恢复过程一共历时3天。我们之前研究过DEll Equallogic的存储原理。知道了DEll Equallogic的存储原理以后,关于它的所有数据灾难都可以进行恢复。

优秀的个人博客,低调大师

MindSpore 社区整理救援锦囊望扩散

7月17日以来,河南省遭遇极端强降雨。20日8时至17时,部分地区强降雨天气仍在持续。持续强降雨已造成河南多地道路、地铁等公共设施被淹,人员被困。国家防总将防汛应急响应提升至ΙΙ级。 图片来源:央视财经 洪涝灾害不仅会影响出行,造成财物损失,更会带来不同程度的健康隐患。现阶段只能趋利避害,尽量做好防灾减灾工作。 MSG在行动 MindSpore社区希望可以为河南抗灾贡献自己的一份力量! 1. 社区的小伙伴如果有求助或者提供帮助的需求,可以直接联系MSG河南组织者: 张东豪 18236568776 移动 15611863936 联通 2. 社区紧急建立了救援互助信息的收集与共享通道: https://gitee.com/mindspore/community/issues 大家可以点击上方链接跳转浏览器进入社区提交求助信息、分享互助物资、补充救援信息,MindSpore社区的MSG河南组织者以及社区运营团队会有专人通过社区wiki页面来不定期跟进并维护整体信息: https://gitee.com/mindspore/community/wikis/ 希望这个共享通道可以帮助有需要的人,MindSpore社区全体与大家共渡难关。在这里感谢奋斗在抢险救灾一线的城市守护者们,郑州人民,无必要不出门,MindSpore社区全体成员希望大家一切安好,河南加油! 洪水来袭应注意 1. 步行时 我们希望洪水来临时不要步行出门!不要步行出门!不要低估洪水上涨的速度,也要知道水流可以让原来的井盖、雨水篦子离位,脚下危险重重。更不要在海岸边或者河边步行。 如果洪水上涨过快,你正在步行路上,可以尽快向上坡、高地等地势高的地方转移,甚至可以爬上屋顶、大树暂避风险。已无法转移至高处时,尽可能利用手边的门板、木床等漂浮物。 2. 开车时 有洪水来袭风险时,不要开车!不要开车!开车并不能让你有更多保护。如果在开车,请迅速开向高处,不要盲目驶入桥下、隧道等容易积水的地方。一旦熄火马上下车步行转移,不要在车中等待救援。 3. 室内安全 用胶带纸封住门窗尽量减少进水。房间进水后保证关闭电源,如果要使用自来水,一定要煮沸。进入房间地势较高的部分收听广播等及时获取信息。不要接触污水,尤其是已被污水污染的食物。已被水浸泡的电器也尽量远离。 4. 食物安全 ①不喝生水。饮用水和用来做饭的水,都要进行氯化消毒或者煮沸处理。也注意不要用洪水洗菜、洗水果、洗碗或洗漱。 ②不要吃被洪水淹死或者死因不明的禽畜,不要捡食死掉的鱼虾贝类。 ③被水浸的叶类、根茎类蔬菜,如果没有腐烂,可用清水洗干净后煮熟煮透食用。 ④提倡用炖煮、焖烧等长时间加热的烹调方法将食物煮熟、煮透。 ⑤不要吃不明的食物,或者使用不明、外观类似盐、糖的 「调味料」,以免发生中毒。 ⑥尽量不吃剩饭剩菜,如果剩饭剩菜要留到下一餐食用,需要冷藏保存,下一餐食用前一定要彻底加热。 ⑦断电后的冰箱冷藏大约可以维持 4 小时的温度,冷冻通常可以保持 24 小时内。此时存放的食物尚且安全。 洪水来袭紧急救援 1. 溺水急救 如果遇到有人溺水,不要控水!不要控水!不要控水!正确急救方法是这样的: ① 清醒,有呼吸和脉搏 呼叫 120后,陪在溺水者身边,可以换上干衣服,裹上毯子,注意保暖,然后等待救援人员。 ② 无反应,有呼吸 清理溺水者口鼻中的异物,并使其保持在侧卧位,等待救援人员。等待过程要密切观察呼吸和脉搏情况,呼吸脉搏消失时进行心肺复苏。 ③ 无反应,无呼吸 立刻清理口鼻异物,保持呼吸道通畅,进行心肺复苏。 2. 防触电及触电急救 能避开积水路面就避开积水路面,实在避不开的,远离高压线塔、变压器、配电设施、各种疑似有电的装置。 万一行进过程有脚麻的感觉,迅速并脚跳原路退回。 一旦发现有人触电倒地,不要冒然上前施救。能关闭电源就关闭电源,或者用干燥木棍将人挪至安全范围再进行施救。 3.河南暴雨紧急求助通道 人民日报新媒体为河南暴雨受灾群众提供信息救助通道,如果您或您的家人因洪灾有紧急救援需求,请点击下图,填写信息↓↓↓ 图片来源:人民日报 附上一些救援电话,大家可以转发!让更多人能够得到救援 郑州市5支 1.郑州市红十字水上义务救援队 牛振西13938568990 2.郑州红十字蓝天应急救援队 李志鹏13838332525 3.河南省应急救援协会 陈水全13838336788 4.新郑市神鹰救援队 吴国钦13253381110 5.新郑市蓝天救援队 秦军峰13733199101 开封市3支 1.开封蓝天救援队 张海祥13837835001 2.开封市无线电协会应急通信大队 康伟18503781818 3.开封市红豹救援队 柴倩倩18803789668 洛阳市3支 1.洛阳市神龙水上义务搜救队 杨红山15670399937 2.洛阳市神鹰救援队 张超伟15538837110 3.伊川县神鹰救援队 梁绪伟15036999699 平顶山市3支 1.平顶山市永安应急救援队 杜全甫13949469283 2.救援协会郏县应急队 何邵舟13383999505 3.义工联合蓝天救援队 李伟峰17335236002 安阳市4支 1.红旗渠应急救援中心 杨永峰18567769958 2.内黄县枣乡应急救援中心 朱志刚15890758666 3.林州市蓝天救援队 杨志军13603461315 4.滑县应急救援协会 赵彦军18637288000 鹤壁市2支 1.淇县斑马救援队 韦玉其17630396099 2.山城区无疆公益救援协会 钱宏滔17719900007 新乡市2支 1.新乡市斑马应急救援中心 柴守勇13333804449 2.退役军人应急救援中心 刘海军13525022282 焦作市2支 1.焦作市应急救援协会 张昊18623911479 2.温县应急救援服务中心 张彦兵15036520006 风雨同舟,共度难关。 愿河南人民平安。

优秀的个人博客,低调大师

PostgreSQL全网博文、学习系列、资料、案例等整理

2 --> PostgreSQL学习仓库:https://gitee.com/AiShiYuShiJiePingXing/postgres 一、仓库说明 本来是想直接同步德哥的pg仓库,但是奈何德哥的仓库太大了,都无法直接从GitHub迁移到gitee。但是看到德哥的许多笔记十分有用,于是花了很久时间,把德哥的笔记都过了两遍。 第一遍,发现德哥有很多私人笔记在里面,并不是有关于PostgreSQL相关的,手动做了剔除。 第二遍,发现笔记太过于混乱,不太好明确的找到相应的内容,遂自己做了一个简单的目录。 同时,也将该仓库作为自己学习和研究PostgreSQL的仓库,会不断积累和分享有关PostgreSQL的内容。 德哥PostgreSQL仓库地址:https://github.com/digoal/blog 1.1 德哥是谁? digoal(德哥) PostgreSQL 中国社区发起人之一。负责PostgreSQL数据库在中国的技术落地与推广、人才培养。 中国开源软件推进联盟PostgreSQL分会,特聘资深领域专家。 中国信息通信研究院主办、中国通信标准化协会支持的"OSCAR云计算开源产业大会"评选:2018届OSCAR开源尖峰人物之一 阿里云数据库首席专家团队成员,提供数据库首席专家服务。 阿里巴巴钻石布道师 42项数据库专利 1.1.1 贡献 专利(截至2020-01): 201210121337.9;102708158B - 一种PostgreSQL云存储归档调度系统 201410207285.6;104166666B - PostgreSQL高并发流式大数据多维度准实时统计的方法 201410548447.2;104503965B - PostgreSQL高弹性的高可用及负载均衡实现方法 201410550641.4;104503966B - PostgreSQL大数据高效免维护自动分区方法 201410652026.4;104572809B - 一种分布式关系数据库自由扩展方法 201410652028.3;104503974B - 一种基于云平台的关系数据库自动优化方法 201410751853.9;104536988B - MonetDB分布式计算存储方法 201410754052.8;104503865B - PostgreSQL快速恢复到任意时间点的方法 201410780380.5;104750573B - 分布式数据系统数据节点的全局一致性备份和还原方法 201510078225.3;104731863B - 简化PostgreSQL分区代码的方法 201510083556.6 - 一种使用keepalived软件实现数据库HA应用的方法[驳回] 201510107904.9;104809152B - 一种节约PostgreSQL共享内存的方法及系统 201510724098.X - 用于资源调度的方法和设备 201510835059.7 - 用于主备数据一致性校验的方法和设备 201510875827.1 - 一种用于实现主备同步模式下事务提交的方法与设备 201510900751.3 - 用于创建主备数据库的方法和设备 201510904243.2 - 一种提高数据安全的方法与设备 201511001289.X - 用于数据发送、限制发送进程占用带宽的方法和装置 201511019216.3 - 数据库心跳检测方法以及装置 201511026756.4 - 一种用于更改秘钥的方法、装置及设置秘钥的方法、装置 201610101944.7 - 数据库读写分离方法、装置和系统 201611183503.2 - 一种数据库死锁的处理方法、装置和数据库系统 201710093376.5 - 数据同步方法及设备 201710093382.0 - 一种查询唯一值的方法及设备 201710488500.8 - 一种数据容错的方法及设备 201710492419.7 - 一种重做日志持久化方法及设备 201710581818.0 - 数据库宕机后的访问方法、装置和系统 201710643448.9 - 数据的存储、处理及读取方法、数据存储设备和系统 201710813987.2 - 一种数据操作方法及设备 201710860627.8 - 创建索引的方法和装置 201710860628.2 - 数据获取模型建立的方法和数据获取的方法及装置 201710862401.1 - 一种索引创建方法、装置及数据库系统 201710862402.6 - 数据库的检索方法及装置 201710862403.0 - 数据库处理方法及装置、系统 201711105172.5 - 数据查询方法和装置 201711117230.6 - 数据处理方法、装置及设备 201711195546.7 - 数据写入方法及设备 201711239837.1 - 一种用于实现数据库高可用性的方法及装置 201711275922.3 - 一种数据库更新的方法及装置 201711482536.1 - 一种数据库系统以及查询数据库的方法和装置 201810182191.6 - 数据处理方法和数据处理装置 201810982558.2 - 一种数据跟踪处理方法及装置 1.1.2 社区贡献 自2008年开始,坚持开源PostgreSQL数据库的布道,负责PostgreSQL数据库在中国的技术落地与推广、人才培养。 加入阿里后的一些布道经历​2015-09-12 PG象行中国上海站-PG回归测试 2015-10-23 开源中国广州站技术分享 - PG企业特性 2015-11-15 开源中国源创会广州站2015-PG企业特性 2015-11-20 2015 PG峰会分享-一位PGer的安全修养 2016-05-13 2016dtcc- 从Oracle DBA到PostgreSQL布道者 2016-05-17 云栖大会-武汉-PostgreSQL物联网独孤九式 2016-09-24 全球敏捷运维峰会-阿里云PostgreSQL介绍 2016-10-27 PG 2016全国峰会-PostgreSQL 数据库前世今生 2016-10-27 PG2016全国峰会-PostgreSQL应用开发最佳实践 2016-10-27 PG2016全国峰会-sharding单元化(based on postgres_fdw)最佳实践 2017-03-18 SDCC 数据库核心技术与应用实战峰会-数据库超体 2017-05-27 2017 PG 象行中国社区会议-武汉站-PostgreSQL在阿里的应用 2017-06-24 开源中国源创会-杭州-自动驾驶背后到数据库 2017-08-23 2017 ODF会议,分享PG时空数据管理案例 2017-10-20 开源中国PG分会场,分享,阿里云RDS PG多维存储与流计算实践 2017-10-21 2017 PG峰会-阿里云RDS、HDB PG 多维存储特性与案例 2018-03-17 空间数据库应用峰会-北京师范 - PostgreSQL空间数据业务 优化实践 2018-07-01 开源联盟 - PG HTAP展望 2018-09-01 云栖TechDay - PG天天象上活动 - 杭州站第一期组织+分享 2018-09-07 ODF - 数据库华山论剑 PG vs MySQL 2018-09-09 云栖TechDay - PG天天象上活动 - 北京站组织+分享 2018-10-13 云栖techday - 全栈数据库PG天天象上活动 - 郑州站组织+分享 2018-10-14 ruby summit 2018 郑州- PG开发者特性分享 2018-10-14 中国开发者大会-郑州-高并发和大数据下的PG实战 2018-10-27 云栖TechDay - PG天天象上活动 - 广州站组织+分享 2018-10-28 云栖TechDay - PG天天象上活动 - 深圳站组织+分享 2018-11-24 云栖TechDay - PG天天象上活动 - 上海站组织+分享 2018-12-22 云栖TechDay - PG天天象上活动 - 南京站组织+分享 2019-01-12 云栖TechDay - PG天天象上活动 - 合肥站组织+分享 2019-03-23 云栖TechDay - PG天天象上活动 - 长沙站组织+分享 2019-04-19 云栖TechDay - PG天天象上数据库沙龙 - 成都站组织+分享 2019-05-11 dtcc 2019-PG数据库实战深度培训 2019-05-25 云栖TechDay - PG天天象上活动 - 杭州站组织+分享 2019-06-01 PG象行中国杭州站-PG11,12新特性分享 2019-06-22 阿里云开发者技术沙龙 - PG天天象上活动 - 武汉站组织+分享 2019-07-03 PG社区走进名企-平安集团-分享PG使用的正确姿势 2019-07-07 PG CONF 2019中国峰会,出席分享、培训 2019-07-13 PG天天象上-济南站-1天PG技术分享 2019-07-20 DAMS中国数据库智能管理峰会-PG去O非你莫属 2019-08-17 福州,象行中国- PG的生态、新特性与Oracle迁移介绍 2019-08-24 PostgreSQL 11 与 12 用户最关心的特性解读 2019-09-27 云栖大会2019-开发者进阶-技术影响力 -从技术深度到产品广度的裂变 2019-11-16 数据库嘉年华-PG为什么这么火 2019-11-23 第十八届全国软件与应用学术会议(NASAC 2019)-PostgreSQL的社会价值 2019-11-29 PG12 新特性与路标 2019-11-30 PG峰会-PG 诊断方法2019-12-07 PG社区走进中兴企业交流-分享《PG的社会价值&企业如何融入PG社区》 2020-01-04 pg+mongo助力企业去O 2020-01-11 PG天天象上2020.1.11杭州站-实时精准营销系统设计2020-01-18 PostgreSQL+MySQL 联合解决方案课程14讲2020-07-18 PG SSL安全链路分析 2020-08-15 CUUG PG数据库高校行启动会, 分享AliPG2020-09-10 亿级用户量的实时推荐数据库到底要几毛钱?2020-09-13 在数据库中跑全文检索、模糊查询SQL会不会被开除?2020-09-17 百城汇:云栖线下高校合作专场 , 宁夏大学2020-09-19 刷脸支付会不会刷到别人的钱包?2020-09-26 为什么打车和宇宙大爆炸有关?2020-09-26 大话数据库终局之战2020-10-18 为什么饿了么网上订餐不会凉凉 & 牛顿发现万有引力有关?2020-11-01 PG中文社区 & Hello bike & 阿里云 联合沙龙活动2020-11-17 PG分会-解密下一代云数据库mybase2020-11-22 数据库嘉年华分享-解密下一代云数据库mybase2020-12-18 大型企业数据库与应用实践-dsg,阿里云,pg社区,上海开源信息技术协会 联合主办2021-01-15 PG中文社区2020年度峰会-2021,别让你的企业输在起跑线2021-01-18 阿里云PG创新训练营 1.2 最佳阅读方式 因为文章全部是md格式的,所以建议采用Typora阅读。 git clone https://gitee.com/AiShiYuShiJiePingXing/postgres.git 使用Typora打开克隆后的项目 阅读学习 二、德哥的PostgreSQL, Greenplum 学习视频 1、视频下载链接: https://pan.baidu.com/s/1Q5u5NSrb0gL5-psA9DCBUQ (提取码:5nox 如果链接失效请通知我, 谢谢) PostgreSQL 9.3 数据库管理与优化 4天 PostgreSQL 9.3 数据库管理与优化 5天 PostgreSQL 9.1 数据库管理与开发 1天 PostgreSQL 9.3 数据库优化 3天 PostgreSQL 专题讲座 PostgreSQL Greenplum 培训视频分享:http://pan.baidu.com/s/1pKVCgHX 三、PostgreSQL资料(持续更新) 3.1 PostgreSQL学习系列 3.1.1 不睡觉的怪叔叔的PostGIS教程 PostGIS介绍 PostGIS安装 创建空间数据库 加载空间数据 数据 简单的SQL语句 几何图形(Geometry) 关于几何图形的练习 空间关系 空间连接 空间索引 投影数据 地理 几何图形创建函数 更多的空间连接 有效性 相等 线性参考 维数扩展的9交集模型 索引集群 3-D 最近邻域搜索 3.1.2 菜鸟教程-PostgreSQL系列 1.PostgreSQL 学习系列 2.PostgreSQL 优势 3.PostgreSQL 笔记 4.PostgreSQL 课程 5.PostgreSQL 案例 6.PostgreSQL PostGIS GIST 7.PostgreSQL 推荐系统 8.PostgreSQL 应用开发解决方案 9.PostgreSQL 插件 10.PostgreSQL 配置文件 11.PostgreSQL PDF资料文档 12.PostgreSQL 安装与部署 13.PostgreSQL Alter,Truncate Table 14.PostgreSQL视图、事务、锁 15.PostgreSQL子查询,Auto Increment 16.PostgreSQL权限Privileges 17.PostgreSQL时间日期函数和操作符 18.PostgreSQL常用函数 19.PostgreSQL的模式、表、空间、用户间的关系 3.2 PostgreSQL优势 企业数据库选型规则 为什么数据库选型和找对象一样重要 为什么选择开源数据库、如何选择、需要做哪些准备 学生为什么应该学PG, PG与其他数据库有哪些独特性, 为什么PG是数据库的未来 3.3 PostgreSQL笔记 3.4 PostgreSQL课程 3.5 PostgreSQL案例 阿里云PostgreSQL案例精选1 - 实时精准营销、人群圈选 阿里云PostgreSQL案例精选2 - 图像识别、人脸识别、相似特征检索、相似人群圈选 PostgreSQL 物流轨迹系统数据库需求分析与设计 - 包裹侠实时跟踪与召回 PostgreSQL数据库应用:基于GIS的实时车辆位置查询 3.6 PostgreSQL PostGIS GIST 3.6.1 德哥PostGIS GIST相关笔记 基于PG与PostGIS搭建实时矢量瓦片服务 PostGIS总结 PostgreSQL存储地理信息数据的注意点 postgresql 创建gis空间数据库,shp数据入库 PostGIS基本使用 3.7 PostgreSQL推荐系统 社交、电商、游戏等 推荐系统 (相似推荐) 推荐系统, 已阅读过滤, 大量CPU和IO浪费的优化思路2 用户喜好推荐系统 - PostgreSQL 近似计算应用 PostgreSQL 推荐系统优化总计 PostgreSQL 相似人群圈选,人群扩选,向量相似 使用实践 - cube 3.8 PostgreSQL应用开发解决方案 PostgreSQL 应用开发解决方案最佳实践系列课程 - 1. 中文分词与模糊查询 PostgreSQL 应用开发解决方案最佳实践系列课程 - 2. 短视频业务实时推荐 PostgreSQL 应用开发解决方案最佳实践系列课程 - 3. 人脸识别和向量相似搜索 PostgreSQL 应用开发解决方案最佳实践系列课程 - 4. 出行相关调度系统 PostgreSQL 应用开发解决方案最佳实践系列课程 - 5. 配送相关调度系统 PostgreSQL 应用开发解决方案最佳实践系列课程 - 6. 时空、时态、时序、日志等轨迹系统 PostgreSQL 应用开发解决方案最佳实践系列课程 - 8. 树状图谱关系系统 PostgreSQL 应用开发解决方案最佳实践系列课程 - 9. 数据存储冷热分离 3.9 PostgreSQL插件与工具 PostgreSQL 用户最喜爱的扩展插件功能 PostgreSQL 有价值的插件、可改进功能 PostgreSQL 最常用的插件 PostgreSQL工具 3.10 PostgreSQL配置文件 PostgreSQL 11 postgresql.conf 参数模板 3.11 PostgreSQL PDF资料及文档 PG的社会价值.pdf PostgreSQL思维导图 开发者PG TOP18问.pdf 3.12 PostgreSQL安装与部署 Linux中PostgreSQL和PostGIS的安装和使用 PostgreSQL+PostGIS安装部署 PostgreSQL的Docker安装与部署 3.13 PostgreSQL开发与使用 3.13.1 PostgreSQL规范 1.PostgreSQL 命名规范 2.PostgreSQL 设计规范 3.PostgreSQL QUERY规范 4.PostgreSQL 管理规范 5.PostgreSQL 稳定性与性能规范 6.PostgreSQL 阿里云RDS PostgreSQL 使用规范 Geotools连接PostgreSQL数据库 PostgreSQL常用SQL JDBC与PostgreSQL(一) 四、已归类文档 ——此部分请访问德哥github查阅 因为此部分,我看了有些内容没有,遂直接做了删减。 digoal's PostgreSQL 文章 归类 1 应用开发 2 日常维护 3 监控 4 备份,恢复,容灾 5 高可用 6 安全与审计 7 问题诊断与性能优化 8 流式复制 9 读写分离 10 水平分库 11 OLAP(MPP...) 12 数据库扩展插件 13 版本新特性 14 内核原理与开发 15 经典案例 16 HTAP 17 流式计算 18 时序、时空、对象多维处理 19 图式搜索 20 GIS 21 Oracle兼容性 22 数据库选型 23 Benchmark 24 最佳实践 25 DaaS 26 垂直行业应用 27 标准化(规约、制度、流程) 28 版本升级 29 同、异构数据同步 30 数据分析 31 系列课程 32 其他 33 招聘与求职信息 34 沙龙、会议、培训 35 思维精进 36 视频回放 五、批评指正 因大部分资料都是互联网资源,如有侵权,请联系删除。 对于错误或者不当之处,劳烦及时指正,会尽快更改。 再次多谢PG大佬们的辛勤付出!!!

优秀的个人博客,低调大师

整理了5个JavaScript怪异行为及其原因

如果你用 JavaScript 写过项目或者参加过面试,那一定遇到过不少令人匪夷所思的问题。JavaScript 早期的规范不统一,也没有严格的标准,再加上它的语法灵活多样,有些看起来就不正确的代码却能正常执行,一些看起来符合逻辑的代码,运行结果却相差十万八千里。这些问题在日常开发中经常会导致 BUG,更重要的是,很多面试官会把它们拿出来当考验咱们 JS 工程师的能力。那么这篇文章就总结了 5 个 JavaScript 比较坑的问题,以及它们出现的原因和解决方法。 1、可选分号 问题: functionfoo(){return{value:1};}console.log(typeoffoo()); 你可能会认为它的输出结果是 "Object",但是结果却是 undefined。乍一看代码好像没什么问题,但是细心一点可以看到 return 语句返回的对象放到了下一行,那么问题就来了:JavaScript 的分号是可选的,return 语句在换行后,JavaScript 会自动给它的结尾加上分号,而在 return 之后的代码都不会执行,所以 foo() 的返回结果是 undefined。解决方法是在每行结尾都写上分号,这样就能清楚的知道代码在哪里结束。 2、this 指向 问题: vara=5;varobj={a:3,foo:function(){console.log(this.a);}}varobjFoo=obj.foo;objFoo(); 答案为 5。在调用函数时,它内部的 this 指向的是调用对象,例如 obj.foo() this 指向的是 obj 对象。如果在全局调用函数时, this 指向的是全局对象,在浏览器中为 window。objFoo 相当于是在获取了 obj 对象的 foo 方法引用后,在全局进行调用,所以 this 指向的是 window 对象。使用 var 在顶级作用域中定义的变量会添加到 window 中,所以 objFoo() 调用打印的是全局中的 a,即 5。 3、数组长度 问题: constarr=[1,2,3,4];arr.length=0;console.log(arr[0]); 结果为 undefined, 因为 array 的 length 属性同时也能反过来控制数组的元素数量,在给 arr.length 设置为 0 时,arr 就变成了空数组,再访问里边的元素就都是 undefined 了。 4、提升(Hoisting) 问题: functionbar(){returnfoo;foo=10;functionfoo(){}varfoo='11';}console.log(typeofbar()); 结果为 function。使用 var 声明的变量和使用 funtion 定义的函数会提升到当前作用域的顶部,所以变量可以先赋值,后使用 var 进行声明,而函数则可以先调用后定义。「但是要注意的是,使用 var 定义(指在声明的同时进行赋值)的变量,只会提升声明部分,赋值部分不会被提升,例如示例中的」 var foo = '11' 会提升 var foo,但 foo = 11 保留在原位。在定义 bar() 函数时,同时会创建一个作用域,提升会把相关变量和函数放到 bar() 函数的第一行。综合上边的规则,可以知道 foo() 函数和 foo 变量的声明进行了提升,因为 foo 变量与同名,但是只有声明,所以不会覆盖函数的值,foo 仍然指向的是函数。之后就直接使用 return 语句返回了结果,后边的代码就不会再执行了。bar() 中的代码其实是下边这种形式: functionbar(){functionfoo(){}varfoo;returnfoo;foo=10;varfoo='11';} 5、作用域与闭包 问题: for(vari=0;i<3;i++){setTimeout(()=>{console.log(i);});} 你可能会认为上方代码的结果为 0 1 2,但实际上是 3 3 3,这是因为使用 var 关键字定义的变量没有块级作用域,在 for 循环中定义的 i 相当于是全局变量,它会添加到 window 变量中,即使在 for 循环退出后也能访问 i 的值。这样就导致了一个问题,使用 setTimeout() 推迟的函数会在 for 循环结束后才执行,此时 i 的值已经变成 3 了,所以 3 个 setTimeout() 中的函数都会打印出 3。要解决这个问题有两种方法。 第 1 种是使用 let 关键字定义变量 i,这样在每次循环时,都会创建一个新的作用域,因此每个作用域中的 i 是相互独立的,这样就能打印出 0 1 2。 第 2 种方法是使用自执行函数,例如下边代码这样: for(vari=0;i<3;i++){(function(i){setTimeout(()=>{console.log(i);})})(i)} 这时,i 通过参数传递给了匿名的自执行函数,同时自执行函数创建了一个闭包,所以它会捕获 i 的值,相当于在内部复制了参数 i 的值,所以无论外边的 i 怎么变化,它内部的值都不会发生改变。这样也能打印出 0 1 2。 小结 这 5 个问题揭露了 JavaScript 中常见的一些坑,稍微不注意就会留下隐患,并且难以察觉,例如一个简单的换行、 this 指向的改变、意外修改数组的长度、变量和函数提升、作用域的创建都有可能出现异外的情况。这些问题可能在日常开发中并不多见,但是经常会出现在 JS 笔试和面试中,用于考察面试者对 JS 的熟悉程度。另外, JS 中的坑远不止这些,所以需要在日常中多积累,另外也可关注本博客,我会不定时的更新 JavaScript 使用上的问题,感谢! 本文分享自微信公众号 - 峰华前端工程师(qiantu_me)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

Andrioid中高级面试题目归纳整理

1. ThreadLocal的理解 可以保证线程的安全。在多个线程共享相同的数据的时候,会为每个线程创建单独的副本,在单独的副本上进行数据的操作,不会对其它线程的数据产生影响,保证了线程安全。 2. HashMap HashSet HashTable的区别? 都是集合,底层都是Hash算法实现的。HashMap是Hashtable的替代品,这两个都是双列集合,而HashSet是单列集合。HashMap线程不安全、效率高、可以存储null键和null值;Hashtable线程安全,效率低,不可以存储null键和null值。 3. 如何让HashMap可以线程安全? HashMap 在并发执行 put 操作时会引起死循环,导致 CPU 利用率接近100%。因为多线程会导致 HashMap 的 Node 链表形成环形数据结构,一旦形成环形数据结构,Node 的 next 节点永远不为空,就会在获取 Node 时产生死循环。使用下面三种替换方式:HashtableConcurrentHashMapSynchronized Map 4. Android对HashMap做了优化后推出的新的容器类是什么? SparseArray它要比 HashMap 节省内存,某些情况下比HashMap性能更好,按照官方问答的解释,主要是因为SparseArray不需要对key和value进行auto-boxing(将原始类型封装为对象类型,比如把int类型封装成Integer类型),结构比HashMap简单(SparseArray内部主要使用两个一维数组来保存数据,一个用来存key,一个用来存value)不需要额外的额外的数据结构(主要是针对HashMap中的HashMapEntry而言的)。 5. Java多线程之间如何通信 等待唤醒机制 6. 线程池的实现机制 向线程池提交任务,会依次启动核心线程,如果提交的任务数超过了核心线程数,会将任务保存到阻塞队列中,如果阻塞队列也满了,且继续提交任务,则会创建新线程执行任务,直到任务数达到最大线程数。此时如果再提交任务的话会抛出异常或者直接丢弃任务。通过Executor.execute()无法得到返回值,通过ExecutorService.submit()可以得到返回值。 7. RxJava中map和flatmap操作符的区别及底层实现 Map返回的是结果集,flatmap返回的是包含结果集的Observable。Map只能一对一,flatmap可以一对多、多对多。RxJava是通过观察者模式实现的。 8. 对消息机制中Looper的理解 Looper在消息机制中扮演的角色是创造无限循环从Messagequeue中取得消息然后分发。 9. 单例模式有哪些实现方式 饿汉模式(线程安全,调用效率高,但是不能延时加载)懒汉模式(线程安全,调用效率不高,但是能延时加载)双重检测锁模式(由于JVM底层模型原因,偶尔会出问题,不建议使用)静态内部类式(线程安全,调用效率高,可以延时加载)枚举类(线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用) 10. 通过静态内部类实现单例模式有哪些优点 线程安全,调用效率高,可以延时加载 11. synchronized volatile关键字有什么区别?以及还有哪些同样功能的关键字 (1) volatile是变量修饰符,而synchronized则作用于一段代码或者方法。(2) volatile只是在线程内存和main memory(主内存)间同步某个变量的值;而synchronized通过锁定和解锁某个监视器同步所有变量的值。显然synchronized要比volatile消耗更多资源。const、final、lock 12. 界面卡顿的原因有哪些? UI线程(main)有耗时操作视图渲染时间过长,导致卡顿 13. 造成OOM/ANR 的原因? OOM: (1)不恰当地使用static关键字 (2)内部类对Activity的引用 (3)大量Bitmap的使用会导致程序包运行时的内存消耗变大 (4)游标Cursor对象用完应该及时关闭 (5)加载对象过大 (6)相应资源过多,来不及释放。ANR: (1)在5秒内没有响应输入的事件(IO操作耗时、数据库操作复杂耗时、主线程非主线程产生死锁等待、网络加载/图片操作耗时、硬件操作耗时) (2)BroadcastReceiver在10秒内没有执行完毕(Service binder数量达到上限、Service忙导致超时无响应) 14. Activity与Fragment生命周期有何联系 在创建的过程中,是Activity带领着Fragment,在销毁的过程中,是Fragment带领着Activity。这里写图片描述 15. Glide三级缓存 内存缓存,磁盘缓存、网络缓存(由于网络缓存严格来说不算是缓存的一种,故也称为二级缓存)。缓存的资源分为两种:原图(SOURCE)、处理图(RESULT)(默认)。内存缓存:默认开启的,可以通过调用skipMemoryCache(true)来设置跳过内存缓存,缓存最大空间:每个进程可用的最大内存*0.4。(低配手机0.33)磁盘缓存:分为四种:ALL(缓存原图)、NONE(什么都不缓存)、SOURCE(只缓存原图)、RESULT(之后处理图),通过diskCacheStrategy(DiskCacheStrategy.ALL)来设置,缓存大小250M。 16. MVC、MVP、MVVM的原理 (1) MVC,Model View Controller,是软件架构中最常见的一种框架,简单来说就是通过controller的控制去操作model层的数据,并且返回给view层展示。当用户发出事件的时候,view层会发送指令到controller层,接着controller去通知model层更新数据,model层更新完数据以后直接显示在view层上,这就是MVC的工作原理。这里写图片描述(2) MVP是MVC的演化。MVP的model层相对于MVC是一样的,而activity和fragment不再是controller层,而是纯粹的view层,所有关于用户事件的转发全部交由presenter层处理。presenter层充当了桥梁的作用,用于操作view层发出的事件传递到presenter层中,presenter层去操作model层,并且将数据返回给view层。这里写图片描述(3) MVVM和MVP的区别貌似不大,只不过是presenter层换成了viewmodel层,还有一点就是view层和viewmodel层是相互绑定的关系,这意味着当你更新viewmodel层的数据的时候,view层会相应的变动ui。这里写图片描述 17. 数据库的操作类型有哪些,如何导入外部数据库? (1) 增删改查(2) 将外部数据库放在项目的res/raw目录下。因为安卓系统下数据库要放在data/data/packagename/databases的目录下,然后要做的就是将外部数据库导入到该目录下,操作方法是通过FileInputStream读取外部数据库,再用FileOutputStrean把读取到的东西写入到该目录下。 18. 是否使用过 IntentService,作用是什么, AIDL 解决了什么问题? (1) IntentService继承自Service。由于Service运行在主线程,无法进行耗时操作。所以你需要在Service中开启一个子线程,并且在子线程中运行。为了简化这一操作,Android中提供了IntentService来进行这一处理。通过查看IntentService的源码可以看到,在onCreate中,我们开启了一个HandlerThread线程,之后获取HandlerThread线程中的Looper,并通过这个Looper创建了一个Handler。然后在onStart方法中通过这个Handler将intent与startId作为Message的参数进行发送到消息队列中,然后交由Handler中的handleMessage中进行处理。由于在onStart方法是在主线程内运行的,而Handler是通过工作者线程HandlerThread中的Looper创建的。所以也就是在主线程中发送消息,在工作者接收到消息后便可以进行一些耗时的操作。(2) 进程间通信 19. 是否使用过本地广播,和全局广播有什么差别? 本地广播的数据在本应用范围内传播,不用担心隐私数据泄露的问题。不用担心别的应用伪造广播,造成安全隐患。相比在系统内发送全局广播,它更高效。 20. Activity、 Window、 View 三者的差别, fragment 的特点? (1) Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图) LayoutInflater像剪刀,Xml配置像窗花图纸。(2) a. Fragment可以作为Activity界面的一部分组成出现; 可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用; 在Activity运行过程中,可以添加、移除或者替换Fragment; Fragment可以响应自己的输入事件,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响。 21. Handler、 Thread 和 HandlerThread 的差别 从Android中Thread(java.lang.Thread -> java.lang.Object)描述可以看出,Android的Thread没有对Java的Thread做任何封装,但是Android提供了一个继承自Thread的类HandlerThread(android.os.HandlerThread -> java.lang.Thread),这个类对Java的Thread做了很多便利Android系统的封装。android.os.Handler可以通过Looper对象实例化,并运行于另外的线程中,Android提供了让Handler运行于其它线程的线程实现,也是就HandlerThread。HandlerThread对象start后可以获得其Looper对象,并且使用这个Looper对象实例Handler。 22. 低版本 SDK 实现高版本 api 自己实现或使用注解@TargetApi annotation 23. launch mode 应用场景 (1) standard:标准的启动模式。 这里写图片描述(2) singleTop:单一顶部模式 如果Activity已经被开启,并且处于任务栈的栈顶,就不会创建新的Activity,而是复用这个已经开启的Activity。为了防止出现一些奇怪的用户体验,推荐使用单一顶部模式,整个任务栈可以有多个实例存在.应用场景:短信发送界面.这里写图片描述(3)singletask:单一任务栈 在整个任务栈里面只允许有一个当前Activity的实例存在如果要开启的Activity在任务栈中已经存在,直接复用这个已经存在的Activity,并且把这个Activity上面的所有的其他Activity给清空应用场景:如果一个Activity非常消耗内存和cpu资源,建议把这个Activity做成singletask的模式。浏览器的browserActivity这里写图片描述(4)singleinstance:单一实例. 整个手机操作系统只有一个实例存在,并且是运行在自己单独的任务栈里面.应用场景:通话界面的Activity这里写图片描述 24. touch 事件传递流程 事件处理包括三种情况,分别为:传递—-dispatchTouchEvent()函数、拦截——onInterceptTouchEvent()函数、消费—-onTouchEvent()函数和OnTouchListener。Android事件传递流程:(1) 事件都是从Activity.dispatchTouchEvent()开始传递(2) 事件由父View传递给子View,ViewGroup可以通过onInterceptTouchEvent()方法对事件拦截,停止其向子view传递(3) 如果事件从上往下传递过程中一直没有被停止,且最底层子View没有消费事件,事件会反向往上传递,这时父View(ViewGroup)可以进行消费,如果还是没有被消费的话,最后会到Activity的onTouchEvent()函数。(4) 如果View没有对ACTION_DOWN进行消费,之后的其他事件不会传递过来,也就是说ACTION_DOWN必须返回true,之后的事件才会传递进来(5) OnTouchListener优先于onTouchEvent()对事件进行消费 View不处理事件流程图View不处理事件流程图 View处理事件流程图View处理事件流程图 事件拦截事件拦截 25.Android性能优化 一、代码优化 1.使用AndroidLint分析结果进行相应优化2.不使用枚举及IOC框架,反射性能低3.常量加static4.静态方法5.减少不必要的对象、成员变量6.尽量使用线程池7.适当使用软引用和弱引用8.尽量使用静态内部类,避免潜在的内存泄露9.图片缓存,采用内存缓存LRUCache和硬盘缓存DiskLRUCache10.Bitmap优化,采用适当分辨率大小并及时回收 二、布局优化 避免OverDraw过渡绘制优化布局层级避免嵌套过多无用布局当我们在画布局的时候,如果能实现相同的功能,优先考虑相对布局,然后在考虑别的布局,不要用绝对布局。使用标签把复杂的界面需要抽取出来使用标签,因为它在优化UI结构时起到很重要的作用。目的是通过删减多余或者额外的层级,从而优化整个Android Layout的结构。核心功能就是减少冗余的层次从而达到优化UI的目的!ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。 三、ListView和GridView优化 1.采用ViewHolder复用convertView2.避免在getView中执行耗时操作3.列表在滑动状态时不加载图片4.开启硬件加速 26.Android内存泄漏 内存泄漏简单地说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。可能的原因有:1.注册没取消造成内存泄露,如:广播2.静态变量持有Activity的引用3.单例模式持有Activity的引用4.查询数据库后没有关闭游标cursor5.构造Adapter时,没有使用 convertView 重用6.Bitmap对象不在使用时调用recycle()释放内存7.对象被生命周期长的对象引用,如activity被静态集合引用导致activity不能释放8.使用Handler造成的内存泄露 原文地址:http://cloud.yundashi168.com/archives/964

优秀的个人博客,低调大师

整理一些计算机基础知识!

本文来自云栖社区官方钉群“Python技术进阶”,了解相关信息可以关注“Python技术进阶”。 1、网络层次划分 为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册