Tag: 实现

Java:实现无符号128位整数

首先,我应该问: 有谁知道当前的实现128b UINT for Java? 我需要一些东西来保持自然的基数值。 即:一个巨大的柜台。 我知道BigIntegers,它们很慢且不可变。 128b UINT很有意义…… 我正在考虑使用一对原始long来实现一个OWORD。 溢出会抛出exception,而不是环绕。 我应该用什么样的源代码/博客来实现这个类的工作?

用Java构造二叉树

我正在构建一个二叉树。 如果这是一种正确的方法,请告诉我。 如果没有请告诉我如何? 我找不到构建一般二叉树的正确链接。 BST到处都是编码的。 3 / \ 1 4 / \ 2 5 这是我想要制作的二叉树。我应该能够完成所有的树遍历。简单的东西。 public class Binarytreenode { public Binarytreenode left; public Binarytreenode right; public int data; public Binarytreenode(int data) { this.data=data; } public void printNode() { System.out.println(data); } public static void main(String ar[]) { Binarytreenode root = new Binarytreenode(3); Binarytreenode n1 = new […]

如何在现代JVM实现中实现instanceof?

由于在其他线程中完成了基准测试(参见https://stackoverflow.com/a/397617/1408611 ),因此可以看出Java 6中的instanceof实际上非常快。 这是如何实现的? 我知道对于单inheritance,最快的想法是有一些嵌套的间隔编码,其中每个类维持一个[低,高]间隔,而instanceof只是一个区间包含测试,即2个整数比较。 但它是如何制作接口的(因为区间包含仅适用于单inheritance)? 如何处理类加载? 加载新的子类意味着必须调整很多间隔。

实现vs在Java中的generics中扩展

有人能告诉我第一个和第二个代码之间的区别是什么吗? MaxPQ代表优先级队列,它是可以相互比较的“密钥”对象的集合。 代码1: public class MaxPQ<Key extends Comparable>{ … } 代码2: public class MaxPQ<Key implements Comparable>{ … } 第二个代码没有编译,但是对于我来说,为什么在使用generics时我们需要扩展而不是实现接口是不直观的。

Web服务器的实现

我想用纯Java实现我自己的web服务器,web服务器应该只支持静态资源(即html,js,css,pics,movies等..) 你能推荐一篇关于如何实现这样的东西的教程或文章吗? 我应该使用几个进程或线程池,还是应该考虑像NodeJS这样的循环事件? 我知道有免费的网络服务器可以完全满足我的要求,但我喜欢这样做是为了我的自我。

JVM是否为每个对象创建一个互斥锁以实现’synchronized’关键字? 如果没有,怎么样?

随着C ++程序员越来越熟悉Java,我看到语言级别支持锁定任意对象而没有任何声明对象支持这种锁定,这有点奇怪。 为每个对象创建互斥锁似乎是一个自动选择的高成本。 除了内存使用,互斥体在某些平台上是OS有限的资源。 如果互斥锁不可用但你的性能特征明显不同,你可以旋转锁定,我希望这会损害可预测性。 在所有情况下,JVM是否足够智能以识别特定对象永远不会成为synchronized关键字的目标,从而避免创建互斥锁? 可以懒惰地创建互斥锁,但是这会引发一个自举需要互斥锁的自举问题,即使解决了这个问题,我也认为仍然会有一些开销用于跟踪是否已经创建了互斥锁。 所以我假设如果可以进行这样的优化,则必须在编译时或启动时完成。 在C ++中,由于编译模型这样的优化是不可能的(你不知道对象的锁是否会跨库边界使用),但是我对Java的编译和链接知道不够了解如果适用相同的限制。

实现Java Comparator

我正在尝试编写一个利用最小优先级队列的算法,所以我环顾谷歌并找到了PriorityQueue。 看来,为了使用它,我需要告诉它我希望它如何优先排序,并且这样做的方法是使用比较器(我想比较我的“Node1”的特定数据字段)对象)。 更多的谷歌搜索提出了创建一个新的比较器的想法,该比较器实现了比较器但覆盖了比较方法。 我正在尝试的是这个(以及它的其他变体): import java.util.Comparator; public class distComparator implements Comparator { @Override public int compare(Node1 x, Node1 y){ if(x.disty.dist){ return 1; } return 0; } } 编译器有几个理由抗议,其中一个原因是我没有超越比较器类(它说它是抽象的) 错误:distComparator不是抽象的,并且不会覆盖Comparator中的抽象方法compare(Object,Object) 我已将其切换为“比较(对象x,对象y)”,它负责处理该问题。 此时虽然编译器抱怨它无法在x或y中找到“dist”变量 – 这是有道理的,因为它们是我的Node1类的一部分,而不是Object类。 那怎么能起作用呢? 它显然应该有Object类型,但是如何将它引导到正确的变量?

Java中的implements和extends关键字有什么区别

Java中的以下关键字有什么区别: implements , extends ?

如何实现对java对象的引用?

指针是否仅用于实现java引用变量或它是如何实现的? 以下是Java语言规范中的行 4.3.1对象对象是类实例或数组。 引用值(通常只是引用)是指向这些对象的指针,以及一个特殊的空引用,它指的是没有对象。 这是否意味着它一直是指针?

Java中的“实现Runnable”与“扩展线程”

从我在Java中使用线程的时间开始,我发现了这两种编写线程的方法: 使用implements Runnable : public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a “new Thread(new MyRunnable()).start()” call 或者,使用extends Thread : public class MyThread extends Thread { public MyThread() { super(“MyThread”); } public void run() { //Code } } //Started with a “new MyThread().start()” call 这两个代码块有什么显着差异吗?