草庐IT

时有发生

全部标签

java - 实例化要在 Quartz 调度程序中执行的作业时发生错误

packageorg.quartz;importorg.quartz.Scheduler;importorg.quartz.JobDetail;importorg.quartz.JobKey;importorg.quartz.Trigger;importorg.quartz.Job;importorg.quartz.JobExecutionContext;importorg.quartz.JobExecutionException;importorg.quartz.SchedulerException;importorg.quartz.impl.StdSchedulerFactory;

java - 当你在部署在 tomcat 中的 war 中有两次相同的类时会发生什么?

如果在tomcat中部署了两次相同的编译类,会发生什么情况?(我知道这不是一个好的做法等等,但幕后发生了什么?)是否有可能产生严重的副作用? 最佳答案 如果您有一个类在WEB-INF/classes中,另一个在jar中,则WEB-INF/classes中的类将具有优先权。如果两个类在一个jar中,那么其中一个将被采用而另一个被忽略。选择哪一个取决于类加载器的实现细节,并且可能因环境而异。因此在开发中可能会选择正确的类,而在生产中选择错误的类会导致难以调试的问题。解决这个问题的唯一方法是从WAR中删除所有重复的类,这样在任何地方都只会

java - 当违反 Swing 的线程策略时会发生什么?

在过去的几年里,我主要在Eclipse中进行UI开发,这在线程访问方面非常保守:任何尝试从UI线程外部更改UI小部件的属性(例如,颜色、文本)抛出异常。我现在正在查看Swing中的一个现有程序,它有一个带有大量自定义小部件的窗口。有一个单独的线程为这些小部件中的每一个运行一个变异函数,变异函数读取一些东西的值(例如,标签颜色和值)并写入一些(例如,更改背景颜色)。请注意,没有涉及自定义绘画或类似内容,只是对它包含的主要是JLabel的子小部件进行了一系列更改。目前,它从单独的线程运行,而不是从Swing事件线程运行。该线程遍历所有400个小部件并在每个小部件上调用mutator。更新似

java - 即时编译——什么时候在 Java 中实际发生?

最近我参加了一个关于Java效率的讨论。正如我所听到的,许多反对Java的论点是解释“非常耗时”,正因为如此,即使是简单的Java程序运行起来也比直接编译为机器代码的类似程序慢得多。对此的回答是,Java代码通常直接编译为机器代码,如果只有JVM计算,它会使程序比以标准方式解释时更快。我的问题是:JVM什么时候真正“决定”执行即时编译?使JIT比标准字节码解释更有效的标准是什么?我的意思是,编译本身需要一些时间,据我所知,这一切都应该在程序已经运行时发生? 最佳答案 这根据您的JVM及其设置而有很大差异。维基百科:Forexampl

java - 将 double (或 float )转换为整数时会发生什么?

我正在练习一些简单的2D游戏编程,并提出了一个理论,即在动画期间(图像位置的实际变化最好用float计算)。我有一种感觉,如果你用整数移动图像,动画就不会那么流畅。在Java中,您似乎无法使用float绘制图像来为图像指定位置。但是显然,当您最初声明您的x和y时,您可以将它们声明为Double或Float,并且当涉及到实际绘制图像时,您必须转换他们到整数。就像我发现HERE:/***Drawthisentitytothegraphicscontextprovided**@paramgThegraphicscontextonwhichtodraw*/publicvoiddraw(Grap

java - HTTPClient 4.x 连接重用没有发生

我尝试了以下Apachehttp客户端示例:http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java我将最大池大小设置为5并运行十个线程。运行此代码后,当我检查netstat时,我看到有10个TCP连接处于打开状态。我期待这些连接被重用。为什么是这样?我错过了什么吗?代码片段如下:publicclassClientMultiThreadedExecution{publicstatic

java - 这段 Java 代码片段到底发生了什么?

这个问题在这里已经有了答案:HowareAnonymousinnerclassesusedinJava?(18个答案)关闭9年前。代码如下:timer.schedule(newTimerTask(){publicvoidrun(){synchronized(this){try{//System.out.println("ITERATION=");pachubeCLI.update(78164);}catch(PachubeExceptione){//Ifanexceptionoccursitwillprinttheerrormessagefromthe//failedHTTPcomma

java - 丢失的字符串对象会发生什么

Line1:Stringx="Java";Line2:x.concat("Rules!");Line3:System.out.println("x="+x);输出是“x=Java”第1行:创建一个新的String对象,赋值“Java”,并引用x给它。第2行:VM创建第二个字符串对象,值为“JavaRules!”但没有提到它。第二个字符串对象立即丢失;你无法得到它。由于这些字符串对象是在堆中创建的,因此第二个对象将被垃圾收集。 最佳答案 Enosh,在java中字符串是不可变的,所以你应该赋值x=x.concat("Rules");第

java - 如果 ExecutorService 的队列已满会发生什么

我有一个高达TB的大文件,我的任务是逐行处理。每行需要5秒才能完成。为了提高性能,我将进程分派(dispatch)到这样的固定线程池ExecutorServiceexecutor=Executors.newFixedThreadPool(5);while((line=br.readLine())!=null){Runnableworker=newWorkerThread(line);executor.execute(worker);}我的问题是,如果我放置如此多的任务使执行程序的队列不堪重负,会发生什么情况。它会抛出StackOverflow吗? 最佳答案

java - JNA UnsatisfiedLinkError - 当我将 java.library.path 设置为虚假值时有效

在Linux上使用JNA4.0.0,我试图加载一个本地库(libmean.so),它位于lib子目录中(该库是只是一个计算两个数字的平均值的简单示例)。我运行以下代码(在Eclipse中),在运行配置中设置了-Djna.library.path=lib。importcom.sun.jna.Library;importcom.sun.jna.Native;publicclassMean{publicinterfaceMeanLibextendsLibrary{MeanLibINSTANCE=(MeanLib)Native.loadLibrary("mean",MeanLib.class)