《Effective Java》学习笔记(4)

本地化部署dify,使用Database插件实现dify直连数据库报错No module named ‘MySQLdb‘解决方案 网上查阅各种资料,有说修改/dify-main/docker/volumes/sandbox/dependencies目录下的python-requirements.txt文件,添加了如下两行,试验后无效。,看到有人是其他报错,但是URI配置如下(在mysql后面加了pymysql),尝试后果真成功了。按照系统提示设置完数据库URI后保存出现错误。在工具市场查询Database,点击后进行授权。最后在该插件的项目地址获得灵感。 阅读详情

五。C语言结构的替代

如何用java模拟c语言中的一些结构

第19条:用类代替结构

    对于C语言中的结构,java可以用类来代替,不过你不应让类的成员变量可以被公开访问,成员变量应该是private,然后提供一些读写操作来操纵这些变量,想比于C或者C++里的结构类型,这样的类更为安全,体现了OOP的封装性。示例代码

public class Point{

    private float x;

   private float y;

    public float getX(){ return x;}

    public float getY(){ return y;}

    public void setX(int x){ this.x=x;}

    public void setY(int y){ this.y=y;}

}

第20条:用类层次来代替联合

对于这点,俺不详细说明了,有兴趣的自己看看联合是怎么回事。书中举了著名的shape例子

第21条:用类来代替枚举结构

    java取消了C语言中的枚举类型(注意:jdk5.0已经增加了这一特性,有兴趣的自己查找下资料),这里谈的是如何在5.0以前模拟这一结构。

C语言:typedef enum{ CIRCLE,RECTANGLE,SQUARE} shape;

java语言:

public class shape{

  private final String name;

   public shape(String name) { this.name=name;}

   public String toString(){ return name;}

   public static final shape CIRCLE=new shape("CIRCLE");

   public static final shape RECTANGLE=new shape("RECTANGLE");

   public static final shape SQUARE=new shape("SQUARE");

}

以后就可以用shape.CIRCLE,shape.SQUARE来访问其中的变量,可以看到,java的实现模型更为安全,它进行了类型检查。很漂亮的设计!

第22条:使用类和接口来代替函数指针

  java没有独立于类或者接口的函数,任何方法都是包含在某个类和实例里面,所以,在C里面的函数指针就完全可以用类和接口来代替,很明显的例子,如compareable接口,某个需要实现排序的数组,在调用

Arrays.sort()时,你可以传入一个实现了compareable接口的比较器。这就相当于一个函数指针。

【RT-DETR多模态融合改进】在前期、中期、中后期、后期多模态融合中添加P6大目标检测层,完整步骤及代码 主题: RT-DETR的多模态融合改进中增加P6大目标检测层方式: 分别在前期融合、中期融合、中-后期融合、后期融合中增加P6多模态融合检测层。内容: 包含融合方式详解以及完整配置步骤,开箱即用,一键运行。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样 阅读详情

相关推荐

SAP HR模块配置假期日历和缺勤类型

SAP的HR模块。业务顾问在实施时一般会配置未来10年的假期日历,到期后再进行配置。同时,增加请假类型(缺勤信息类型)。记录这一过程。

福来阁86号技师的妖孽日常 5525

《程序设计语言与编译》笔记(1)

一种语言涉及设计者、实现者与使用者,如何鉴赏、分析、选择、设计和实现程序设计语言。 程序设计语言的分类:(1)第一代:依赖机器的Instruction System,以2进制代码表示。(2)第二代:汇编语言,通过汇编程序转换为机器语言(3)第3代:面向过程语言,以冯。诺依曼体系有关,每条语句对应机器的一条命令。(4)第4代:说明性语言,告诉计算机“做什么”

花非花 1170

告别臃肿VS!仅用Visual Studio 2022 Build Tools为Qt 5.12.12配置MSVC2017开发环境

本文详细介绍了如何仅使用Visual Studio 2022 Build Tools为Qt 5.12.12配置MSVC2017开发环境,避免安装臃肿的完整VS。通过精准选择组件、配置Qt Creator编译器和优化Kit设置,实现高效、精简的Windows平台Qt开发环境搭建,特别适合追求性能和资源优化的开发者。

weixin_30340617的博客 350

【第20条】用类层次来代替联合

    C语言中的联合,我还真的不太了解。但是Java中的继承(或称子类化)是面向对象的最基本特征,以此来做层次是再合适不过的了。       例如,在一个描述社会商品分类的层次中,可以通过使用多层次继承的抽象类来很形象地描述。这还带来了 安全 简洁 易扩展 的好处。         这一条很简单,就到这里了。     【Effective Java 学习笔记】系列连载专题请见: ...

从Java看编程 221

IntelliJ IDEA 2025.1 + Gradle 镜像配置避坑指南:解决依赖下载慢的终极方案

