《Effective Java》学习笔记1

使用OpenTK展示3D点云图像(C#) 图中存在一个空的点,可通过阈值分割过滤掉,然后如何保证某个点必然存在后面两个和它构成三角形的点,用一个2x2的结构元腐蚀阈值分割出的区域,得到剩下所有的点必然每个点可以构成三角形,这种得到三角形的算法效率会非常高。然后还有光照,无光照和有光照效果差异很大,处理光照核心在于得到每个点的法向量,用上面的三角形的两条边构成的向量叉乘,及得到这个点的法向量,输入给着色器处理得到光照的渲染效果,如下面两张图对比。我们需要把点连成面,有很多算法可以实现,但我拿到的图为一张tif格式16位的深度图,如下图。 阅读详情

《Effective Java》准备这两天系统的啃一下这本书,在这里 做点记录吧。

这本书有57条规则,分成九类,除了前言,九个章节,一个一个来吧。

一,创建和销毁对象

1,考虑用静态工厂的方法代替构造函数

先解释解释一下这两个名词吧。
构造函数Constructor,相信大家都不会陌生了。而静态工厂方法(static factory method),实际上是类的一个静态方法,它返回一个类的一个实例。
类可以为客户提供一些静态工厂方法,来替代构造函数。

静态方法的好处是
一,与构造函数不同,静态方法具有名字。
       使用场合:
    1、方法名字和参数列表组合,可明确的表达被创建对象的状态。构造函数却无此效果。
    2、如果有多个构造函数,且有相同的原型,则可使用之避免重复。
二、与构造函数不同,他们每次被调用的时候,不要求非的创建一个新的对象。
       使用场合:
      1、可缓存被构造好的对象,避免每次都去创建对象的性能开销。如,单例模式。
      2、可控制类实例的存在。如,使非可变类不会有两个相等的实例子存在。
三、与构造函数不同,他们可以返回一个返回类型的子类型的对象。
    1、待返回的子类和其接口类(作为函数返回类型)结合,可隐藏实现细节,并且迫使客户通过接口来引用被返回的对象。
    2、根据属性参数,可动态返回接口的不同实现类,从而提供软件灵活性。
静态方法的缺点有
一,类如果不含有公有或受保护的构造函数,就不能被子类化。
二,它们于其他的静态方法没有任何区别。

2,使用私有构造函数强化Singleton属性。
qt实现程序密钥注册功能,MD5加密+AES加密,并实现一台电脑系统一个密钥 qt实现了一个给自己软件加密的功能。 原理是: 需要被注册的软件第一次运行的时候,在系统的注册表里面注册一个键值,如下: 这个值作为生成密钥的用户识别号,然后生成密钥文件key.db,把这个key.db文件放到软件执行目录下,即可完成软件的注册并正常使用软件。 软件第一次打开的界面及密钥生成工具软件界面如下: 将密钥生成工具软件生成的key.db放到软件执行目录下之后,软件即可正常使用,如下图: 代码使用了MD5加密 外加 AES加密, 解密和加密的核心代码如下: QSt. 阅读详情

相关推荐

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1090

Effective java学习笔记(1)

1.考虑用静态工厂方法代替构造函数 所谓静态工厂方法,实际上只是一个简单的静态方法,它返回的是类的一个实例。 静态方法的好处: a.它与构造函数不同,它有名字,你可以把名字起的更易于阅读。注意:用静态工厂方法代替构造函数后,构造函数就成了private的了,当然如果你希望同时也提供公有的构造函数也是可以的。 b.它与构造函数不同,它每次被调用时,不要求非得创建一个新的对象。 c.它与构造

狂奔的蜗牛 3723

基于紫光同创FPGA的adf网表文件使用和黑匣子设置

这个时候就可以选择将你的网表文件给到他使用,就是相当于把你的功能模块封装成了一个黑匣子一样,只有外部端口,没有内部代码;,在TOP层的子模块声明里面需要加上/*synthesis syn_black_box */进行黑匣子设置,此时子层 adf 文件作为黑盒是不会综合的,在 device map 时会将顶层综合结果与子层 adf 文件合并传递至布局布线阶段;这些都设置完毕后呢,就可以对工程进行编译和综合了,综合完毕后会生成一个.adf的网表文件,我们要使用的就是这个文件;我这里是把两个子模块的添加了哈;

H2061722的博客 966

《Effective Java》学习笔记(1)

  这本书对于java程序员的意义就如《Effective C++》对于C++程序员的意义一样,我想是每个java爱好者的必读书之一了,最近在啃这本书,一些学习笔记希望能对大家有所帮助。一。创建和销毁对象第一条:考虑用静态工厂方法代替构造函数实例代码 :Boolean类中的valueOf()方法   public static Boolean valueOf(boolean b) {      r

花非花 1209

Qt绘图库对决:QWT与QCustomPlot的实战选型指南

本文为Qt开发者提供了QWT与QCustomPlot两大绘图库的实战选型指南。文章从功能特性、性能资源、开发效率三大维度进行深度对比,并结合工业监控、科学计算、嵌入式设备等典型场景,给出了清晰的决策清单。对于需要专业科学图表(如极坐标、等高线图)的场景推荐QWT;对于追求高性能、实时性、快速开发及嵌入式部署的通用图表需求,QCustomPlot是更优选择。

alpha的博客 241

BIDS数据存储格式介绍与dcm2bids安装与使用

BIDS格式&dcm2bids安装与使用

machinelearning_er的博客 7317

effective java学习笔记1

在想要override自定义的class的equals方法时,需要obey the general contracts: 1.这个类的每个实例是不是本质上继承性地唯一的。也就是说,所有类的父类Object它的equals实现已经提供了正确的行为。 2.你根本不在意这个类是否需要提供【逻辑上相等】这样的方法。 3.这个类的父类(除了Object类外的父类)已经重写了equals方法...

liangminzeng1986的博客 139

深入解析音频信号处理的核心算法——傅里叶变换、语音增强、回声消除与主动降噪

本文系统介绍了现代音频信号处理的核心技术。首先阐述傅里叶变换作为理论基础的重要性,它能将声音分解为频域成分。随后重点分析三大关键技术:语音增强利用谱减法、维纳滤波和深度学习从噪声中提取人声;回声消除采用自适应滤波器消除通话中的回声;主动降噪通过声波干涉原理抵消环境噪声。文章最后指出,这些技术在实际应用中协同工作,形成完整的音频处理链路,共同提升语音质量和听觉体验。随着算法进步和算力提升,音频处理技术正向着更智能、更高效的方向发展。

程序猿老樊的博客 1328

MCAL功能安全分析:从硬件安全机制到故障注入验证

在汽车电子嵌入式开发中,功能安全是衡量系统可靠性的核心指标。随着AUTOSAR架构的普及,MCAL作为最底层驱动,承担了硬件安全机制与软件链路之间的桥接作用。时钟监控、看门狗、ADC自检等硬件保护能力的正确配置,直接决定了安全机制的诊断覆盖率是否真实有效。通过FMEDA失效模式分析,结合故障注入测试,可以验证MCAL配置对异常事件的响应路径和时效性,从而支撑ASIL等级的认证结论。本文从实际项目出发,梳理MCAL功能安全分析中的常见隐患,为汽车电子控制器开发与安全评审提供实践参考。

weixin_34234721的博客 388

最新Docker GPU支持全解析:为什么nvidia-smi能用但PyTorch找不到CUDA?

本文深入解析了Docker容器中nvidia-smi命令可用但PyTorch无法调用CUDA的根本原因。关键在于默认配置仅暴露了GPU的utility管理能力,而CUDA计算所需的compute能力未被激活。通过正确设置NVIDIA_DRIVER_CAPABILITIES环境变量为compute,utility,并配合--gpus参数,即可解决此问题,确保AI训练等任务顺利进行。

convnet3designer的博客 240

概率论—期末复习速成笔记(自用)

概率论期末复习

a200327的博客 2万+

Effective Java 学习笔记(1)

通常情况下,我们在写一个类时,一般会赋予它一个或几个public的构造函数,让外部程序能够创建对象. 然而,在effective java 中,从另一个角度告诫我们在使用public的构造函数前,先考虑用public 的静态函数来创建对象.  其优点如下: 1. 一个静态的工厂函数,可以取不同的名字. 而构造函数的名字只能与类同名.    一个API的设计中,一个好懂的名字

沐青桦的专栏 836

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Effective Java 学习笔记 1

Item 1: Consider static factory methods instead of constructors (多考虑使用静态工厂方法而不是构造方法) 使用静态工厂方法有以下几点好处: One advantage of static factory methods is that, unlike constructors, they h...

weixin_33830216的博客 92

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Effective Java2-学习笔记 第1-10条

本文记录了,学习Effective Java 2版的心得 情况:大二,学习JavaSE半年后,没有设计和项目经验. 代码实例:大部分摘自原书或博客中,也可能少摘选. 大优势(主要缺点):摘自原书中. 其他:首先感谢知了堂-阳哥在学习道路上长达一年的陪伴,也很庆幸在知了堂遇见鑫鑫. 如有侵权或者错误,请务必留言,萌新感谢大佬的指点. 1.考虑用静态工厂方法替代构造器 用FruitFac...

weixin_30254435的博客 192

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

effective java 学习笔记 1.创建和销毁对象

ps:因为是我自己的学习笔记,所以有很多可能只在我自己身上适用,请勿对号入座。 1.考虑用静态工厂方法代替构造器 通常再创建一个新的对象的时候我会new 出来一个对象,我曾经用过spring struts2 都是直接调用接口,而现在用的jfinal框架是提供了一个静态的dao方法供人调用,算是个简单的静态工厂方法,开始只是会用而已,并不能真正理解理解里面的意思。书中列举了四条关于静态工厂方法的

asdasda77的博客 317

《Effective Java》学习笔记——第1部分 创建对象和销毁对象的最佳实践

Effective Java》共有多个章节,每个章节提供了若干条建议或最佳实践,整理了对应章节关键的实践内容,用于自己后续代码开发过程中,参考对照,自查代码习惯,从而提升输出的代码质量。

weixin_37693760的博客 1144

Effective Java学习笔记(1)

第1条:用静态工厂方法代替构造函数  如Boolean类中的一个简单的例子: public static Boolean valueOf(boolean b){ return (b?Boolean.TRUE : Boolean.FALSE); }  好处有3个:与构造函数不同,静态工厂方法具有名字;每次被调用时不要求非得创建一个新的对象;他们可以返回一个原返回类型的...

xtuhuajx的专栏 134

《Effective Java》学习笔记1(2014.3.30)

今天看了《Effective Java》的第2章和第3章,12条知识只是懂了第2条和第5条。尼玛,是太难了还是我太笨了,也不能这么打击人吧。算了,懂多少知识是多少,先记录下来,便于以后复习。不懂的以后再慢慢搞会吧!! 知识点1:类获取本身实例不仅可以通过提供一个公有构造器,还可以通过静态工厂方法。静态工厂方法优势有二。一为有名称,易于阅读。二为不必在每次调用时都创建一个新的对象。------《第

u014439224的专栏 393

effective java学习笔记--1

总共657条建议,每次把自己理解的建议记录下来 第一条:考虑用静态工厂来代替公开的构造方法 第二条:通过私有的构造函数来强化单例属性 两种单例模式: 模式一: /** * 通过构建一个公开静态的对象实例,来保持单例。 * 缺点:想改变...

知行天下 133

effective-java 学习笔记(1)

考虑用 static factory methods 替代 构造函数 获得类的实例可以有自己的名字,根据作用定义自己特有的名字。多个这样的方法可以返回同一个对象。(单列模式)可以传会一个该类之外的类的对象。(一般用作多态)被stataic factory methods 传会的对象,不要求事先存在。(一般通过Class.forName(str)动态生成类的对象。)     一般用static fa

JAVA 1201

《Effective java》学习笔记 1 之 对象创建和销毁

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33875839的博客 114

《Effective Java》学习笔记1 Consider static factory methods instead of constructors

本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错&运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队。  静态工厂方法代替构造器 写在前面,并不是说从今以后舍弃构造方法,一律静态工厂,这两者各有千秋,应仔细理解其各自优势。 静态工厂方法与构造器相比,优势在于:      1....

欢迎访问 花落的速度 的博客 344

1.Creating and Destroying Objects2——Effective Java 2nd Ed学习笔记

Item 4: Enforce noninstantiability with a private constructor 有些类需要防止用户实例化一个类,比如说java.lang.Math 和java.util.Arrays,Attempting to enforce noninstantiability by making a class abstract does not work.A ...

mimang_askquestion的博客 168

1.Creating and Destroying Objects——Effective Java 2nd Ed学习笔记

  1.One advantage of static factory methods is that, unlike constructors, they have names.   有时候,一个类有几个不同的构造函数,各个构造函数只能靠参数来区分,编写程序和阅读程序的时候构造子的意义都不明确。而是用静态工厂方法可以明确的知道该构造子的含义,比如BigInteger(int, int, ...

mimang_askquestion的博客 155

《Effective Java》学习笔记 - (1) 使用静态工厂方法代替构造器

对于类而言,为了让客户端获取它本身的一个实例,最传统的方法就是使用构造器,还有一种方法就是可以使用静态工厂方法。这是《Effective Java》这本书的第一节,里面主要介绍一点就是尽量使用静态工厂方法而不是构造器。...

Jwasx的博客 391
上一篇: photoshop快捷键大放送
下一篇: 《Effective Java》学习笔记2
elastos
博客等级 码龄20年 1粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值