Effective java读书笔记(4)

告别手动打补丁!SCCM 2022 实战:从 WSUS 集成到自动部署的保姆级避坑指南 本文详细解析了SCCM 2022自动化补丁管理的全流程,从WSUS集成到智能部署规则设计,帮助企业告别手动打补丁的低效模式。通过实战案例和避坑指南,展示了如何配置端口、优化部署包及设置分阶段更新策略,确保企业系统安全高效运行。 阅读详情

第四章节

23)请不要在新代码中使用原生态类型

如果使用原生态类型,就失去了泛型在安全性和表述性方面的所有优势

ArrayList i = new ArrayList()这样写的目的是为了支持jdk5以前的代码。

24)消除非受检警告

尽可能消除每一非受检警告。

如果无法消除警告,同时可以证明引起警告的代码是类型安全的,可以用一个@SuppressWarnings("unchecked")来消除警告。并且,始终在尽可能小的范围中使用这条注解。

public static <T> T[] getItem(int Max) {
        @SuppressWarnings("unchecked") T[] result = (T[]) new Object[Max];
        return result;
   }

25)列表优先于数组

利用列表我们可以在编译时发现问题

Object[] object = new Long[1];
object[0] = "Insert"

这一段代码是合法的。

List<Object> ol = new ArrayList<Long>();
ol.add("Insert");

这一段代码是不合法的。

利用列表可能会损失性能和简洁性,但是换回的却是更高的类型安全性和互用性。
而我们在处理并发的时候,列表更加安全。

26)优先考虑泛型

使用泛型比使用需要在客户端代码中进行装换的类型来得更加安全。

我们来实现一个不考虑泛型的代码

//com.insanus.Generic.java
package com.insanus;
public class Generic {
    private Object[] elements;
    private final static int MAX = 10000;
    private int size = 0;
    public Generic() {
        elements = new Object[MAX];
    }
    public void push(Object i) {
        elements[size] = i;
        size ++;
    }
    public Object pop() {
        if (size == 0)
            return null;
        Object out = elements[size - 1];
        elements[size] = null;
        return out;
    }
}

而我们在处理的时候要进行类型转换,这很不安全,所以我们改写这份代码,加入泛型。

//com.insanus.Generic.java
package com.insanus;
public class Generic<T> {
    private T[] elements;
    private final static int MAX = 10000;
    private int size = 0;
    @SuppressWarnings("unchecked") public Generic() {
        elements = (T[])new Object[MAX];
    }
    public void push(T i) {
        elements[size] = i;
        size ++;
    }
    public T pop() {
        if (size == 0)
            return null;
        T out = elements[size - 1];
        elements[size] = null;
        return out;
    }
}
克里金插值(Kriging)在MATLAB中的实现(克里金工具箱) 一,直接献上克里金插值MATLAB工具箱 链接:https://pan.baidu.com/s/1p0lt2G8KQ-els7Dyw5jPFg 提取码:wcss 下载后将该程序添加到MATLAB安装文件夹中的/toolbox下,然后在设置路径中添加该程序文件为默认路径即可调用程序。 资源中内附程序使用说明PDF。 二、本人实际操作代码如下所示,标注如下 load data1 %载入数据 %模型参... 阅读详情

相关推荐

wpf入门第五篇 WPF with ECharts

前言 本文是wpf入门系列第五篇,面向有winform或者web前端基础的、并且也有C#基础的同学。 ECharts是百度团队开发的开源免费的js图表控件库,非常强大,文档齐全。WPF中使用图表,除了可以选择devexpress或者oxyplot之类的专为wpf开发的图表控件之外,还可以考虑使用 WebBrowser+ECharts 来完成复杂的图表展示,其展示效果不亚于前者。 本文介绍了 WP...

wf824284257的博客 1万+

【Effective Java】第4章 读书笔记

第4章 类和接口 15,使类和成员可访问性最小化 尽可能地使每个类或者成员不能被外界访问。 公有类的实例域绝不能是公有的。 包含公有可变域的类通常并不是线程安全的。 让类具有公有的静态 final 数组域,或者这种域的访问方法是错误的。 16,要在公有类中使用访问方法而非公有域 公有类永远都不要暴露可变的的域 17,使可变性最小化 不可变类是指实例不可以被修改的类 17.1 不可变类要遵循的五条原则: 不要提供任何可以修改对象状态的方法。 保证类不会被扩展。 声明所有的域都是 final 的。 声明所有的

qq_45050687的博客 1330

达梦数据库(DM)的备份与恢复功能

本文系统介绍了达梦数据库(DM)的备份与恢复功能,主要包括作业系统和物理/逻辑备份还原两大模块。作业系统部分详细说明了通过代理环境创建定时备份和删除备份作业的步骤;物理备份还原部分阐述了联机和脱机备份方式,包括数据库、表空间、表和归档的备份还原操作;逻辑备份还原部分介绍了dexp/dimp工具的使用方法及四种级别的导入导出功能。文章还介绍了图形化管理工具进行备份还原的操作流程,全面覆盖了达梦数据库的数据保护方案,为数据库管理员提供了详细的技术指导。

