草庐IT

行为不当

全部标签

java - Java中如何理解一个行为会使用静态绑定(bind)还是动态绑定(bind)?

我在底层理解什么是静态(编译时)和动态(运行时)绑定(bind)。我在某种程度上理解为什么知道这一点很重要(例如,静态解析泛型这一事实有助于解释您可以做什么和不能做什么等)。我不明白的是为什么选择是这样或那样的——例如,Java对重载方法使用静态绑定(bind),对重载方法使用动态绑定(bind)。这是为什么?它是一种设计选择,对于了解Java深层功能的人来说是显而易见且不可避免的事情,还是需要学习(而不是理解)的事情? 最佳答案 问题是,在重写的情况下,编译器如何知道在编译期间调用哪个方法。你必须明白这一点,Listlist=li

java - JVM 在内存不足错误期间的行为?列表 s = new ArrayList<String>();

try{for(;;){s.add("Pradeep");}}finally{System.out.println("InFinally");}在tryblock中jvm内存不足,那么jvm在没有内存的情况下如何执行finallyblock?输出:InFinallyExceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspace 最佳答案 大概System.out.println调用比s.add("Pradeep")调用需要更少的内存。例如,如果s是一个ArrayList

java - 双原始类型数据的意外行为

我想了解Javadouble类型如何将其值存储在Java的内存中。当我运行以下代码时,我得到了意外的输出:publicstaticvoidmain(String[]args){floata=1.5f;floatb=0.5f;doublec=1.5;doubled=0.5;floata1=1.4f;floatb1=0.5f;doublec1=1.4;doubled1=0.5;System.out.println("a-bis"+(a-b));System.out.println("c-dis"+(c-d));System.out.println("a1-b1is"+(a1-b1));Sy

java - 奇怪的 Groovy/Java 字符串比较行为

考虑以下脚本:defa=newHashSet()defstr1="str1"defstr2="str2"defb="$str1-$str2"defc="str1-str2"println"b:$b"println"c:$c"println"b.equals(c):"+(b.equals(c))println"b==c:"+(b==c)println"b.compareTo(c):"+(b.compareTo(c))a.add(b)println"a.contains(c):"+a.contains(c)当使用Groovy1.8和JDK1.6.0_14运行时有以下输出:b:str1-st

java - JSP 比较运算符行为

我想比较中的两种不同类型JSP的标记。基本上剩下一个是Number总是但正确的一个是字符串,如果该字符串可以解析为数字,我不会收到任何错误,但如果无法将字符串解析为Number我收到javax.el.ELException:CannotconvertNooftypeclassjava.lang.Stringtoclassjava.lang.Long.实际上:${1==""}//worksfine${1=="4"}//worksfine${1=="Yes"}//triggerstheException.但即使是第3次比较在以前版本的JSP中也能正常工作,但现在它会导致异常。具有==的行为

java - 有没有一种简单的方法可以在获得焦点时更改 Java/Swing 控件的行为?

对于我使用过的大多数GUI,当包含文本的控件获得焦点时,控件的全部内容都会被选中。这意味着如果您刚开始输入,就会完全替换之前的内容。示例:您有一个初始化为零的旋转控件。您切换到它并键入“1”控件中的值现在是1。使用Swing,这不会发生。控件中的文本未被选中,克拉出现在现有文本的一端或另一端。继续上面的例子:对于SwingJSpinner,当您使用Tab键切换到旋转控件时,克拉位于左侧。您键入“1”,控件中的值现在为10。这让我(和我的用户)难以为继,我想改变它。更重要的是,我想全局更改它,以便新行为适用于JTextField、JPasswordField、JFormattedText

java - JPA + Hibernate + EHCache,意外行为

我正在尝试将EHCache实现到我的工作原型(prototype)中,其中我有一个javax.persistence.Entity代表我的数据库中的一个表(MySQL、mysql-connector-java-5.1.20。jar),以XML格式提供给消费者。我面临的问题是Hibernate似乎仍在从数据库中检索数据,即使EHCache将查询结果存储在内存中。我正在使用EHCachemonitor查看内存中的项目计数,并在缓存过期之前直接在数据库上更改数据,以了解是否实际使用了缓存数据。我一直在寻找这个问题的复制但没有成功,所以也许我遗漏了一些东西(我刚刚进入Java世界)。我的文件p

java - 如果常量接口(interface)反模式是一种犯罪行为,那么 Swing 为什么要这样做呢?

我正在制作一个swing应用程序,并意识到我有几个类需要访问同一组常量。我无法让自己宣布其中一个是它们的主要持有者并将它们全部放在那里并让其他人引用它;我想,嘿,我会让它们都从某个共同的地方继承,但Java不做多重继承,但我可以在事物上放置无限接口(interface)。所以我想到了将它们全部转储到一个界面中(这是真的,我没有做任何研究就自然而然地想到了)。后来才知道这是异端。“事实上,它有一个名字:常量接口(interface)反模式”-asdiscussedhere(以及替代解决方案(我选择采用))。在我查看JDialog和JFrame的源代码之前,我对此一直很好,它们是这样读的:

Unity | 渡鸦避难所-6 | 有限状态机控制角色行为逻辑

1有限状态机简介有限状态机(英语:finite-statemachine,缩写:FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型在游戏开发中应用有限状态机,能够将复杂的行为逻辑分解为一组简单的状态和转换规则,每个状态都可以独立地处理其逻辑,使代码更加结构化和组织化。同时可以方便的添加新的状态和转换规则,以适应游戏的需求。而且避免了在每帧中检查所有可能的行为,只需要处理当前状态的逻辑Unity中的AnimatorController使用状态机来管理各种动画状态和它们之间的过渡。但角色处于不同的状态时,除了播放对应的动画外,也会执行相关的逻辑,使用状态机来控

Java TreeMap 自定义比较器奇怪的行为

我正在尝试创建一个带有排序键的Map,先按字母顺序排序,最后按数字排序。为此,我使用了带有自定义Comparator的TreeMap:publicstaticComparatorALPHA_THEN_NUMERIC_COMPARATOR=newComparator(){@Overridepublicintcompare(Stringfirst,Stringsecond){if(firstLetterIsDigit(first)){return1;}elseif(firstLetterIsDigit(second)){return-1;}returnfirst.compareTo(sec