小编Rae*_*ald的帖子

openjdk-6-jre,openjdk-6-jre-headless,openjdk-6-jre-lib之间的区别

我无法理解Java JRE的一些基础知识.

我需要在嵌入式系统中运行Java代码,为此我需要在Linux内核中安装最小的Java Runtime Environment,也就是说,执行Java二进制文件所需的最小包.我认为只有JVM才能做到这一点(JRE包是必要的,我在这里错了吗?)

问题是,在查看Debian存储库时,我不太了解这些包之间的差异openjdk-6-jre,openjdk-6-jre-headless并且openjdk-6-jre-lib.Java程序只能与前者一起运行吗?或者,他们三个需要吗?

这是一个问题,因为它们之间的大小(MB)存在很大差异.

java openjdk

55
推荐指数
2
解决办法
4万
查看次数

在其元素更改优先级时更新Java PriorityQueue

我正在尝试使用a PriorityQueue来命令对象Comparator.

这可以很容易地实现,但是对象类变量(比较器计算优先级)可能在初始插入后发生变化.大多数人都提出了删除对象,更新值并再次重新插入的简单解决方案,因为这是优先级队列的比较器付诸行动的时候.

除了在PriorityQueue周围创建一个包装类之外,还有更好的方法吗?

java priority-queue

54
推荐指数
5
解决办法
5万
查看次数

当有现有类时,接口如何取代多重继承的需要

首先......对不起这篇文章.我知道stackoverflow上有很多帖子正在讨论多重继承.但我已经知道Java不支持多重继承,我知道使用接口应该是另一种选择.但我不明白并看到我的困境:

我必须对用Java编写的非常大且复杂的工具进行更改.在此工具中,有一个数据结构,它由许多不同的类对象构建,并具有链接的成员层次结构.无论如何...

  • 我有一个Tagged具有多个方法的类,并根据对象的类返回一个对象标记.它需要成员和静态变量.
  • 第二个类叫做XMLElement允许链接对象,最后生成一个XML文件.我还需要成员和静态变量.
  • 最后,我有这么多的数据类几乎都应该扩展XMLElement,其中一些Tagged.

好的,这不会起作用,因为它只能扩展一个类.我经常读到Java的所有内容都没问题,也没有必要进行多重继承.我相信,但我不知道接口应如何取代继承.

  1. 将真正的实现放在所有数据类中是没有意义的,因为它每次都是相同的,但这对于接口来说是必要的(我认为).
  2. 我不知道如何将我的一个继承类更改为接口.我在这里有变量,他们必须完全在那里.

我真的不明白所以请有人解释我如何处理这个问题?

java inheritance interface multiple-inheritance

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

当使用==表示基元和盒装值时,自动装箱完成,或者取消装箱完成

以下代码编译(使用Java 8):

Integer i1 = 1000;
int i2 = 1000;
boolean compared = (i1 == i2);
Run Code Online (Sandbox Code Playgroud)

但是它做了什么?

取消框i1:

boolean compared = (i1.intvalue() == i2);
Run Code Online (Sandbox Code Playgroud)

或盒子i2:

boolean compared = (i1 == new Integer(i2));
Run Code Online (Sandbox Code Playgroud)

那么它是按比例比较两个Integer对象(通过引用)还是两个int变量?

请注意,对于某些数字,因为Integer类维护值之间的内部缓存中的基准比较将产生正确的结果-128127(见也TheLostMind注释).这就是我1000在我的例子中使用的原因以及为什么我特别询问拆箱/装箱而不是比较的结果.

java autoboxing

53
推荐指数
3
解决办法
8314
查看次数

为什么有状态集?一个无状态的Pod不能使用持久卷吗?

我是Kubernetes的新手,可能会被推测,所以请原谅我,如果我对术语的使用不太正确的话.我希望我的问题的意图是明确的.

我试图围绕有状态集合.它们的使用与使用持久卷的"无状态"Pod有何不同?也就是说,假设一个"正常"的Pod可能声称持久存储,我错过了哪些显而易见的东西需要这个新的构造(有序的启动/停止等)?

kubernetes kubernetes-statefulset

53
推荐指数
1
解决办法
7620
查看次数

从Jenkins的Maven POM获取项目版本

在处理POM之后,Jenkins构建是否有任何方法可以了解项目的Maven版本号?

我有一些项目,其中版本控制由Maven控制,在后期构建工作中,我们想创建一个Debian包并调用一些shell脚本.我需要的是Maven以前作为Jenkins环境变量可用的版本号,所以我可以将它传递给后期构建操作.

需要明确的是,我没有需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven将版本号传递给Jenkins!

maven jenkins

52
推荐指数
4
解决办法
6万
查看次数

在队列::推送后双重免费或损坏

#include <queue>
using namespace std;

class Test{
    int *myArray;

        public:
    Test(){
        myArray = new int[10];
    }

    ~Test(){
        delete[] myArray;
    }

};


int main(){
    queue<Test> q
    Test t;
    q.push(t);
}
Run Code Online (Sandbox Code Playgroud)

运行此操作后,我收到运行时错误"double free or corruption".如果我摆脱析构函数内容(delete),它工作正常.怎么了?

c++ runtime-error delete-operator

52
推荐指数
2
解决办法
10万
查看次数

如何使用固定数量的工作线程实现简单线程

我正在寻找实现以下内容的最简单,最直接的方法:

  • 主程序实例化工作线程以执行任务.
  • 只能n同时运行任务.
  • n到达,没有更多的工人开始,直到运行的线程数降回到低于n.

java concurrency multithreading

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

在构造函数中应该完成多少工作?

应该在构造函数中执行可能需要一些时间的操作,还是应该构造对象然后稍后进行初始化.

例如,当构造表示目录结构的对象时,应该在构造函数中完成对象及其子对象的填充.显然,目录可以包含目录,而目录又可以包含目录等.

这个优雅的解决方案是什么?

oop constructor

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

具有非虚析构函数的派生类

在某种情况下,派生类是否合法拥有非virtual析构函数?非virtual析构函数表示不应将类用作基类.具有virtual派生类的非析构函数是否会像Java final修饰符的弱形式一样?

我特别感兴趣的是派生类的基类有一个virtual析构函数.

c++

49
推荐指数
4
解决办法
6万
查看次数