本文针对IntelliJ IDEA 2025.1开发环境中Gradle依赖下载缓慢的问题,提供了详细的镜像配置避坑指南。通过解析Gradle依赖解析机制,重点指导如何正确配置阿里云等国内镜像仓库,并分享验证配置生效、排查常见错误及高级优化技巧,旨在彻底解决依赖下载难题,提升开发效率。

weixin_28835551的博客 532

Unity游戏开发客户端Lua基础

Unity游戏开发客户端面经之 lua 篇

Sea3752的博客 1万+

《Effective Java》学习笔记4

C语言结构的替代19,用类代替结构20,用类的层次来代替联合21,用类来代替enum结构22,用类和接口来代替函数指针

Don't wait!Don't Cry! 677

传导案例:某医疗仪器传导骚扰整改案例

紫外线光疗仪是一种专业的医疗设备,主要用于治疗银屑病、白癜风等皮肤疾病。该设备采用物理治疗技术,通过特定波长的紫外线照射人体来达到治疗效果。自1984年窄谱中波紫外线(NB-UVB)应用于临床以来,该技术已成为治疗早期蕈样肉芽肿(MF)的有效方法之一。作为二类医疗器械,紫外线光疗仪必须符合严格的电磁兼容性(EMC)标准,这不仅关系到设备自身的稳定运行,更关乎患者的使用安全和治疗效果。紫外线光疗仪传导骚扰整改案例充分展示了系统性EMC设计的重要性。

m0_56451176的博客 340

Effective Java 学习笔记(4)

