JavaSEDemo06

(UE4 4.27) HISM性能优化:从空间剔除到合批渲染的实战解析 本文深入解析了UE4 4.27中HISM(UHierarchicalInstancedStaticMesh)组件的性能优化原理与实战技巧。核心在于利用其N叉树空间结构实现高效的CPU视锥剔除,并结合GPU实例化进行合批渲染。文章详细探讨了从控制叶子节点粒度、平衡剔除精度与渲染效率,到结合LOD系统等关键参数的调优方法,为开放世界或大场景的植被性能瓶颈提供了系统解决方案。 阅读详情

简介

  • 本文是2021/03/25晚上整理的笔记
  • 赘述可能有点多,还请各位朋友耐心阅读
  • 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进。

显示继承与隐式继承

  • 子类继承父类时,会继承父类所有的成员变量(包括私有变量)和成员方法
  • 显式继承:子类继承父类后,可以执行的所有非私有操作都是显示继承。
  • 隐式继承:子类继承父类后,不可以直接进行私有操作,例如无法直接访问私有变量,此时需要借助Getter and Setter方法

继承的重点

  • 继承的作用:代码复用 对父类进行扩展
  • 私有属性也可以被继承,但是不能直接访问,需要通过

继承与构造方法

  • 子类无法继承父类的构造方法。
  • 如果父类提供了无参构造方法,子类会隐含的存在一句super();
  • 如果父类没有提供无参构造方法,而是提供了有参构造方法,需在子类的构造方法中显式调用

继承的优点和缺点

  • 优点:继承可以对类进行共性抽取,实现代码复用
  • 缺点:提高了类与类间的耦合性,使得代码间依赖性强,代码独立性差。用多米诺骨牌来举例,容易造成一错百错的情况。

final关键字

  • 修饰类,该类无法被继承
  • 修饰方法,该方法无法被重写
  • 修饰变量,该变量无法被改变

多重继承时构造方法的执行情况(C是孙子 B是儿子 A是自己)

  • C继承B B继承A
public class A {
    public A() {
        System.out.println("A类无参构造方法被执行");
    }
}

public class B extends A{
    public B() {
        System.out.println("B类无参构造方法被执行");
    }
}
public class C extends B{
    public C() {
        System.out.println("C类无参构造方法被执行");
    }
}
public class Test {
    public static void main(String[] args) {
        C c = new C();
    }
}

程序运行结果

A类无参构造方法被执行
B类无参构造方法被执行
C类无参构造方法被执行
  • 代码解释:
  • new 创建C类对象时,先调用C类对象的构造方法,由于C类继承了B类,C类构造方法中有super( )关键字,调用了B类构造方法。
  • B类构造方法执行,由于B类继承了A类,B类构造方法中有super( )关键字,调用了A类构造方法。
  • A类构造方法执行。
  • 故程序运行结果是如上所写的。
  • Object类是所有类的父类,开玩笑地说,Object类是祖宗类。

封装继承多态的描述

  • 封装:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信
    息的访问和操作。
  • 继承:继承就是子类继承父类的成员变量(属性)和行为(方法),使得子类对象(实例)具有父类的成员变量和方
    法,或子类从父类继承方法,使得子类具有父类相同的行为。
  • 多态:
  • 多态是同一个行为具有多个不同表现形式或形态的能力。
  • 多态就是同一个接口,使用不同的实例而执行不同操作
  • 多态在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法

方法重写的要求

  1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表
  2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型
  3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限
    子类不能重写父类中声明为private权限的方法
  4. 子类方法抛出的异常不能大于父类被重写方法的异常
    注意:
    子类与父类中同名同参数的方法必须同时声明为非static的(即为重写),或者同时声明为static的
    (不是重写)。因为static方法是属于类的,子类无法覆盖父类的方法。

对象类型转换

  • 向上造型:向上造型就是父类的引用(栈中)指向子类的对象(堆中)
public class Animal {
   String name ;
   public void eat(){
       System.out.println("动物吃东西");
   }
}

public class Dog extends Animal {
   @Override
   public void eat() {
       System.out.println("狗吃骨头");
   }
}

public class Test {
   public static void main(String[] args) {
       Animal dog = new Dog();
       dog.eat();
   }
}

程序运行结果

狗吃骨头
  • 向下造型:对象在满足条件的情况下也能进行向下造型,即显式的将父类引用指向的对象转换为子类类型
    向下造型的要求是:进行向下造型的对象的运行期类型必须是子类或以子类为根的继承树中的其他类型
