我已经阅读了关于使用两个补码的二进制乘法的这篇文章.但对我来说不是很清楚.即使我很难理解维基文章.我想知道如何计算负数的乘法:
eg: -1 with -7 should give 7.
A 4-bit, 2's complement of -1 is : 1111
A 4-bit, 2's complement of -7 is : 1001
Run Code Online (Sandbox Code Playgroud)
计算乘法的一些逐步方法将是有帮助的.没有我遇到过关于分裂的文章.怎么解决这个问题?
据该评论后,hascode中null objects能throw NPE或值zero.这是特定于实现的.但相同的实现中,为什么
Objects.hashcode和hascode(instance)返回不同的值.对于前:
public class EqualsTesting {
public static void main(String[] args){
String p1 =null;
String p2 = null;
System.out.println(Objects.hashCode(p1));
System.out.println(p2.hashCode());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
Exception in thread "main" java.lang.NullPointerException
at BinaryTrees.EqualsTesting.main(EqualsTesting.java:14)
Run Code Online (Sandbox Code Playgroud)
如果是这样的话,这会不会影响到key look-up在HashMap那里null Key-value pairs是允许的.(它可能既hash要bucket 0或throw a NPE)
我已经阅读了python docsfor list和del运算符的工作方式,但我需要解释以下行为
在这种情况下,c并l指向同一个对象(列表),因此对一个进行更改会影响另一个,但删除一个不会删除该对象.那么这里发生了什么?这只是pointer列表对象丢失了吗?
>>> l = [1,2,3]
>>> c = l
>>> c.append(4)
>>> c
[1, 2, 3, 4]
>>> l
[1, 2, 3, 4]
>>> del c
>>> l
[1, 2, 3, 4]
>>> c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined
Run Code Online (Sandbox Code Playgroud)
>>> l
[1, 2, 3, 4]
>>> del l[::2]
>>> l
[2, 4]
Run Code Online (Sandbox Code Playgroud)
l[::2] …
我在设置classpathfor slf4jfor 时遇到问题compiling java files.我尝试了两种方式:1.提供classpath的command line
javac -cp /Users/page/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar src/main/java/com/scg/domain/*.java src/main/java/com/scg/util/*.java
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误:
src/main/java/com/scg/util/ListFactory.java:8: error: package org.slf4j does not exist
import org.slf4j.Logger;
^
src/main/java/com/scg/util/ListFactory.java:9: error: package org.slf4j does not exist
import org.slf4j.LoggerFactory;
...../long error message
Run Code Online (Sandbox Code Playgroud)
export将CLASSPATH我的env变量.export CLASSPATH=/Users/page/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar
当我尝试时,这也没有帮助并导致同样的错误
javac src/main/java/com/scg/domain/*.java src/main/java/com/scg/util/*.java
Run Code Online (Sandbox Code Playgroud)
我正在尝试将compile所有java文件分成两部分packages.但我需要slf4j在我的课程中. but somehow I am not able to get it work.
感谢
我有两个列表,并希望将它们合并到一个列表中tuples.我想这样做list comprehension,我可以使用它map.但很高兴知道这里的列表理解是如何工作的.代码在这里
>>> lst = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,10]
>>> tup = map(None,lst,lst2) # works fine
>>> tup
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
>>> l3 = [lst, lst2]
>>> l3
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]
>>> zip(*l3) # works fine
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
>>> [(i,j) for i in lst and for j in lst2] # does …Run Code Online (Sandbox Code Playgroud) Python程序通常简洁明了,通常需要其他编程语言(我知道)的一堆行可以在python中用一行或两行完成.我试图编写的一个这样的程序是从字符串中提取所有其他字母.我有这个工作代码,但想知道是否有其他简洁方法可行?
>>> s
'abcdefg'
>>> b = ""
>>> for i in range(len(s)):
... if (i%2)==0:
... b+=s[i]
...
>>> b
'aceg'
>>>
Run Code Online (Sandbox Code Playgroud) 我对签名感到困惑SwingUtilities.invokeLater.它需要一个Runnable对象.这个Runnable对象是否被移交给Event Dispatch Thread?为什么我不能直接调用createAndShowGUI的run方法EDT(如果可能的话)?
我已经阅读过有关EDT和invokeLater如何工作的文章,但我对Runnable传递的对象感到困惑.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
Run Code Online (Sandbox Code Playgroud)
如果我在电话SwingUtilities.invokeLater下面再次打电话会怎么样?
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
doSomethingOnTopOfGUI();
}
});
Run Code Online (Sandbox Code Playgroud) 我发现这个注释可以将StringBuffer对象作为Java中TreeSet中的键吗?
"在Java中使用地图有两种识别策略(或多或少).
散列:输入"Foo"被转换为尽可能最好的尝试,以生成唯一访问数组索引的数字.(纯粹主义者,请不要虐待我,我故意简化).此索引是存储值的位置."Foo"和"Bar"实际上可能生成相同的索引值,这意味着它们都将映射到相同的数组位置.显然这不起作用,所以这就是"equals()"方法的用武之地; 它用于消除歧义
比较:通过使用比较方法,您不需要这个额外的消歧步骤,因为比较首先不会产生这种碰撞."Foo"等于的唯一关键是"Foo".一个非常好的想法是,如果你可以将"equals()"定义为compareTo()== 0; 为了一致的缘故.不是要求."
我的问题如下:如果我的类实现了可比性,那么它是否意味着我不必重写equals和hashcode方法来将我的对象用作Hash集合中的键.例如
class Person implements Comparable<Person> {
int id;
String name;
public Person(int id, String name) {
this.id=id;
this.name=name;
}
public int compareTo(Person other) {
return this.id-other.id;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我可以在Hashable集合中使用我的Person对象吗?
我有这么多的术语感到困惑,例如,我的教练会谈word,byte addressing和memory location.
我的印象是,对于a 32-bit processor,它可以解决2^32 bits,这是4.29 X 10^9 bits (NOT BYTES).
我现在的想法是:
的memory是像array的buckets每一个的1 byte length.
当我们说byte addressing(我猜这是最常见的)时,每个char都是1 byte从第一个桶中检索出来的(例如).为了int下一个4 bytes被放在一起来little-endian ordering计算Integer价值.
所以每一个记忆,我认为它,8 bits或者1 byte,它可以放弃2^8 locations,这远远小于cpu可以解决的问题.
在我看来,有一些非常基本的误解,如果一些专家可以用简单的术语解释一个CS-专业的学生可以永远这样做.
我已阅读各种网页,包括这一项上的字,并在这里unit of address resolution给出8b的ARM,它增加了更多的我的困惑.
关于使用synchronizationin,我需要一些澄清multi-threaded environment.我在Class下面有一个小例子.但我实际上发现很难做出以下内容如何工作的测试用例; 我想要测试用例的原因是要了解如何synchronization处理这些不同的场景
如果一个thread电话SharedResource.staticMethod,将收购lock的class.意思了instance的SharedResource,说X,将不得不等待,直到它得到lock到exectute x.staticMethod.
会synchronization的this一个block,获取用于代码或整个该节的锁定object.即可以在另一个thread调用相同method的相同object; 但执行不属于的代码的其余部分synchronization block
如果以上观点属实,那么a dummy objectto lockon不会提供任何额外的好处.正确?
所以有不同的层次synchronziations.Class等级,Object等级和method等级block level.那么这意味着locks这些个人水平应该存在吗?如果我获得了一个锁定Object,另一个Thread无法调用任何methods上same object,但如果我获得了锁定method,另一个thread可以锁定另一个method …