这个原则很简单,就是使用私有构造函数防止类被实例化。有时,我们会写一些工具类,如java.lang.Math 或是 java.util.Arrays, 这些类中都是静态函数,在设计的时候,这些类并不是用来被实例化的。这个时候,就很有必要把构造函数私有化。public class UtilityClass { private UtilityClass() { throw new Assert

邹迪飞 415

Oracle11g下载与安装(windows)

一、Oracle11g下载 二、安装准备 三、执行安装步骤 四、测试连接 附:Oracle11g服务说明

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 2万+

【人工智能】OpenClaw网关API速率限制报错全解析 API rate limit reached. Please try again later.

对应HTTP标准状态码为429(请求过多)。该报错集中出现在OpenClaw GATEWAY DASHBOARD的聊天会话界面,核心特征为:用户最初以为是单一模型服务商的问题,先后更换OpenAI、Gemini、Ollama、Moonshot、Mercury-2等多个主流大模型API后,该报错仍稳定触发,尤其在执行复杂任务时高频出现。

奶爸的编程之路,也就一周冷个三天 6459

effective java学习笔记--4

8.3 方法实现的小建议 1. 把某个非0常数,比如17.保存在一个较results的变量中 2. 对于对象的每一个域做一下操作 计算散列码 c 2.1 boolean ---> c = f?0:1 2.2 byte char short int -- > (int...

知行天下 164

STM32外部中断EXTI原理与飞控实时应用实战

外部中断(EXTI)是嵌入式系统中实现事件驱动和实时响应的核心机制,其本质是将外部电平变化转化为可调度的CPU中断事件。基于ARM Cortex-M NVIC架构,EXTI通过GPIO-EXTI-NVIC三级硬件通路实现低延迟信号捕获,具备边沿触发、优先级管理与挂起控制等关键能力。在四轴飞控、工业传感器、人机交互等对毫秒级响应有强需求的场景中,EXTI显著优于轮询方式,兼顾实时性与CPU资源效率。实际开发需严格遵循SYSCFG映射→EXTI配置→NVIC使能的时序逻辑,并规避常见陷阱如中断号误配、伪触发、低

weixin_36382073的博客 65

《Effective Java》学习笔记--第4部分 类和接口设计实现最佳实践

Effective Java》共有多个章节,每个章节提供了若干条建议或最佳实践,整理了对应章节关键的实践内容,用于自己后续代码开发过程中,参考对照,自查代码习惯,从而提升输出的代码质量。《Effective Java》第4部分“类和接口”深入探讨了如何设计高质量的类和接口。在 Java 中,类和接口是构建程序的核心单元,良好的类和接口设计能够增强代码的可维护性、可扩展性和可重用性。书中通过一系列的最佳实践和设计建议,帮助我们构建清晰且高效的类和接口。

weixin_37693760的博客 1680

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《Effective Java》学习笔记4 Enforce noninstantiability with a private constructor

本栏是博主根据如题教材进行Java进阶时所记的笔记,包括对原著的概括、理解,教材代码的报错和运行情况。十分建议看过原著遇到费解地方再来参考或与博主讨论。致敬作者Joshua Bloch跟以杨春花为首的译者团队。  通过私有构造器强化不可实例化的能力  很多情况下我们需要整个工具类出来以方便我们编程,比如Android中,为了防止使用Toast忘记show()一下,会把完整的Toast.make...

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Effective Java学习笔记 4 通过私有构造器增强不可实例化的能力

有些类不希望被实例化,比如一些工具类(只包含static方法和域),实例化没有任何意义。为了防止这样的类被实例化,不写构造函数是没有用的,因为默认的无参构造器(编译器自动生成)可以用。 同时,把类写成抽象类不可行。原因: 1. 继承之后可以实例化; 2. 更糟糕的是,还有可能让用户觉得这是为了继承设计的。 解决方案: 加上私有构造器,并在方法体内部抛出异常(不是必须但是有效);最好

288

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

effective java 学习笔记(一) 2012-4-24

刚开始看这本书我就确定是本好书,因为第一条我就没看明白。 我把原因归罪于隔壁工位运维的孩子们,打电话的声都快盖过我耳机里的声音了。 后来看了下jdbc的源码,才真正把文字和思想还有实现联系起来。 创建和销毁对象: 第一条:考虑用静态工厂方法代替构造器 书里一共列出了四大优势,让我眼前一亮的是第三个:“可以返回原返回类型的任何子类型的对象” 以jdbc为例,就是把

cody754542473的专栏 323

Effective Java 学习笔记第4条 --- 避免创建重复的对象

如果一个对象是非可变的,那么它在程序中上可以被重用的,如:   //不推荐,"test"本来就是一个String实例,如果此方法在一个循环中或者被频繁的调用,将会严重影响性能 String s = new String("test");   //推荐方式 String s = "test";         对于提供静态方法和构造函数的非可变类,推荐使用静态方法,这样可以避免重...

schumee的博客 163

《Effective Java》学习笔记 - (4) 通过私有构造器强化不可实例化的能力

有时候一些类只提供静态方法,通常是一些工具类,这些类不希望被实例化,那么我们就可以通过私有构造器来强化不可实例化的能力 有些类只需要包含静态方法和静态域,比如 java.lang.Math 或者 java.util.Arrays,把基本类型的值或者数组类型上的相关方法组织起来。我们也可以通过 java.util.Collections 的方式将实现特定接口的对象上的静态方法,包括工厂方法组织起来。...

Jwasx的博客 267

Effective Java 第二版 学习笔记(4) 消除过期对象的引用 避免使用终结方法

参考:Effective Java 第二版 第二章 消除过期对象的引用 过期引用是指永远不会再被解除引用。 一般而言,只要类是自己管理内存,程序员就该警惕内存泄漏问题。 内存泄漏的一个来源是缓存,一旦把对象放到缓存中,就很容易被遗忘掉,从而使得它不再有用之后仍然很长一段时间内留在缓存中。一种可能的解决方案是:只要在缓存之外存在对某个项键的引用,该项就有意义,那么就可以使用WeakHas...

Dan的专栏 278

Effective Java(第三版) 学习笔记 - 第二章 创建和销毁对象 Rule1~4

Effective Java(第三版) 学习笔记 - 第二章 创建和销毁对象 Rule1~4 本文主要介绍了对象创建和销毁相关的内容

weixin_44453385的博客 362

Effective Java 第三版 中文翻译

effective-java-third-edition 介绍 Effective Java 第三版全文翻译,纯属个人业余翻译,不合理的地方,望指正,感激不尽! 目录 推荐序 前言 致谢 第一章 引言 第二章 创建和销毁对象   本章涉及创建和销毁对象,包括何时以及如何创建它们,何时以及如何避免创建它们,如何确保它们被及时销毁,以及如何管理在销毁之前必须进行的清理操作。 第1项:考虑静态工...

Coloured_Glaze的博客 3861

effective Java 学习笔记(第二弹)

整理自《effective Java 中文第3版》本篇笔记整理第3,4章的内容。

Willow的博客 1168

Effective Java学习笔记

Java学习笔记 静态工厂方法 静态工厂方法 考虑使用静态工厂方法代替构造 静态工厂方法与构造器不同的第一优势在于,它们有名字 第二个优势,不用每次被调用时都创建新对象 第三个优势,可以返回原返回类型的子类 第四个优势,在创建带泛型的实例时,能使代码变得简洁(jdk1.8已经解决) 除此之外 可以有多个参数相同但名称不同的工厂方法 可以减少对外暴露的属性 多了一层控制,方便统一修改 Java 中,获得一个类实例最简单的方法就是使用 new 关键字,通过构造函数来实现对象的创建。 就像这样: Fragment

weixin_43877653的博客 996

《Effective Java》学习笔记——第7部分并发

Effective Java》第7部分“并发”介绍了如何编写高效、安全的多线程程序。随着多核处理器的普及,Java 的并发编程变得更加重要。本部分的内容涵盖了并发编程中的一些常见问题,并提供了一些最佳实践和技巧,以帮助开发编写出更加可靠且高效的并发程序。

weixin_37693760的博客 1171

Effective java 第2版 中文版 学习笔记一

Effective java 第2版 中文版 学习笔记一 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 ...

wanglei9876开发人生 345
上一篇: 《Effective Java》学习笔记(3)
下一篇: 想做个人主页了:)
killme2008
博客等级 码龄23年 14粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值