小编Abh*_*hri的帖子

Object类如何成为超类的子类?

事实1:

Java不支持多重继承.

事实2:

Object是所有其他类的超类

如果我有一个类Parent和一个Child继承该类的类Parent:

class Parent {

}

class Child extends Parent {

}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果Java不支持多重继承,那么类将如何Child继承Object该类?

这三者之间的关系是如何定义的?

选项1:

在此输入图像描述

选项2:

在此输入图像描述

java oop inheritance multiple-inheritance

13
推荐指数
4
解决办法
1380
查看次数

如何更改 unordered_map 中的键?

我需要使用平均支持恒定时间查找的数据结构。我认为使用 astd::unordered_map是一个很好的方法。我的数据是数字的“集合”。

|115|190|380|265|
Run Code Online (Sandbox Code Playgroud)

这些数字不必按特定顺序排列。我需要O(1)时间来确定这个数据结构中是否存在给定的数字。我有使用 a 的想法std::unordered_map,它实际上是一个哈希表(我说得对吗?)。所以数字将是关键,然后我将只有虚拟值。

所以基本上我首先需要确定数据结构中是否存在匹配给定数字的键,然后我根据该条件运行一些算法。独立于该条件,我还想更新一个特定的键。假设190,我想添加20它,所以现在关键是210。现在数据结构看起来像这样:

|115|210|380|265|
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是因为我有一个遍历二叉搜索树的递归算法。每个节点都有一个int value, 和两个指向左右节点的指针。当到达叶节点时,我需要在“哈希表”数据结构中创建一个新字段,其中包含current_node->value. 然后当我在递归中返回树时,我需要将每个节点的值依次添加到存储在键中的先前总和上。以及为什么我的数据结构(我建议应该是一个std::unordered_map) 有多个数字字段,因为它们中的每一个都代表从树的叶节点到中间某个节点的唯一路径。我检查从叶子到给定节点的路径上所有节点值的总和是否等于该节点的值。所以基本上每个键都添加了节点的当前值,存储该路径上所有节点的总和。我需要扫描该数据结构以确定是否有任何字段或键等于当前节点的值。另外我想在接近恒定的时间内将新值插入到数据结构中。这是用于竞争性编程,我会犹豫使用std::vector因为查找一个元素并插入一个元素需要线性时间,我认为。那会搞砸我的时间复杂度。也许我应该使用除 a 之外的其他数据结构std::unordered_map

c++ algorithm unordered-map

5
推荐指数
1
解决办法
3656
查看次数

为什么不能创建类型参数的实例?

在Java中,创建type参数实例是非法的,因此以下代码将不起作用:

class Gen<T> {
    T ob;
    Gen() {
        ob = new T(); // Illegal!!!
    }
}
Run Code Online (Sandbox Code Playgroud)

这背后的原因是:

T在运行时不存在,那么编译器将如何知道要创建的对象类型.

但我无法理解的是,使用erasure以下代码将转换为:

class Gen {
    Object ob;
    Gen() {
        ob = new Object(); // Perfectly Fine!!!
    }
}
Run Code Online (Sandbox Code Playgroud)

因为:

编译Java代码时,将删除(擦除)所有泛型类型信息.这意味着用它们的绑定类型替换类型参数,即Object如果没有指定显式绑定.

那么为什么实例化type参数是非法的呢?

java generics

4
推荐指数
1
解决办法
79
查看次数

Error in Hibernate simple example Beginner level

In order to learn hibernate, I write two examples for practising. However, both of them have same error as following:

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: javax/transaction/SystemException Exception in thread "main" java.lang.ExceptionInInitializerError Caused by: java.lang.NoClassDefFoundError: javax/transaction/SystemException at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.jboss.logging.Logger.getMessageLogger(Logger.java:2248) at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214) at org.hibernate.cfg.Configuration.(Configuration.java:184) at com.example.ManageEmployee.main(ManageEmployee.java:17)

基本上,我首先编写POJO,并使用eclipse生成hbm.xml.之后,我编写了管理数据库的主要功能.我试了两次,但遇到了同样的问题.

有人可以给我建议解决这个问题吗?在此之前,使用JDBC构建项目,但这太复杂了.所以我需要学习hibernate.谢谢.

补充(此hibernate示例项目中的详细信息):

  1. 我的Eclipse项目名称:HibernateExa
  2. hibernate.cfg.xml:

    <session-factory>
    
        <!-- hibernate dialect -->
    
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">hibernateTest</property>
    
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatetest;</property>
        <property name="hibernate.connection.username">hibernater</property>
        <property name="hibernate.default_schema">hibernatetest</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    
        <!-- Automatic schema creation(begin) -->
        <property name="hibernate.hbm2ddl.auto">create</property> …
    Run Code Online (Sandbox Code Playgroud)

java hibernate

3
推荐指数
1
解决办法
3万
查看次数