public class Animal {

}

public class Dog extends Animal {

}

public class Test {
    public static void main(String[] args) {
        Animal animal = new Dog();
        Dog dog = (Dog)animal;
    }
}

编译期类型与运行期类型

  • 我们用个例子来说明 父类是Animal 子类是Dog
  • Animal animal = new Dog();
  • 等号左侧用来声明引用的父类是编译期类型
  • 等号右侧用来创建实例对象的子类是运行期类型

静态绑定和动态绑定

  • 类的成员变量都是静态绑定的
  • 类的成员方法调用时是动态绑定的

instanceof 运算符

  • 语法:对象 instanceof 类
  • 该表达式为一个boolean表达式,如果对象的类型是后面提供的类或其子类,则返回true,反之返回false
  • instanceof看对象运行期的类型进行判断

打印语句会自动调用 toString方法

  • System.out.println();是我们常用的打印语句
  • 其实这个语句调用了Object类中的toString方法。
  • 我们可以通过重写Object类的toString方法来实现我们想要的功能
    在这里插入图片描述
    如图所示,我们得知Object类的toString方法返回值类型为String,参数列表为空
public class Test {
    public static void main(String[] args) {
       Test test = new Test();
        System.out.println(test);

    }
  @Override
  public String toString(){

      return "toString方法被调用了";
        }
}

程序运行结果

toString方法被调用了

toString方法没有被静态关键字static修饰,不是静态方法,不能直接通过类调用,必须创建对象才可以调用。
在很多类中重写了toString方法,通过哪个对象调用,就使用哪个toString方法,没有则向本类的父类中寻找。

详解AUTOSAR:什么是AUTOSAR?(理论篇—1) AUTOSAR是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联合建立的一套标准协议,是对汽车技术开发一百多年来的经验总结。 阅读详情

相关推荐

SAP 发货在途库存管理:POD确认差异下的2种后续调整方案对比

本文详细解析了SAP发货在途库存管理中POD确认差异后的财务调整方案,对比了移动类型417和555 T两种处理方式的适用场景及财务影响。通过实际案例说明如何优化POD流程,减少库存差异损失,提升供应链管理效率。特别适合SAP SD模块用户及供应链管理人员参考。

chiman6219的博客 395

构造器面试题(有参构造的执行情况)