weixin_48812832的博客 1213

Effective Java读书笔记-4

*传递性(transitive):**对于任何非null的引用值x、y和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,那么x.equals(z)也必须返回true。对于任何非null的引用值x和y,只要equals的比较操作在对象中所用的信息没有被修改,多次调用x.equals(y)就会一致地返回true,或者一致地返回false。:对于任何非null的引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)必须返回true。

weixin_42583701的博客 189

Scratch(四十一):升级版垃圾分类

哈喽,大家好!之前给大家展示过“Scratch(二十四):垃圾分类”。今天呢,给大家展示的Scratch是`升级版垃圾分类`。接下来,我们一起看一下效果吧。

我可以很大侠的博客 6871

VS2019 从零构建 OSG+OSGEarth+OSGQt 开发环境实战指南

本文提供了一份详细的实战指南,指导开发者如何在Windows系统下使用VS2019从零开始编译和配置OSG、OSGEarth与OSGQt开发环境。文章涵盖了从环境准备、源码获取、CMake配置、Visual Studio编译到最终测试的完整流程,并分享了关键的避坑技巧,旨在帮助三维GIS与可视化开发者高效搭建稳定、可控的专业开发平台。

weixin_28826961的博客 370

Effective Java读书笔记(4)—— 泛型

先简单说一下泛型,这是从Java5开始的一个重要新特性:比方说,我现在想建立一个容器,容器里存储的元素类型可以使任意类型(可以存储dog,也可以存储cat),当然一个容器对象只能存储某一种,不能一个容器寄存dog又存cat。在泛型出现之前,我们想实现上述的功能需要这么做: Object[] dogs = new Object[100]; ArrayList dogs = new ArrayList...

Aviato 273

Kimodo 入门教程(一)英伟达开源人形机器人动捕数据集训练运动学动作扩散模型

Kimodo是一个基于700小时商用光学动作捕捉数据集训练的运动学动作扩散模型,能够生成高质量的人体和机器人3D动作。该模型支持通过文本提示和多种约束条件(如关键帧、末端执行器位置等)进行控制,并提供数字人类和类人机器人两种模型变体。安装方式包括软件包安装和源代码安装两种,需要配置HuggingFace令牌以访问文本编码器。推荐使用GPU加速,最低需要17GB显存。项目提供命令行生成和交互式演示两种使用方式,演示程序支持时间轴编辑和实时3D可视化。模型分为商用友好版和受限版,其中SMPL-X版本需要额外申请

2506_90492529的博客 1934

Effective Java读书笔记4

