码出高效-java笔记——面向对象

关于面向对象

  • 里氏代换原则
    LSP:任何父类能够出现的地方,子类都能够出现
  • 谨慎使用方法继承
    方法继承带来的危害性:
    • 方法污染:父类具备的行为通过继承传递给子类,子类不具备执行此行为的能力
    • 方法爆炸:指继承树不断扩大
  • JDK进化史
    1. JDK8:Lambda表达式、函数式接口、Stream流等
    2. JDK9:模块化、进程改善和锁机制优化、代码分段缓存等
    3. JDK10:改进GC和内存管理等
    4. JDK11:提供实验性质的可扩展的低延迟垃圾收集器ZGC等
    5. JDK12 :Switch表达式功能增强、G1收集器优化

  • java类的组成部分:成员、方法
  • 接口是顶级的类
  • 内部类加载和外部类通常不在同一个阶段进行
    原因:
    1. 作用域不会扩散到包外
    2. 可以通过“外部类.内部类”的方式直接访问
    3. 内部类可以访问外部类中的所有静态属性和方法
  • 修饰符总结:
    1. public任何地方都能访问
    2. protected同一包内都可以,包外只能子类可以
    3. default只能同一包内
    4. private只能同一类内

序列化

对象只有序列化后成为二进制流才可以进行数据持久化和网络传输。

序列化方式
  1. java原生序列化
    通过实现Serializable接口实现序列化,改接口只起标识作用,不支持跨语言、性能一般。
  2. Hessian序列化
    Hessian会把复杂对象的所有属性都存储在一个map中进行序列化;当父类子类存在同名变量时,会先序列化子类,然后序列化父类,这样反序列化时会导致子类同名变量被父类的值覆盖。
  3. JSON序列化
    将数据对象转换为JSON字符串。

参数

  • 无论是对于基本数据类型还是引用变量,java中的参数传递都是值复制的传递过程。对于引用变量,复制指向对象的首地址,则双方都可以通过自己的引用变量修改指向对象的相关属性。
  • 批量接口进行批量操作时,要对入参数据量进行判断和控制,防止超出处理能力
  • 执行顺序
    1. 父类静态代码块
    2. 子类静态代码块
    3. 父类构造方法
    4. 子类构造方法

覆写

  1. 动态绑定
    由于有些子类是延迟加载的,甚至是网络加载的,所以最终的实现需要再运行期进行判断,这就是动态绑定。
    动态绑定是多态性得以实现的重要因素,元空间有一个方发表保存着每个可以实例化类的方法信息,jvm可以通过方法表快速的激活实例方法。
  2. 向上转型
    如果某个类覆写了父类的某个方法,则方法表中的方法指向引用会指向子类的实现处。
    注意:
    1. 无法调用到子类中存在而父类本身不存在的方法
    2. 可以调用到子类中覆写了父类的方法,这是一种多态实现
  3. 覆写条件(一大两小两同)
    1. 访问权限不能变小(一大:子类访问权限只能相同或变大)
    2. 返回类型能够向上转型成为父类的返回类型
    3. 异常也要能向上转型成为父类的异常(两小)
    4. 方法名、参数类型及个数必须保持严格一致(两同)

重载

定义:方法名相同、参数类型不同、参数个数不同、参数顺序不同。(又称为静态绑定)

  • 重载匹配顺序
    1. 精确匹配
    2. 如果是基本数据类型,自动转换成更大表示范围的基本类型
    3. 通过自动拆箱与装箱
    4. 通过子类向上转型继承路线依次匹配
    5. 通过可变参数匹配

包装类

Integer类型数据在-128~127之间会进行缓存,在IntegerCache.cache中,会复用对象,在这个范围内的数据可以直接使用==进行判断,这个区域之外的数据要在堆上产生,并不会复用。
修改这个范围的大小可以通过修改VM options参数 -XX:AutoBoxCacheMax=777(这样修改缓存的最大值为777)只对Integer类型数据有效

字符串