理解下面的三个结论 class A { private static int numA; private int numA2; static { System.out.println("A的静态字段 : " + numA); System.out.println("A的静态代码块"); } { System.out.println("A的成员变量 : " + numA2); System.out.p

AC_872767407的博客 364

VisualStudio2022配置CGAL

vs2022和vs2017安装配置boost没什么区别,只需要注意boost的msvc得是14.3的,这玩意跟visualstudio版本挂钩的。压缩包解压,得到下面这两文件,然后把auxiliary这个文件挪到CGAL-5.6里面就行了。我用cgal读取一个stl模型,并输出相关信息(想可视化的话需要安装Qt,不想装Qt也可以装VTK)然后下载下面这两个压缩包。照着下面的截图填就完事了。

weixin_43850909的博客 1171

学习笔记(4):70讲轻松通关JavaSE-构造方法_this_垃圾回收

【为什么学习Java?】 1.因为Java是全球排名第一的编程语言,Java工程师也是市场需求最大的软件工程师,选择Java,就是选择了高薪。 2.Java语言常年霸占着三大市场: 互联网和企业应用,这是Java EE的长期优势和市场地位; 大数据平台,主要有Hadoop、Spark、Flink等,他们都是Java或Scala(一种运行于JVM的编程语言)开发的;...

Mark_mby的博客 203

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。 实现过程如下: import argparse, math, os, sys import numpy as np import gym from gym import wrappers import matplotlib.pyplot as plt import torch fr

hhy_csdn的博客 5636

从波形到代码:手把手调试GaN图腾柱PFC的过零点切换与软启动策略

本文详细解析了GaN图腾柱无桥Boost PFC电路在过零点切换与软启动策略中的调试方法。通过波形分析、代码实现和寄存器配置,提供了解决误开通、震荡波形等问题的实用方案,帮助工程师优化电源设计效率与可靠性。

weixin_30831529的博客 424

父类、子类的无参构造方法和带参构造方法 的运行先后顺序

结论: 无参构造方法比有参构造方法先运行; (构造方法)当父类为无参,子类有参时,也是无参先运行。 1.建一个父类:Female;一个子类:girl,子类继承父类; 2.父类有无参数构造方法分别设为: public female(){ System.out.println("female的无参构造方法 "); } public female(String n){ System.out.println("(有参数)fema...

TKino11的博客 2572

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 157

JavaSEDemo33

文章目录简介网络通讯知识点总结概念TCP协议UDP协议IP协议ICMP协议IGMP协议ARP协议HTTP协议FTP协议IP = 子网(网络号:前3个字节)+ 主机号(最后一个字节)TCP和UDP的区别HTTP请求方式HTTP协议的请求结构HTTP协议的响应结构重要的响应状态码Socket知识点总结服务端ServerSocket客户端NIOByteBuffer 简介 本文是2021/05/06整理的笔记 赘述可能有点多,还请各位朋友耐心阅读 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进

hypertext123的博客 212

uniapp [安卓苹果App端] - 实现集成微信一键登录及授权获取用户信息全流程源码,uniApp唤起微信客户端app实现微信授权头像昵称手机号(提供移动应用/开放平台/资质认证/签名/权限申请

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,微信一键登录,uniapp项目App端实现微信登录,Uniapp实现微信授权登录,调起微信客户端授权用户信息,uniappapp端微信一键登录打开手机微信app,app端如何唤起用户本机微信应用并授权登陆,如何申请微信一键登录,uniapp实现APP微信登录流程,打开本地微信软件,接入微信登录,UniApp实现微信登录教程,获取头像昵称手机号用户数据,超详细实现微信登录功能,唤起没反应,授权失败,获取

🏆 前端领域优质创作者 1万+

多模态论文笔记——BLIP

本文详细介绍这几年AIGC火爆的隐藏功臣,多模态模型:BLIP。

haopinglianlian的博客 2454

JavaSEDemo18volatile关键字与Quartz调度器与泛型

文章目录简介Lock锁volatile关键字Quartz调度器(框架)Cron表达式Java中类型擦除的特征与限制编译器处理泛型有两种方式类型擦除类型擦除后保留的原始类型Java中类型擦除的限制Java中类型擦除的特征放行类使用泛型泛型方法泛型接口泛型不支持协变Java中数组是协变的泛型不支持协变泛型通配符通配符基本使用通配符高级使用----受限泛型课堂案例泛型的上限泛型的下限 简介 本文是2021/04/16整理的笔记 赘述可能有点多,还请各位朋友耐心阅读 本人的内容和答案不一定是最好最正确的,欢迎各位

hypertext123的博客 193

Multisim14使用教程详尽版--(2025最新版)

摘要:本文详细介绍了Multisim14电路仿真软件的功能和使用方法。主要内容包括:1)主流电路仿真软件比较,突出Multisim在教学、竞赛设计中的优势;2)软件界面说明,涵盖菜单栏、工具栏、元器件库和仪器仪表;3)18类元器件分类详解及其使用操作;4)15种仪器仪表的原理和应用场景;5)电路原理图设计与仿真流程;6)基本电路分析方法(直流静态工作点分析、交流分析等)。文章还提供了硬件工程师笔试面试相关资源链接,涵盖电阻、电容、三极管等器件知识及AD软件操作指南。通过系统讲解,帮助用户掌握Multisim

XU157303764的博客 2万+

06 Java方法

Java方法:方法的定义、方法调用与实现、方法重载

yinying293的博客 181

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

文件拷贝常用方法

文件拷贝是java里面比较基础的知识,在面试中面试官也经常要求进行手写,本人最近就在面试中遇到,写得不是很好,于是总结了一下java文件复制的方法。

Nanki_的博客 216

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

1.Java中的IO流

File类及其与IO操作相关的类都位于java.io包下,表示文件和目录路径名的抽象表示。1 定位到文件:对文件进行相应的操作:删除,修改 , 重命名,获取文件属性信息 但是不能读写文件。File类提供了如:定位文件 获取文件本身的信息,删除文件 创建文件 创建目录等功1.当调用者是一个有内容的目录时,将里面所有的文件和目录的路径放在File数组中返回。2 读写文件的数据:IO流技术 可以实现对文件中的数据进行读写。通过将给定的路径名字符串转换为抽象路径名来创建新的。File对象 可以定位到文件和文件夹。

weixin_62843104的博客 209

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java高级(IO)

解决之前数据存储在内存中,不能永久保存。因此需要将数据存储在硬盘上,文件是存储的载体。

qq_52847866的博客 119

迷你项目练习题4用户登录与用户注册(异常处理)

