小编bsi*_*nau的帖子

为什么钻石是死亡而不是死亡的三角形

我已经看过很多例子来说明多重继承的危险性.

该示例通常类似于B类,C扩展A类,D类扩展B和C.

B和C都覆盖了A的方法,例如equals();

然后调用D.equals(); 它不知道应该调用其父项中的哪一个

前提是在D中不覆盖equals()

从我所看到的,这个例子中的A类不是多余的吗?如果我们从这个层次结构中删除A并且只看B和C,如果B和C都有名为equals()的方法,那么当D扩展B和C时,它仍然会有同样的问题,所以它不是真的死亡三角?

我不确定我所假设的是否会导致其他语言的编译时错误.

希望有人能为我澄清一下.

inheritance design-patterns multiple-inheritance

9
推荐指数
1
解决办法
1132
查看次数

最终引用的优化如何在java中工作?

我一直试图弄清楚Java优化的所有内容,并发现了一些有趣的东西.

第一种情况:原始类型编译时优化

public class Clazz {
    public static void main(String args[]) {
        final int i = 300;
        new Clazz() {
            void foo() {
                System.out.println(i);
            }
        }.foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

编译后(我jd-gui-0.3.5.windows用来反编译二进制文件)看起来像:

public class Clazz {
    public static void main(String[] args) {
        int i = 300;
        new Clazz() {
            void foo() {
                System.out.println(300);
            }
        }.foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

不出所料,不是吗?i在编译之后被替换为它的值(内联优化).因此,我希望在用它的包装器替换原始类型之后看到类似的东西,但......

第二种情况:非原始类型的编译时优化

public class Clazz {
    public static void main(String args[]) {
        final Integer i = 300; // replaced int with Integer …
Run Code Online (Sandbox Code Playgroud)

java optimization compilation

8
推荐指数
1
解决办法
189
查看次数

Servlet流媒体mp4 for chrome中的html5视频

我试图从一个Java servlet流式播放电影(基于浏览器的MP4或OGV)在HTML5网页中使用.在这里做了一些研究之后,我发现我需要支持范围.在大多数示例中,都有对http://balusc.blogspot.be/2009/02/fileservlet-supporting-resume-and.html的引用.这似乎是工作,因为它应该对IE和除外抛出一些插座写错误的Firefox,但电影中的这2个浏览器播放.

然而,在Chrome中,电影开始很好,但大多数时候它只是在mp4时变成空白,或者只是在播放一段时间后ogv冻结.我没有收到任何错误.

我正在使用Balusc的源代码作为我的servlet.我添加的唯一内容是根据请求的文件确定子文件夹的逻辑,但在添加我自己的东西之前,这已经发生了.

将非常感谢帮助,因为它有时会让我发疯,有时可以工作,有时也没有任何明确的理由.

谢谢,安迪

java servlets video-streaming html5-video

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

性能问题:"java.text.MessageFormat.format"vs"StringBuilder"

我想知道比较MessageFormatStringBuilder上课.假设一个例子我有一个字符串.对于性能明智的哪一个是快速的: java.text.MessageFormat.formatStringBuilder("Test ").append("Hello ")

String txt = java.text.MessageFormat.format("Test {0}"," Hello") 
String txt1=   new StringBuilder("Test ").append("Hello ")
Run Code Online (Sandbox Code Playgroud)

我只是想知道在最佳实践或性能明智的情况下使用哪一个

java performance-testing

7
推荐指数
2
解决办法
5567
查看次数

字体扩展名不适用于JasperReports

我想在我的网络应用程序中添加Tahoma字体到jasper报告.我使用字体扩展机制.

抛出此异常:net.sf.jasperreports.engine.util.JRFontNotFoundException:字体'TahomaFont'不可用于JVM.有关更多详细信息,请参阅Javadoc.

这是我的font.xml文件:

<fontFamiles>
  <fontFamily name="TahomaFont">
    <normal>export/fonts/BTahoma.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
  </fontFamily>
<fontFamiles>
Run Code Online (Sandbox Code Playgroud)

这是我的jasperreports.properties文件:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.TahomaFont=export/fonts/fonts.xml
Run Code Online (Sandbox Code Playgroud)

我也把Tahoma.ttf字体文件放在我的类路径中.以下是jasper报告中的样式标记:

<style fontName="TahomaFont" name="tahoma"/>
Run Code Online (Sandbox Code Playgroud)

请让我知道我哪里出错了.提前致谢.

java fonts jasper-reports

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

Java HashMap竞争条件

我试图找出这段代码中是否存在任何竞争条件.如果密钥不是'Thread.currentThread'那么我会认为是的.但由于线程本身是关键,如何才能有竞争条件?没有其他线程可以在HashMap中更新相同的密钥!

public class SessionTracker {

     static private final Map<Thread,Session>  threadSessionMap = new HashMap<Thread,Session>();

     static public Session get() {
         return threadSessionMap.get(Thread.currentThread());
     }

     static public void set(Session s) {
         threadSessionMap.put(Thread.currentThread(),s);
     }

     static public void reset() {
         threadSessionMap.remove(Thread.currentThread());
     }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization race-condition

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

将JSF inputText与支持bean的字段链接而不显示其值

我有这样的支持bean:

@ManagedBean
@SessionScoped
public class TestBean {

    private String testString;

    public String getTestString() {
        return testString;
    }

    public void setTestString(String testString) {
        this.testString = testString;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的xhtml页面也非常简单:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"    
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >

    <h:head></h:head>

    <h:body>

        <h:form>
            <h:inputText value="#{testBean.testString}"/>
            <h:commandButton action="#{testController.testAction}"/>
        </h:form>

    </h:body>

 </html>
Run Code Online (Sandbox Code Playgroud)

我想要的一切 - 渲染我的h:inputText元素没有价值(空).
我是JSF的新手,所以,你能帮助我吗?
最诚挚的问候!

UPD!
它是简化的代码,我testString在其他地方使用并且testString有价值,我想隐藏它!我想保持这个价值.

java jsf-2

6
推荐指数
1
解决办法
7451
查看次数

带有图像和文本的Android选择器

我有一个按钮,提供了这样的颜色,图像和文本:

android:background="@color/green"
android:drawableLeft="@drawable/custom_routes_start_button_icon"
android:text="@string/custom_route_start"
Run Code Online (Sandbox Code Playgroud)

这是未选中的状态,希望选中的状态是这样的:

android:background="@color/red"
android:drawableLeft="@drawable/custom_routes_stop_button_icon"
android:text="@string/custom_route_stop"
Run Code Online (Sandbox Code Playgroud)

就我所知,不可能在选择器中为文本或drawableLeft(仅可绘制)提供一个项目。有人知道实现此目标的好方法吗?也许另一个te选择器也可以引用的xml文件?

java android button imagebutton android-xml

6
推荐指数
2
解决办法
4092
查看次数

Tomcat:startup.bat丢失了

在许多关于tomcat的材料中我看到了我看到作者使用内部批处理脚本来启动和停止tomcat.

我没有看到关于写这个脚本的信息.我认为这个脚本是由tomcat提供的.

我使用exe文件在我的Windows 7上安装我的tomcat 7.在tomcat目录中我搜索startup.bat.这个文件丢失了.

你能帮助我吗?

java windows tomcat batch-file

6
推荐指数
2
解决办法
1万
查看次数

为什么JS中的true =='true'语句返回false?

问题在标题中.我刚尝试在Chrome控制台中运行下一个语句并且对我来说很奇怪(对我来说)结果:

true == 'true' // returns false
'true' == true // returns false
Run Code Online (Sandbox Code Playgroud)

为什么会这样?为什么不在那里进行类型转换,但在下一个声明中有效?

if ('true') true // returns true
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
1
解决办法
960
查看次数