这个部门出了什么问题?

这是代码: class testsum { public static void main(String arg[]) { double sum=0; double fraction; fraction=-1/9; System.out.println(“fraction: “+fraction); fraction=-1; fraction=fraction/9; System.out.println(“fraction: “+fraction); } } 输出为0 ,然后为-0.11111111 为什么第一个输出0而不是-0.11111111111 ?

Yacc相当于Java

我正在使用Java编写一个编译器设计项目。 完成词法分析(使用jflex),我想知道哪种类似yacc的工具最适合(最有效,最容易使用等)进行语法分析以及原因。

如何使用Swing刷新Windows任务栏?

我正在开发一个Swing应用程序,我需要刷新Windows任务栏。 我不能使用frame.requestFocus()因为我不想从任何其他应用程序窃取焦点。

示例定向图和拓扑排序代码

任何人都知道我在哪里可以获得有向图的示例实现和用于在有向图上执行拓扑排序的示例代码? (最好是Java)

为什么Java没有看到来自另一个线程的更新值?

请查看此代码(摘自Effective Java book) import java.util.concurrent.TimeUnit; public class Main { private static boolean stopReq; public static void main(String[] args) throws InterruptedException { Thread bgw = new Thread(new Runnable() { public void run(){ int i = 0; while(!stopReq){ i++;} } }); bgw.start(); TimeUnit.SECONDS.sleep(1); stopReq = true; } } 为什么bgw线程陷入无限循环? 它stopReq在到达循环时缓存了自己的stopReq副本? 所以它永远不会看到来自其他线程的更新值? 我理解这个问题的解决方案是同步或volatile变量,但我很好奇为什么这个当前的实现不起作用。 谢谢

计算整数数组中的重复元素

我有一个整数数组crr_array ,我想计算重复出现的元素。 首先,我读取数组的大小并使用从控制台读取的数字对其进行初始化。 在数组new_array ,我存储了重复的元素。 数组times存储元素的连续出现次数。 然后,我尝试搜索重复序列并以特定格式打印它们。 但是,它不起作用。 // Get integer array size Scanner input = new Scanner(System.in); System.out.println(“Enter array size: “); int size = input.nextInt(); int[] crr_array = new int[size]; int[] new_array= new int[size]; int[] times = new int[size]; // Read integers from the console System.out.println(“Enter array elements: “); for (int i = 0; […]

跨平台方式改变java进程优先级

我需要在另一个Java应用程序的独立JVM中调用.jar文件,并且它非常耗费CPU,因此它应该以后台优先级运行,以免影响系统的其余部分。 有没有跨平台的方法来做到这一点?

一个添加和完成PHP源代码文档的工具

我有几个完成的,较旧的PHP项目,包含很多我想用javadoc / phpDocumentor样式记录的包含。 虽然手动处理每个文件并被迫与文档一起进行代码审查将是最好的事情,但我只是出于时间限制,对工具感兴趣,以帮助我尽可能地自动完成任务。 我正在考虑的工具理想情况下具有以下function: 解析PHP项目树并告诉我哪里有未记录的文件,类和函数/方法(即元素缺少相应的docblock注释) 提供一种方法,通过创建空结构轻松添加缺少的docblocks,理想情况下,在编辑器中打开文件(内部或外部我不在乎),这样我就可以放入描述中。 可选的: 自动识别参数类型,返回值等。 但这并不是真的需要。 有问题的语言是PHP,虽然我可以想象一个C / Java工具可能能够在经过一些调整后处理PHP文件。 感谢您的宝贵意见!

如何使用ThreadPoolExecutor和自定义任务实现PriorityBlockingQueue

我经常搜索,但找不到解决问题的方法。 我有自己的类BaseTask ,它使用ThreadPoolExecutor来处理任务。 如果我不想要优先级(即使用LinkedBlockingQueue ),这可以正常工作,但是当我尝试使用PriorityBlockingQueue我得到ClassCastException因为ThreadPoolExecutor将我的Tasks包装到FutureTask对象中。 这显然是可以的,因为FutureTask没有实现Comparable ,但我将如何继续解决优先级问题? 我已经读过你可以在ThreadPoolExecutor覆盖newTaskFor ,但我似乎根本找不到这个方法……? 我们欢迎所有的建议! 一些代码可以帮助: 在我的BaseTask课程中,我有 private static final BlockingQueue sWorkQueue = new PriorityBlockingQueue(); private static final ThreadFactory sThreadFactory = new ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); public Thread newThread(Runnable r) { return new Thread(r, “AsyncTask #” + mCount.getAndIncrement()); } }; private static final BaseThreadPoolExecutor sExecutor […]

Java的异步HTTP客户端

作为Java世界中的一个相对新手,我发现很多事情令人沮丧地完成,在许多其他框架中相对微不足道。 一个主要的例子是异步http请求的简单解决方案。 看起来似乎并不存在,最好的方法是什么? 使用像httpclient这样的阻塞类型lib或者内置的java http东西来创建我自己的线程,或者我应该使用更新的非阻塞io java东西 – 对于应该简单的东西来说似乎特别复杂。 我正在寻找的是从开发人员的角度来看易于使用的东西 – 类似于AS3中的URLLoader – 您只需创建一个URLRequest – 附加一堆事件处理程序来处理完成,错误,进度等,并调用一种解雇它的方法。 如果您不熟悉AS3中的URLLoader,它非常简单,看起来像这样: private void getURL(String url) { URLLoader loader = new URLLoader(); loader.addEventListener(Event.Complete, completeHandler); loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); URLRequest request = new URLRequest(url); // fire it off – this is asynchronous so we handle // completion with event handlers loader.load(request); } […]