- 博客(18)
- 收藏
- 关注
原创 《Effective Java》读书笔记十一
控制序列化内容:通过自定义的和readObject方法,可以精确控制对象的序列化和反序列化内容,避免序列化不必要的或者敏感的数据,从而提高安全性。优化序列化性能:自定义序列化允许你简化对象的序列化形式,减少序列化数据量,优化性能。通过定制对象的序列化过程,可以避免默认序列化中的不必要开销。增强版本兼容性:自定义序列化形式使你可以在类的演变过程中更好地管理版本兼容性问题。可以通过控制序列化数据的结构来避免因类修改而导致的兼容性问题。防止反序列化漏洞:在readObject。
2024-09-02 14:55:33
1033
原创 《Effective Java》读书笔记十
同步访问共享的可变数据是确保多线程程序正确性和线程安全的关键。通过使用同步方法或同步块,可以防止数据不一致和竞争条件的发生。在实现同步时,要选择合适的同步对象,避免过度同步,并注意死锁风险和性能影响。同时,要保持代码的可维护性,以便在后续的开发和维护中能够正确地处理同步问题。
2024-09-02 14:20:01
675
原创 《Effective Java》读书笔记九
只在真正的异常情况下才使用异常,避免滥用异常可以提高程序的性能、可读性和可维护性。在设计和使用异常时,要考虑异常的正确使用场景,提供有意义的异常信息,避免捕获过于宽泛的异常,并考虑异常的替代方案。这样可以使程序更加健壮和可靠。
2024-08-29 17:17:51
587
原创 《Effective Java》读书笔记八
将局部变量的作用域最小化是一种良好的编程实践,可以提高代码的可读性、可维护性和降低错误风险。通过尽早声明并初始化变量、避免不必要的扩大作用域、使用块级作用域和提取方法等方式,可以有效地实现局部变量作用域的最小化。同时,需要注意不要过度缩小作用域,以及在性能敏感的情况下进行适当的权衡。
2024-08-29 15:59:40
663
原创 《Effective Java》读书笔记七
检查参数的有效性是编写可靠和可维护代码的重要步骤。通过尽早进行参数检查、检查合法性、空值和一致性、抛出适当的异常并记录参数要求,可以提高程序的正确性、可维护性和安全性。
2024-08-29 11:18:02
683
原创 《Effective Java》读书笔记六
Lambda 表达式相比匿名类具有更简洁的语法、更好的灵活性和可读性,在大多数情况下应该优先使用。它符合现代编程的趋势,能够提高代码的质量和开发效率。但在使用时需要注意理解函数式接口和保持代码的可读性。
2024-08-28 17:14:43
849
原创 《Effective Java》读书笔记五
一、标记接口的作用类型标识:标记接口用于标识一个类具有特定的属性或行为特征,为程序提供一种类型信息,以便在运行时进行类型检查和特定的处理。实现多态:可以基于标记接口实现多态性,使得不同的类可以以统一的方式被处理,增强了代码的灵活性和可扩展性。二、与其他方式的比较相对于注释:标记接口是一种强类型的方式,编译器可以进行严格的类型检查,而注释只是一种元数据,不能提供同样的类型安全性。
2024-08-27 18:10:18
671
原创 《Effective Java》读书笔记四
为了提高代码的安全性、可读性和可维护性,应避免使用原生态类型,始终优先使用泛型类型。这样可以充分利用 Java 泛型提供的类型安全保证和其他优势,降低程序出错的风险。
2024-08-27 10:54:01
815
原创 《Effective Java》读书笔记三
一、明确接口的核心作用定义类型:接口的主要目的是为了定义一种特定的行为规范和类型标识。它描述了一组方法签名,任何实现该接口的类都必须提供这些方法的具体实现。通过接口,我们可以以一种统一的方式来处理不同的实现类,而无需关心具体的实现细节。类型标识的重要性:接口作为一种类型,可以在代码中用于变量声明、方法参数和返回值类型等。这使得代码更加灵活和可扩展,因为可以在运行时根据实际情况传入不同的实现类,而无需修改调用代码。二、避免不恰当的使用不要在接口中定义常量以外的变量:接口不应该被用作存储数据的地方。
2024-08-26 17:36:31
727
1
原创 《Effective Java》读书笔记二
一、equals 方法的重要性二、通用约定的内容三、实现 equals 方法的步骤四、注意事项五、好处一、equals 和 hashCode 的关系二、不覆盖 hashCode 的问题三、覆盖 hashCode 的方法四、注意事项五、好处一、toString 方法的重要性二、默认 toString 方法的不足三、覆盖 toString 方法的原则四、实现 toString 方法的建议五、好处一、clone 方法的复杂性二、覆盖 clone 的风险三、谨慎覆盖的原则四、好处与注意事项一、Comparable
2024-08-26 16:25:51
633
原创 Ubuntu中结合Nginx配置nacos集群
Ubuntu中结合Nginx配置nacos集群一、软件版本Ubuntu-20.04Mysql-8.0.28Nginx-1.20.2nacos-1.1.4二、安装Nginx-1.20.22.1 首先安装一些依赖$ sudo apt-get install gcc$ sudo apt-get install libpcre3 libpcre3-dev$ sudo apt-get install zlib1g zlib1g-dev$ sudo apt-get install openssl
2022-05-20 22:14:02
605
翻译 区块链分片:《Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones》论文翻译个人笔记
区块链分片:《Monoxide: Scale Out Blockchain with Asynchronous Consensus Zones》论文翻译个人笔记日期:2019年2月26-28日摘要加密货币为匿名在线支付提供了一个很有前途的基础设施。然而,低吞吐量严重阻碍了加密货币系统的可伸缩性和可用性,以满足不断增加的用户和交易数量。 实现可伸缩性的另一个障碍是每个节点都需要复制整个网络的通信、存储和状态表示。在本文中,我们介绍了异步共识区,它可以在不影响去中心化或安全性的情况下线性扩展区块链系统。
2021-11-23 22:31:39
2406
1
原创 Ubuntu20.04下使用docker安装FATE联邦学习框架
Ubuntu20.04下两种方式安装FATE联邦学习框架一、前提准备1.1 安装jdk1.8+打开命令行创建一个文件夹保存jdk$ cd /usr$ sudo mkdir java在windows上下载jdk1.8+版本这是下载的是jdk-8u291-linux-x64.tar.gz,移入Ubuntu,解压到刚刚创建的文件夹$ sudo tar -xzvf jdk-8u291-linux-x64.tar.gz -C /usr/java配置java环境变量$ sudo vi /etc/
2021-05-18 09:38:58
2167
13
原创 Ubuntu下DFINITY公链网络部署(一)
Ubuntu下DFINITY公链网络部署(一)一、前提条件1.1 安装nodejs$ sudo apt install nodejs$ sudo apt install npm测试是否安装完成$ node -vv10.19.0$ npm -v6.14.41.2 安装DFINITY Canister SDK软件包浏览器输入以下网址下载sdk执行文件https://sdk.dfinity.org/install.sh然后把install.sh文件传入linux中或者新建install
2021-05-13 22:48:06
1338
6
原创 Ubuntu环境下搭建hyperledger fabric测试网络详细教程
Ubuntu环境下搭建hyperledger fabric超级无敌详细教程一、搭建前提条件1.1 如果尚未安装最新版本的git,请安装它$ sudo apt-get install git1.2 如果尚未安装最新版本的curl,请安装它$ sudo apt-get install curl1.3 如果尚未安装最新版本的Docker,请安装它1.3.1 如果安装了docker旧版本,卸载旧版本docker(可选) $ sudo apt-get remove docker docker-en
2021-05-10 22:57:26
8103
14
翻译 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记
联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记摘要今天的人工智能仍然面临着两大挑战。一是在大多数行业中,数据以孤岛的形式存在。另一个是加强数据隐私和安全。我们为这些挑战提出了一个可能的解决方案:安全联邦学习。除了2016年谷歌首次提出的联邦学习框架外,我们还引入了一个全面的安全联邦学习框架,包括水平联邦学习、垂直联邦学习和联邦迁移学习。我们提供了联邦学习框架的定义、架构和应用程序,并提供了有关该主题的现有工作的全
2021-05-03 22:11:01
1356
翻译 联邦学习笔记-《Communication-Efficient Learning of Deep Networks from Decentralized Data》论文翻译个人笔记
联邦学习笔记-《Communication-Efficient Learning of Deep Networks from Decentralized Data》论文翻译个人笔记摘要现代移动设备拥有丰富的适合学习模型的数据,可以极大地改善用户在设备上的体验。例如,语言模型可以改进语音识别和文本输入,图像模型可以自动选择好的照片。然而,这些丰富的数据通常是隐私敏感的,数量很大,或者两者都有,这可能会阻止登录到数据中心并使用传统方法在那里进行培训。我们提倡一种替代方法,将训练数据分散在移动设备上,通过聚合
2021-04-29 23:09:48
1956
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人