题目 (自定义异常)完成某个计费系统的用户登录和注册模块,要求如下: 1) 创建一个 User 类,包括:用户登录名(username)、密码(password)、用户真实姓名(name)、电子邮件地址(email)属性和相应的构造方法及 set/get 方法。 2) 创建两个自定义异常类,一个 LoginException,表示登录异常。一个 RegisterException, 表示注册异常。自定义的两个异常,都要求有一个接受字符串类型参数的构造方法。 3) 创建一个 UserBiz 接口,该接口中定

hypertext123的博客 1097

JavaSEDemo05

文章目录void方法中使用return语句的情况 void方法中使用return语句的情况

hypertext123的博客 605

JavaSE常见错题整理

文章目录条件分支 条件分支 对于switch/case语句以下说法正确的有。 A、default语句是可选的,但是如果出现default则必须位于所有的case后面 B、case子句后面的值必须是常量,且不可重复 C、switch后面的表达式的值如果是数值型,则必须是可精确匹配的整数值,如int\long,而不能是浮点数 D、case后面的break是必选的,不能省略break 正确答案:B选项 错误分析: A选项,default语句可以不放在所有的case后面 C选项,switch/case不支持lon

hypertext123的博客 602

简单的方法递归题

文章目录题目1:卖鸭子题目2:不死神兔 题目1:卖鸭子 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子? 解题思路:用数学思想解决此类问题比较简单。此题是知道还剩下多少鸭子,不知道一开始有多少鸭子,为知尾不知头的类型。所以我们要寻找F(n)与F(n+m)的规律,m是题中数据发生显著变化的间隔,本题m=1,因为每经过1个村子,数据就会发生变化。 设一个函数F(n),F为经过n个村子后鸭子的数量,n为

hypertext123的博客 596

JavaSEDemo32IO流与网络编程

文章目录简介易错练习练习1练习2练习3练习4练习5文件知识点复习什么是文件FileFile最常用的方法FilenameFilter 过滤某一个文件夹下的所有以xxx结尾或者开头或者包含的文件列表路径IO流流的概念流的分类字节流字符流 简介 易错练习 练习1 以下说法正确的是?【单项选择题题】【简单】 A.RandomAccessFile类是File类的子类 B.FileWriter类提供有操作基本数据类型的方法 C.RandomAccessFile类提供有删除磁盘文件的方法 D.File类提供有删除磁盘文件

hypertext123的博客 579

JavasSEDemo31IO流

文章目录简介易错练习题练习1 简介 本文是2021/04/29整理的笔记 赘述可能有点多,还请各位朋友耐心阅读 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进 易错练习题 练习1 byte b = 127; System.out.println(-b); 选择程序运行结果 A、-127 B、0 C、-128 D、运行错误 答案 A ...

hypertext123的博客 557

迷你项目练习题3遥控器播放CD DVD Tape

题目 定义一个接口 MediaPlayer,表示家庭影院的一个设备。MediaPlayer 中 包含 play(),stop(), open()三个方法,分别表示播放、停止和开仓功能。 MediaPlayer 有三个实现类,分别为:DVDPlayer,表示 DVD 播放器;CDPlayer, 表示 CD 播放器;TapePlayer,表示录音机(播放磁带)。 类图如下: 创建一个遥控器 Controller 类。该遥控器有三个控制通道,可以分别控制三个 设备。部分代码如下: class Controlle

hypertext123的博客 529

JavaSEDemo07

文章目录简介(多态)写一个函数,接受一个图形作为参数,打印出该图形的周长和面积题目分析代码示例Shape类Triangle类Circle类Square类Rectangle类ShapeTest类程序运行结果 简介 本文是2021/03/29整理的笔记 赘述可能有点多,还请各位朋友耐心阅读 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进。 (多态)写一个函数,接受一个图形作为参数,打印出该图形的周长和面积 (1)父类图形Shape类 (2)子类三角形Triangel类 (3)子类圆形Ci

hypertext123的博客 518

JavaSEDemo25Map

文章目录简介练习题练习1练习2练习3练习4练习5练习6练习7练习8练习9 简介 本文是2021/04/24整理的笔记 赘述可能有点多,还请各位朋友耐心阅读 本人的内容和答案不一定是最好最正确的,欢迎各位朋友评论区指正改进 练习题 练习1 以下代码的执行结果是?【单项选择题】【简单】 public class Example { public static void main(String[] args) { TreeSet<String> t = new TreeSet<Str

hypertext123的博客 466
上一篇: JavaSEDemo05
下一篇: 简单的方法递归题
香鱼嫩虾
博客等级 码龄7年 1671粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香鱼嫩虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值