草庐IT

final-class

全部标签

java - 为什么在JVM上执行时要去掉.class?

例子:我有一些源代码,FooBar.javajavacFooBar.java这给了我FooBar.class。为什么JVM命令行API使用FooBar而不是FooBar.class(在UNIX上工作FYI)? 最佳答案 那只是约定俗成!类使用其完全限定的类名加载。ClassLoader然后知道如何将类名映射到文件名(例如,通过附加“.class”)。 关于java-为什么在JVM上执行时要去掉.class?,我们在StackOverflow上找到一个类似的问题:

java - IntelliJ IDEA : Is there a way to list all interfaces implemented by a class and its parents?

我从事一个相对复杂的Java项目,其中类在Object之前通常有四到五个祖先。给定这样一个类,例如D在这样的层次结构中:Object>A>B>C>D,我想知道它有效实现的所有接口(interface)。也就是说,我也有兴趣看到D实现,比如说,Serializable,即使它仅在类B的声明中声明,并且即使D实际上没有实现接口(interface)指定的任何方法(当然,如果谈论Serializable)。我试过的这些信息的一些潜在来源包括:在“结构”窗口中使用“按定义类型分组”——但这不会显示空接口(interface)(=没有方法的接口(interface)),并且“层次结构”窗口——但

Java : Hashcode of a Class A containing a Class B which contains A

我在我的类中实现哈希码函数时遇到问题。正如标题中所解释的,我有两个类:类A代表学校考试,因此它包含多个属性(即主题、标记和代表参加考试的学生的类实例)。如您所料,类(class)B代表学生。它有一些属性(即姓名、地址、年龄等)和一个包含多个A类实例的ArrayList(学生可以参加很多考试)。我的问题来了,我被要求在两个类中实现哈希码函数。我使用的哈希码是我学过的哈希码,它是将每个属性的哈希码相加,乘以一个整数,具体取决于它的类型(即字符串乘以31,整数乘以17,对象乘以13,等等)。但是如果我调用A类的hashcode,那么调用B类的hashcode,然后又回调A类的hashcode

java - 为什么 Tomcat 在取消部署时会抛出 'java.lang.IllegalStateException: Class invariant violation'?

我有一个网络应用程序(Tomcat6,log4j1.2.16),它以一个监听器开始。取消部署应用程序会引发以下异常:INFO(HqListener.java:28)-HqListenerexited!log4j:ERRORlog4jcalledafterunloading,seehttp://logging.apache.org/log4j/1.2/faq.html#unload.java.lang.IllegalStateException:Classinvariantviolationatorg.apache.log4j.LogManager.getLoggerRepository

返回 Class<T extends Somethng> 实例的 java 方法

我有这个代码:publicClassgetScrapper(){returnMyScrapper.class;}MyScrapper是一个实现Scrapper的类界面。为什么这不起作用?你在JDK7中遇到以下错误:error:incompatibletypesrequired:Classfound:ClasswhereTisatype-variable:TextendsScrapperdeclaredinmethodgetScrapper()附言老实说,我已经尝试搜索整整30-40分钟。更新:如果我将方法声明为publicClassgetScrapper(){有用。但我仍然不明白为什么

java - static final char[] 线程安全吗?

如果我有privatestaticfinalchar[]SOME_CHARS;那个线程安全吗?我的意思是,如果我有多个线程引用该数组中的字符(但不更改它们),会出现什么问题吗?例如privateclasssomeThreadextendsThread(){publicvoidrun(){for(inti=0;i换句话说,我是否需要将char[]放入某种支持线程的Java集合中? 最佳答案 如果你在初始化后不更改它们,应该没问题。(请注意,这依赖于它是一个staticfinal变量-初始化类的方式将确保所有线程都能正确看到初始化的数组

Java:错误定义的 finalize 方法会造成内存泄漏

在Java中,如果没有指向x的强引用并且x符合垃圾回收条件,垃圾回收将调用对象x的finalize方法。如果finalize方法永远不会终止,这会导致内存泄漏吗?publicclassX{protectedvoidfinalize(){while(true){}}} 最佳答案 是的,很容易测试publicclassX{protectedvoidfinalize(){while(true){}}publicstaticvoidmain(String[]args)throwsException{while(true){newX();}}

java - 线程 "main"java.lang.NoClassDefFoundError : Could not initialize class com. sun.jersey.core.header.MediaTypes 中的异常

我正在尝试运行Jersey客户端并面临这个问题。WS类:importjavax.ws.rs.GET;importjavax.ws.rs.Path;importjavax.ws.rs.Produces;importjavax.ws.rs.QueryParam;importjavax.ws.rs.core.MediaType;importjavax.ws.rs.core.Response;@Path("/hello")publicclassHelloWorldService{@GET@Path("/vip")@Produces(MediaType.APPLICATION_JSON)publ

java - java中static final transient的作用是什么?

在我正在处理的代码库中,几乎所有声明为staticfinalString的变量也都声明为transient。所以我有这样的字段:publicstaticfinaltransientStringVERSION="1.0";每当我发现这些transient关键字时,我很想删除它们,因为我认为它没有任何用处。在这种情况下,使用或不使用transient在行为上有什么区别吗? 最佳答案 static字段是隐式transient(当序列化一个static字段时,它的值无论如何都会丢失)。所以确实,不需要同时声明两者。

java - 如何使 Class.getMethod() 抛出 SecurityException

我有一个实用方法可以为特定字段查找对象的getter方法(使用反射):publicstaticMethodfindGetter(finalObjectobject,finalStringfieldName){if(object==null){thrownewNullPointerException("objectshouldnotbenull");}elseif(fieldName==null){thrownewNullPointerException("fieldNameshouldnotbenull");}StringgetterName=getMethodNameForField