- 浏览: 60134 次
- 性别:
- 来自: 成都
-
文章分类
最近看了下effective java 有编程许多经验值得学习,将一些重要的条目列出来
创建和销毁对象
考虑用静态工厂方法代替构造器
遇到多个构造器参数时要考虑用构造器
用私有构造器或者枚举类型强化singleton属性
通过私有构造器强化不可实例化的能力
避免创建不必要的对象
消除过期的对象的引用
避免使用终结方法
对于所有对象都通用的方法
覆盖equals时请遵守通用的约定
覆盖equals 是总要覆盖hashCode
始终要覆盖toString
谨慎的覆盖clone
考虑实现comparable借口
类和接口
使类和成员的可访问性最小化
在工友类中使用访问发发而非公有域
使可变性最小化
复合优先于继承
要么为继承而设计,并提供文档说明,要么就禁止继承
接口优于抽象类
接口只用于定义类型
类层次优于标签类
用函数对象表示策略
优先考虑静态成员类
泛型
请不要再新代码中使用原生态类型
消除非受检警告
列表优先于数组
优先考虑泛型
优先考虑泛型方法
利用有限制通配符来提升API的灵活性
优先考虑类型安全的异构容器
枚举和注解
用enum代替int 常量
用实例域代替序数
用EnumSet代替位域
用EnumMap 代替序数索引
用接口模拟可伸缩的枚举
注解优先于命名模式
检查使用Override注解
用标记接口定义枚举
方法
检查参数的有效性
必要时进行保护性拷贝
谨慎设计方法签名
慎用重载
慎用可变参数
返回零长度的数组或者集合,而不是null
通用程序设计
将局部变量的作用域最小化
for-each循环优先于传统的for循环
了解和使用类库
如果需要精确的答案,请避免使用double和float
基本类优先于装箱类型
如果其他类型更适合,则尽量避免使用字符串
当心字符串的连接的性能
通过接口引用对象
接口优先于反射机制
异常
只针对异常情况才使用异常
对可恢复的情况使用受检异常,对编程错误使用运行时异常
避免不必要地使用受检异常
优先使用标准的异常
抛出与抽象相对应的异常
并发
同步访问共享的可变数据
避免过度同步
executor和task优于线程
并发工具优先于wait 和notify
慎用延迟初始化
不要依赖于线程调度器
避免使用线程组
序列化
谨慎使用时限serializable接口
考虑使用自定义的序列化形式
保护性的编写readObject方法
对于实例控制,枚举类型优先于readResolve
考虑序列化代理代替序列化实例
创建和销毁对象
考虑用静态工厂方法代替构造器
遇到多个构造器参数时要考虑用构造器
用私有构造器或者枚举类型强化singleton属性
通过私有构造器强化不可实例化的能力
避免创建不必要的对象
消除过期的对象的引用
避免使用终结方法
对于所有对象都通用的方法
覆盖equals时请遵守通用的约定
覆盖equals 是总要覆盖hashCode
始终要覆盖toString
谨慎的覆盖clone
考虑实现comparable借口
类和接口
使类和成员的可访问性最小化
在工友类中使用访问发发而非公有域
使可变性最小化
复合优先于继承
要么为继承而设计,并提供文档说明,要么就禁止继承
接口优于抽象类
接口只用于定义类型
类层次优于标签类
用函数对象表示策略
优先考虑静态成员类
泛型
请不要再新代码中使用原生态类型
消除非受检警告
列表优先于数组
优先考虑泛型
优先考虑泛型方法
利用有限制通配符来提升API的灵活性
优先考虑类型安全的异构容器
枚举和注解
用enum代替int 常量
用实例域代替序数
用EnumSet代替位域
用EnumMap 代替序数索引
用接口模拟可伸缩的枚举
注解优先于命名模式
检查使用Override注解
用标记接口定义枚举
方法
检查参数的有效性
必要时进行保护性拷贝
谨慎设计方法签名
慎用重载
慎用可变参数
返回零长度的数组或者集合,而不是null
通用程序设计
将局部变量的作用域最小化
for-each循环优先于传统的for循环
了解和使用类库
如果需要精确的答案,请避免使用double和float
基本类优先于装箱类型
如果其他类型更适合,则尽量避免使用字符串
当心字符串的连接的性能
通过接口引用对象
接口优先于反射机制
异常
只针对异常情况才使用异常
对可恢复的情况使用受检异常,对编程错误使用运行时异常
避免不必要地使用受检异常
优先使用标准的异常
抛出与抽象相对应的异常
并发
同步访问共享的可变数据
避免过度同步
executor和task优于线程
并发工具优先于wait 和notify
慎用延迟初始化
不要依赖于线程调度器
避免使用线程组
序列化
谨慎使用时限serializable接口
考虑使用自定义的序列化形式
保护性的编写readObject方法
对于实例控制,枚举类型优先于readResolve
考虑序列化代理代替序列化实例
发表评论
-
Spring源码分析之IOC2
2013-03-16 23:25 864本篇将介绍下ApplicationCo ... -
Spring源码分析之IOC
2013-03-16 21:40 776先看两种方式在IOC容器取得bean 1 beanFactor ... -
一些在工作中遇到的问题汇总
2012-12-10 23:31 0保留一定的小数位数 1 DecimalFormat ... -
Set集合源码初探
2012-12-06 23:07 0[color=green][size=medium] ... -
一些常用的jar包
2012-12-04 22:44 0一些常用的jar 放在网上方便使用 Did your c ... -
java 获取请求ip
2012-11-20 23:11 3282public class IpUtil { publ ... -
mongodb
2012-11-20 22:09 755mongodb文档, -
padingtoolbar 的扩张
2012-10-31 22:01 0在Ext的原有分页控件中,服务器端方法是根据传入的起始数据记录 ... -
extjs的一些组件
2012-10-17 22:34 726<script type="text/java ... -
extjs
2012-10-14 23:09 642extjs的一些文档 -
jquery ui
2012-09-11 22:54 751一个jquery ui 后台 -
重拾java之线程1
2012-09-10 00:17 970[size=medium] 接触java也有一段时间了,以前选 ... -
dom4j 一些使用
2012-07-30 22:40 0dom4j使用 -
一个http请求
2012-07-18 00:04 0ackage com.sxit.phoenix.common; ... -
读书笔记effective之对所有对象通用的方法
2012-03-18 17:22 904读书笔记effective之对所有对象通用的方法 第一条 覆 ... -
读书笔记effective java 之通用程序设计3
2012-03-15 22:21 903第五条 基本类型优先于装箱基本类型 java有一个类型系 ... -
读书笔记effective java 之通用程序设计2
2012-03-15 20:59 932第三条 了解和使用类库 ... -
effective java 之通用程序设计
2012-03-15 16:15 772第一条 将局部变量的作用域最小化 将局部变量的作用域最小 ... -
http与socket连接区别
2011-11-08 01:11 477相信不少初学手机联网 ... -
HashMap 一般遍历
2011-11-04 16:28 794Map map=new HashMap() Iterator ...
相关推荐
《Effective Java》是Java...以上仅是《Effective Java》一书中部分核心知识点的概述,实际的读书笔记中会更详细地解释这些概念,并给出具体的示例代码。通过深入学习和实践,开发者可以极大地提升其Java编程的水平。
java逻辑思维笔试题Effective Java - 第三版笔记 章节索引 02 - 创建和销毁对象 03 - 所有对象通用的方法 04 - 类和接口 05 - 泛型 06 - 枚举和注释 07 - Lambda 和流 08 - 方法 09 - 通用编程 10 - 例外 11 - 并发 ...
在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。
labelme标注的json转mask掩码图,用于分割数据集 批量转化,生成cityscapes格式的数据集
(参考GUI)MATLAB GUI漂浮物垃圾分类检测.zip
人脸识别项目源码实战
人脸识别项目实战
本仿真模型基于MATLAB/Simulink(版本MATLAB 2016Rb)软件。建议采用matlab2016 Rb及以上版本打开。(若需要其他版本可联系代为转换) CSDN详情地址:https://blog.csdn.net/qq_50594161/article/details/146242453sharetype=blogdetail&sharerId=146242453&sharerefer=PC&sharesource=qq_50594161&spm=1011.2480.3001.8118
实战练习分词、创建词表、文本处理
在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。
人脸识别项目源码实战
学生信息管理系统是一个基于Java Web技术的综合性管理平台。通过此系统,可以实现对学生、教师、选课信息等的动态管理, 提升学校管理效率。系统采用分层架构设计,前端使用HTML、CSS,JavaScript和jQuery,后端基于Servlet,JSP和Spring框架,数据库采用MySQL。主要有四个大功能,学生管理( 增加学生信息、删除学生信息、修改学生信息、查询学生信息)、教师管理(增加教师信息、删除教师信息、修改教师信息、查询教师信息)、选课信息管理(添加选课、查询选课情况、删除选课记录)、系统管理( 登录与注册功能、 用户角色管理(老师,学生,管理员)、系统日志查看)。 技术架构 1.前端技术 HTML,CSS:静态页面布局与样式 JavaScript,jQuery:动态交互、DOM操作和AJAX请求 2.后端技术 Servlet:控制层,处理用户请求 JSP:页面动态生成 Spring:依赖注入,业务逻辑分离 3.数据库 MySQL:存储学生、教师,课程等数据 JDBC:数据库连接与操作
本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。
人脸识别项目实战
人脸识别项目实战
功能简介:本工具可实现批量对照片文件的人脸识别,并按指定分辨率进行转换保存。 可为人脸识别采集系统提供很好的辅助工具。 软件基本于OPENVC开发,识别精确,转换高效。 人脸识别工具 +人脸采集处理
内容概要:本文探讨了利用肌长变化反馈控制(FCM-ML)和演员-评论家强化学习(ACRL-NGN)来有效实现人体上肢和下肢无意识姿态稳定的算法方法。通过构建一个包含949条肌肉和22个关节的全身计算模型,在不同初始姿势的情况下进行模拟试验,验证了这些方法的有效性和鲁棒性,结果显示FCM-ML方法比其他传统方法更适用于此类任务。研究指出人类及其他脊椎动物在无意识状态下,通过抗拮抗性的肌肉长度变化反馈机制来维持舒适状态下的自然身体姿势(NBP)。此外,研究还表明这种控制策略有助于机器人设计、运动员训练以及康复患者的治疗。 适用人群:生物力学、机器人学以及神经科学领域的研究人员、工程师,以及关注人体姿态控制及其应用的学者和技术人员。 使用场景及目标:①解释人和非人的脊椎动物如何在无意识情况下维持最佳姿势,特别是处于重力环境中的自然身体姿势(NBP)。②为机器人肌肉控制提供理论支持和发展方向,特别是在模拟多肌肉协调控制方面。③指导运动训练及病患恢复计划的设计与优化。 其他说明:研究发现ACRL-NGN结合FCM-ML不仅能够迅速有效地实现期望的姿态稳定性,而且不需要对肌肉分类,这使其在复
反编译apk重要的工具之一
人脸识别项目实战