我已经看过很多例子来说明多重继承的危险性.
该示例通常类似于B类,C扩展A类,D类扩展B和C.
B和C都覆盖了A的方法,例如equals();
然后调用D.equals(); 它不知道应该调用其父项中的哪一个
前提是在D中不覆盖equals()
从我所看到的,这个例子中的A类不是多余的吗?如果我们从这个层次结构中删除A并且只看B和C,如果B和C都有名为equals()的方法,那么当D扩展B和C时,它仍然会有同样的问题,所以它不是真的死亡三角?
我不确定我所假设的是否会导致其他语言的编译时错误.
希望有人能为我澄清一下.
我一直试图弄清楚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 servlet流式播放电影(基于浏览器的MP4或OGV)在HTML5网页中使用.在这里做了一些研究之后,我发现我需要支持范围.在大多数示例中,都有对http://balusc.blogspot.be/2009/02/fileservlet-supporting-resume-and.html的引用.这似乎是工作,因为它应该对IE和除外抛出一些插座写错误的Firefox,但电影中的这2个浏览器播放.
然而,在Chrome中,电影开始很好,但大多数时候它只是在mp4时变成空白,或者只是在播放一段时间后ogv冻结.我没有收到任何错误.
我正在使用Balusc的源代码作为我的servlet.我添加的唯一内容是根据请求的文件确定子文件夹的逻辑,但在添加我自己的东西之前,这已经发生了.
将非常感谢帮助,因为它有时会让我发疯,有时可以工作,有时也没有任何明确的理由.
谢谢,安迪
我想知道比较MessageFormat或StringBuilder上课.假设一个例子我有一个字符串.对于性能明智的哪一个是快速的:
java.text.MessageFormat.format或 StringBuilder("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)
我只是想知道在最佳实践或性能明智的情况下使用哪一个
我想在我的网络应用程序中添加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)
请让我知道我哪里出错了.提前致谢.
我试图找出这段代码中是否存在任何竞争条件.如果密钥不是'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) 我有这样的支持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有价值,我想隐藏它!我想保持这个价值.
我有一个按钮,提供了这样的颜色,图像和文本:
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文件?
在许多关于tomcat的材料中我看到了我看到作者使用内部批处理脚本来启动和停止tomcat.
我没有看到关于写这个脚本的信息.我认为这个脚本是由tomcat提供的.
我使用exe文件在我的Windows 7上安装我的tomcat 7.在tomcat目录中我搜索startup.bat.这个文件丢失了.
你能帮助我吗?
问题在标题中.我刚尝试在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) java ×8
android ×1
android-xml ×1
batch-file ×1
button ×1
compilation ×1
fonts ×1
html5-video ×1
imagebutton ×1
inheritance ×1
javascript ×1
jsf-2 ×1
optimization ×1
servlets ×1
tomcat ×1
windows ×1