我正在开发一个应用程序,一种设计方法涉及对instanceof操作员的极大使用.虽然我知道OO设计通常会试图避免使用instanceof,但这是一个不同的故事,这个问题纯粹与性能有关.我想知道是否有任何性能影响?是这么快==吗?
例如,我有一个包含10个子类的基类.在一个获取基类的函数中,我会检查该类是否是子类的实例并执行一些例程.
我想解决它的另一种方法是使用"type id"整数原语,并使用位掩码来表示子类的类别,然后只需对子类"type id"进行掩码比较.表示类别的常量掩码.
被instanceof莫名其妙地由JVM优化得比较快?我想坚持使用Java,但应用程序的性能至关重要.如果之前一直走在这条路上的人可以提供一些建议,那将会很酷.我是在挑剔太多还是专注于错误的事情来优化?
现在我正在编写一个ORM框架,非常关心性能.
在本框架中,我必须使用instanceof和Class.isAssignableFrom检查类型兼容性.
所以我对instanceof和的表现有点怀疑Class.isAssignableFrom
究竟有多缓慢?
我正在使用kryonet从服务器和客户端来回发送对象.只要收到对象,就会运行一个侦听器.它似乎决定对象实例的唯一方法是使用:
if(object instanceof ClientLoginPacket){
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
我想知道什么是instanceof检查以确定对象是否属于特定类型.它检查类是否与所有代码完全相同,是否检查变量和名称?它也检查导入的包吗?你给我的任何信息都可以提供帮助.
我想知道这个的原因是因为我制作数据包的方式,服务器方法中的代码与客户端不同.例如,在我的客户端发送数据包我做:
public void send(){
Client.sendPacketTCP(this);
}
Run Code Online (Sandbox Code Playgroud)
在我的服务器上我这样做:
public void send(){
Server.sendPacketTCP(this);
}
Run Code Online (Sandbox Code Playgroud)