字符串相关类型:

  1. String
    只读字符串,任何改动都是创建一个新对象然后把引用指向该对象
  2. StringBuilder
    非线程安全的,效率比StringBuffer高
  3. StringBuffer
    可以在原对象上进行修改,是线程安全的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: wrf-chem数据下载的相关网址链接: 1. NCEP/NCAR Reanalysis I: ftp://ftp.cdc.noaa.gov/Datasets/ncep.reanalysis.dailyavgs/surface/ 2. Chemical Transport Model (CTM) data from the GEOS-Chem group: https://acmg.seas.harvard.edu/geos/ 3. Emissions data from the Emissions Database for Global Atmospheric Research (EDGAR): https://edgar.jrc.ec.europa.eu/ 4. The Community Multi-scale Air Quality (CMAQ) modeling system data: https://www.epa.gov/air-research/community-multiscale-air-quality-cmaq-modeling-system 请注意,不同的数据来源可能需要不同的许可证才能访问,请确保您具有访问所需数据的合法资格。 ### 回答2: WRF-Chem是一种大气化学模型,它用于模拟大气中化学物种的输运和转化过程。在建立WRF-Chem模型之前,我们需要收集和处理一些数据,以确保模型的准确性和可靠性。这些数据包括地理信息、排放数据、气象数据和化学初始和边界条件等。 首先,地理信息数据是建立WRF-Chem模型的基础。这些数据包括经纬度、高程和土地覆盖类型等信息,可以用于生成地形和表面辐射强度图。我们可以在https://www.ngdc.noaa.gov/上下载世界各地的地理数据。 其次,排放数据是描述大气中污染物来源和排放速率的关键数据。这些数据包括人工排放和自然排放两种来源。人工排放包括工业、交通和农业等活动产生的污染物,自然排放包括植被的插值和火山喷发等自然事件。各个国家和地区的排放数据可在Emission Database for Global Atmospheric Research (EDGAR) (https://www.sciencedirect.com/science/article/pii/S1352231009003904 )上下载。 第三,气象数据是WRF-Chem模型的必需数据。气象数据包括气温、风速、风向和湿度等逐小时或逐分钟的数据。我们可以在National Centers for Environmental Prediction (NCEP) (https://www.ncdc.noaa.gov/data-access/model-data/model-datasets)或European Center for Medium-Range Weather Forecasts (ECMWF) (https://www.ecmwf.int/en/forecasts/datasets)上下载气象数据。 最后,化学初始和边界条件数据是指大气中化学物种的浓度和化学反应速率等信息。这些数据通常由现场观测或其他化学模型得出,可以在全球化学输送模型 (GEOS-Chem) (http://acmg.seas.harvard.edu/geos/)上获取。 总之,WRF-Chem模型的建立需要以上四个基本数据。这些数据可以在相关数据下载网址上获取。但是,这些数据的质量和格式都需要我们认真审查和处理,以确保WRF-Chem模型的准确性和可靠性。 ### 回答3: wrf-chem是一种用于模拟大气物质输运和化学反应的数值模型。在进行wrf-chem模拟时,需要使用许多与气体和颗粒物浓度、化学反应等相关的数据。这些数据可以通过官方网站和其他一些数据平台进行下载。 其中,官方网站是wrf-chem模型最全面的数据源,开发者提供了许多与模型运行相关的数据和工具。这些数据包括了不同时间尺度上的气象模型、气体和颗粒物浓度模型、化学反应模型、辐射强度模型等。此外,网站中还提供了许多工具,例如反求模块、统计模块等,可以用于模型调试和后处理。下载方式为直接点击网站上的下载链接,选择相应的数据和工具即可。 另外,还有一些数据平台也可以提供相关数据的下载,例如NCAR Data Portal、Earth System Grid、国家气象信息中心等。这些平台通常提供了一些免费的数据下载服务,但需要用户进行注册和认证。同时,有些数据需要进行特定的格式转换,才能够被wrf-chem模型所使用。 总体来说,wrf-chem模型所需的数据比较丰富,但是通过官方网站和其他数据平台的配合,用户可以方便地获取这些数据,并进行相应的分析和后处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值