Java 使用类还是不使用类

Java 使用类还是不使用类,java,class,object,Java,Class,Object,我有一个问题,我是否应该使用一个类来解决这个问题。以下是我的设想: 我将每秒接收包含2组数据的数据包。dataA和dataB。一旦我得到数据,我需要给数据加上时间戳。我需要对数据进行计算并保留答案。我正在考虑为我收到的每个数据包使用一个类。让这个类成为时间戳和所有其他我需要的东西的成员 这是个好主意吗?有更好的办法吗

我有一个问题,我是否应该使用一个类来解决这个问题。以下是我的设想:

我将每秒接收包含2组数据的数据包。dataA和dataB。一旦我得到数据,我需要给数据加上时间戳。我需要对数据进行计算并保留答案。我正在考虑为我收到的每个数据包使用一个类。让这个类成为时间戳和所有其他我需要的东西的成员

这是个好主意吗?有更好的办法吗

<我是java新手,我来自C++,我需要在我使用完这些类之后解构这些类,还是java为我做这些?一旦我处理完这个对象,我该如何处理它


提前谢谢

在Java中,它几乎是所有的类

是的,将包数据及其上的所有操作建模为一个类听起来很合适

不,您不必手动解构对象,当不再有任何对象引用它们时*,它们由垃圾收集器(最终)收集


*实际规则要比这复杂一点,任何无法从活动线程访问的对象都被视为符合垃圾收集条件。这意味着您不必担心对象之间的循环引用。

在Java中,它几乎是所有类

是的,将包数据及其上的所有操作建模为一个类听起来很合适

不,您不必手动解构对象,当不再有任何对象引用它们时*,它们由垃圾收集器(最终)收集


*实际规则要比这复杂一点,任何无法从活动线程访问的对象都被视为符合垃圾收集条件。这意味着您不必担心对象之间的循环引用。

创建自己的类。这就是Java的方式

除非该类是私有内部类,否则应该使用私有字段和getter/setter方法来定义它,以访问和更新它们。或者,如果不需要更新字段,则只需要setter方法。(从C/C++的角度来看,这听起来可能有点重,但getter和setter从长远来看往往会有回报,而且JIT编译器通常会将调用内联。)

你不应该担心内存管理。Java垃圾收集器将自动清除任何无法访问的实例。在大多数情况下,最好让GC处理这个问题


有一些替代方案(尽管不是很好,国际海事组织):

  • 使用通用映射类型,例如
    HashMap
    Properties
    将对象表示为名称-值对。从很多角度来看,这是一个错误的选择:性能差,没有明确的API(用于“对象”),代码更脆弱

  • 使用数组或列表类型。这更糟糕,因为您甚至没有字段的“名称”

  • 根本不具体化数据包,而是单独传递位。啊


    • 创建自己的类。这就是Java的方式

      除非该类是私有内部类,否则应该使用私有字段和getter/setter方法来定义它,以访问和更新它们。或者,如果不需要更新字段,则只需要setter方法。(从C/C++的角度来看,这听起来可能有点重,但getter和setter从长远来看往往会有回报,而且JIT编译器通常会将调用内联。)

      你不应该担心内存管理。Java垃圾收集器将自动清除任何无法访问的实例。在大多数情况下,最好让GC处理这个问题


      有一些替代方案(尽管不是很好,国际海事组织):

      • 使用通用映射类型,例如
        HashMap
        Properties
        将对象表示为名称-值对。从很多角度来看,这是一个错误的选择:性能差,没有明确的API(用于“对象”),代码更脆弱

      • 使用数组或列表类型。这更糟糕,因为您甚至没有字段的“名称”

      • 根本不具体化数据包,而是单独传递位。啊


        • 对我来说似乎确实有效。您将获取基本数据,并将其包装到一个类中,该类包含基本数据及其元数据信息。在Java中,您必须有一个类来存储代码,因为您想要封装所有这些东西,所以我认为这是一个很好的设计决策


          至于必须自己销毁类,通常不会。Java虚拟机有一个垃圾收集器,用于搜索和销毁未引用的对象。对于“托管”对象(完全位于程序内存“沙盒”中的对象),它通常非常有效。

          对我来说确实有效。您将获取基本数据,并将其包装到一个类中,该类包含基本数据及其元数据信息。在Java中,您必须有一个类来存储代码,因为您想要封装所有这些东西,所以我认为这是一个很好的设计决策


          至于必须自己销毁类,通常不会。Java虚拟机有一个垃圾收集器,用于搜索和销毁未引用的对象。对于“托管”对象(完全位于程序内存“沙盒”中的对象),它通常非常有效。

          您可以使用不可变类。IMHO这是对远程数据建模的更好方法。在您完成它们之后,如果您取消引用它们,垃圾收集器将为您释放内存


          有一份好工作

          您可以使用不可变类。IMHO这是对远程数据建模的更好方法。在您完成它们之后,如果您取消引用它们,垃圾收集器将为您释放内存

          有一份好工作

          那么你说的,那是朗