package chape8; /** * 第8章 * 第46條: * for-each循環優先于for循環 * for(Element e : c) * { * dosomthing(e); * } * 这个是java1.5以上的版本的for循环的首先考虑的写法 * 以下是java1.5以前的寫法 * for (Iterator ...

wwwwap2008的专栏 145

OSG第三方库编译之二十一:minizip编译(Windows、Linux、Macos环境下编译)

OSG编译;第三方库;跨平台编译;minizip编译(Windows、Linux、Macos环境下编译)

LuckyHanMo的博客 2623

42页Claude 3技术报告解读(Opus, Sonnet, Haiku)

在Claude 3模型中,增加了一个额外的原则到Claude的宪法中,以鼓励尊重残疾人权利,这一原则源自对集体宪法AI的研究。Claude 3模型的训练基于专有的混合数据集,包括截至2023年8月互联网上公开可用的信息,以及第三方提供的非公开数据、数据标注服务和付费承包商提供的数据,还有内部生成的数据。这些初始响应通常包含有害和有毒的内容。Claude 3模型家族在推理、编码和问答任务上展现出卓越的性能,特别是在行业标准基准测试中取得了显著的提升,证明了其在处理复杂问题和提供准确答案方面的能力。

具身机器人和通用AI 2439

【读书笔记】《Effective Java》(4)--泛型

趁着中秋小长假,把泛型这一章的内容整理出来,这一章讲真,看着很乱,一是因为对泛型在Java上的实现了解的还不够清晰,第二个我觉的书上给的泛型的注意点分散在各个小节里,不好总览。

lqadam的博客 1087

37、OpenMP:并行编程的强大工具

本文详细介绍了 OpenMP 的核心功能和使用方法,包括执行环境例程、线程同步与协调机制,如关键区域、屏障、原子操作、归约子句、刷新构造和锁机制。此外,还提供了多个实践练习,涵盖矩阵乘法的并行实现、任务池与流水线模式的应用、读写锁的扩展与移植,以及客户端-服务器模式的实现与优化。通过这些内容,读者可以全面掌握 OpenMP 在并行编程中的实际应用与性能优化技巧。

www00的博客 105

《Effective java》读书笔记4——泛型

数组与泛型集合的区别: (1).数组是协变的,即如果Sub为Super的子类型,那么数组类型Sub[]就是Super[]的子类型; 泛型是不可变的,即对于任何两个不同类型Type1和Type2,List既不是List的子类型,也不是List的超类型。 Object[] objectArray = new Long[1]; objectArray[0] = “I don't fit in”;

Tony Chen的专栏 3634

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

Effective Java 读书笔记(4)

23,在新代码里不用使用raw type。用了泛型之后,可以提供编译时类型检查,便于及早发现错误,从集合里读取数据的时候也不用手动的cast。如果真的想向集合里插入多种类型的数据,可以使用Object作为参数类型,比如List这样的。有点要注意的是class literal不能是泛型,只能有List.class,不能有List.class这样的。由于泛型信息在编译时会被擦除,因此,inst...

swordinhand的专栏 121

android 蓝牙通讯demo

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

[Java读书笔记] Effective Java(Third Edition) 第 4 章 类和接口

第 15 条: 使类和成员的可访问性最小化 软件设计基本原则:信息隐藏和封装。 信息隐藏可以有效解耦,使组件可以独立地开发、测试、优化、使用和修改。 经验法则:尽可能地使每个类或者成员不被外界访问。 对于成员(属性、方法、嵌套类和嵌套接口),有四种可能的访问级别,在这里,按照可访问性从小到大列出: private —— 该成员只能在声明它的顶层类内访问。 ...

weixin_30702887的博客 222

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

读书笔记:Effective Java-第4章 类和接口

Effective Java-第4章 类和接口

XinYuDaHai的博客 226

Effective Java读书笔记(第4章-类和接口)

第4章  类和接口

lyl_tkb的专栏 499

Effective Java读书笔记(4 类和接口)

4.1使类和成员的可访问性最小化

bear_huangzhen的专栏 1532

Effective Java读书笔记四(Java Tips.Day.4)

TIP17.要么为继承而设计,并提供文档说明,要么就禁止继承 对于专门为了继承而设计的类, 首先,文档必须精确的描述覆盖每个方法带来的影响,必须说明它可覆盖的方法的自用性。 对于每个public或protected的方法或构造器,必须指明它们调用哪些可覆盖的方法,是以什么顺序调用的,每个调用的结果又是如何影响后续的处理过程的。 类必须通过某种形式的钩子,以便能进入它的内部工作流程中,一

cangely的专栏 611

Effective.Java 读书笔记(4)非实例化

4.Enforce noninstantiability with private constructor 大意为 使用private的构造方法来实现的非实例化 有时你想要编写一个类,这个类只是静态方法和静态域的组成,这样的一个类获得一个糟糕的名声因为一些人滥用他们为了避免对对象的术语进行思考,但是他们的确是有用的 他们可以被使用在原始的值或者数组上组合有关的方法,比如在ja

XP and Altoria 515

Effective Java (3rd Editin) 读书笔记:4 泛型

4 泛型 泛型中的术语: 术语 例子 参数化类型(Parameterized type) List&amp;amp;lt;String&amp;amp;gt; 实际类型参数(Actual type parameter) String 泛型(Generic type) List&amp;amp;lt;E&amp;amp;gt; 形式类型参数(Formal type parameter) E 无界通配符类型(Unbounded wi...

哈罗德Android笔记 414

HTML/CSS/JS协同设计:构建语义清晰、性能优异的现代网页

现代网页设计的核心在于HTML、CSS与JavaScript的职责分离与协同演进——HTML定义语义结构与内容骨架,CSS控制视觉表现与交互反馈,JavaScript仅在必要时增强动态能力。这种分层架构不仅提升可访问性、SEO友好度和响应式兼容性,更直接优化Lighthouse性能指标(如FCP、TTI)与维护效率。实践中,语义化标签(如<article>、<nav>)、CSS自定义属性与层叠作用域、原生API替代JS库(如loading='lazy'、IntersectionObserver)已成为简洁代

weixin_34184158的博客 420

读书笔记-《Effective Java》第3条、第4条: 强化Singleton属性—私有构造器或者枚举类型

第3条:用私有构造器或者枚举类型强化Singleton属性 把构造器私有这个是单例基本要求,本条介绍了一种不知道为啥没有流行起来的单例方式(实现Singleton的最佳方式),包含单个元素的枚举类型(INSTANCE不是关键字,写别的也行) package org.test; public enum People { INSTANCE; public String name ...

baitianmingdebai的专栏 220

Effective Java 读书笔记

Effective Java 读书笔记

SteveJrong's Blog 1165
上一篇: Effective java读书笔记(3)
insanuscsdn
博客等级 码龄11年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值