有人可以尽可能详细地解释以下类型之间的差异吗?
List
List<Object>
List<?>
Run Code Online (Sandbox Code Playgroud)
让我更具体一点.我什么时候想用
// 1
public void CanYouGiveMeAnAnswer(List l) { }
// 2
public void CanYouGiveMeAnAnswer(List<Object> l) { }
// 3
public void CanYouGiveMeAnAnswer(List<?> l) { }
Run Code Online (Sandbox Code Playgroud) 我是rsync的新手,我不明白我得到的输出,有人可以帮助我,
输出包含诸如的行,
<f.st...... somefile.txt
<f+++++++++ someOtherfile.zip
.d..t...... someDir/
Run Code Online (Sandbox Code Playgroud)
我不明白左边的选项是什么意思,我在谷歌找不到答案.谢谢.
当覆盖java.lang.Object的equals()函数时,javadocs建议,
通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等的对象必须具有相等的哈希代码.
hashCode()方法必须为每个对象返回一个唯一的整数(这在基于内存位置比较对象时很容易,只需返回对象的唯一整数地址)
应该如何覆盖hashCode()方法,以便它仅基于该对象的特性为每个对象返回一个唯一的整数?
public class People{
public String name;
public int age;
public int hashCode(){
// How to get a unique integer based on name and age?
}
}
/*******************************/
public class App{
public static void main( String args[] ){
People mike = new People();
People melissa = new People();
mike.name = "mike";
mike.age = 23;
melissa.name = "melissa";
melissa.age = 24;
System.out.println( mike.hasCode() ); // output?
System.out.println( melissa.hashCode(); // output?
}
}
Run Code Online (Sandbox Code Playgroud) 这个问题特别针对java语言.我知道为所有静态代码留出了一个静态的内存.
我的问题是这个静态内存是如何填充的?静态对象是在导入时还是在第一次引用时放入静态内存?此外,相同的垃圾收集规则是否适用于静态对象,因为它们适用于所有其他对象?
public class Example{
public static SomeObject someO = new SomeObject();
}
/********************************/
// Is the static object put into static memory at this point?
import somepackage.Example;
public class MainApp{
public static void main( Sting args[] ){
// Or is the static object put into memory at first reference?
Example.someO.someMethod();
// Do the same garbage collection rules apply to a
// static object as they do all others?
Example.someO = null;
System.gc();
}
}
Run Code Online (Sandbox Code Playgroud) 我目前在ActionScript 3.0中做了很多工作,我也喜欢用Java编程.JavaFX对我来说是完美的吗?JavaFX的一般感觉是什么,它会成为一个强大的力量,还是与Java Applets走同一条道路?我与之合作的设计师是否能够熟悉JavaFX,以及他们对ActionScript和JavaScript的熟悉程度?
actionscript3.0中的所有对象都继承自Object类,但actionscript3.0编译器似乎不够聪明,无法理解这一点.
看看下面的代码:
package{
public class TestOne{
public function TestOne(){
var t2: TestTwo = new TestTwo();
trace(t2.toString()); // COMPILE TIME ERROR
trace((t2 as Object).toString(); // [object TestTwo]
var t22 : * = new TestTwo();
trace(t22.toString()); // [object TestTwo]
trace((t22 as Object).toString(); // [object TestTwo]
}
}
}
class TestTwo{}
Run Code Online (Sandbox Code Playgroud)
t2.toString()给出了编译时错误,因为数据类型t2不包含toString().但是,t2确实包含toString(),因为它是一个对象,(t2 as Object).toString()显示.如果我们不给变量一个数据类型,比如t22,那么问题永远不会遇到.为什么actionscript3.0编译器不能重新认为t2既是TestTwo又是Object?
我最近写了一些javascript代码,根据一些XML,非常简单的东西填充了一个下拉列表.问题是我必须编写类似的代码才能在不同的页面上执行几乎相同的操作.
因为代码几乎相同,所以我将大多数函数命名为相同,认为它们永远不会包含在同一页面中.但是,由于两个javascript文件最终都包含在同一个HTML页面中,因此出现了命名冲突.
当我不得不返回并更改名称时,我只需将first_或second_添加到方法的名称中.这是一种痛苦,对我来说似乎并不优雅.我想知道是否有更好的方法来解决javascript中的名称冲突?
我一直在玩javascript数组,我遇到了,我觉得,有些不一致,我希望有人可以为我解释.
让我们从这开始:
var myArray = [1, 2, 3, 4, 5];
document.write("Length: " + myArray.length + "<br />");
for( var i in myArray){
document.write( "myArray[" + i + "] = " + myArray[i] + "<br />");
}
document.write(myArray.join(", ") + "<br /><br />");
Run Code Online (Sandbox Code Playgroud)
Length: 5 myArray[0] = 1 myArray[1] = 2 myArray[2] = 3 myArray[3] = 4 myArray[4] = 5 1, 2, 3, 4, 5
这段代码没有什么特别之处,但我知道javascript数组是一个对象,因此可能会向数组添加特性,这些特性添加到数组的方式似乎与我不一致.
在继续之前,让我注意如何在javascript中将字符串值转换为数字值.
非空字符串 - >字符串或NaN的数字值
空字符串 - > 0
因此,由于javascript数组是一个对象,以下是合法的:
myArray["someThing"] = "someThing";
myArray[""] = "Empty …
Run Code Online (Sandbox Code Playgroud) 由于actionscript 3.0基于ECMAscript,它与javascript有一些相似之处.我一直在玩的一个这样的相似之处是从函数创建对象.
在javascript中创建一个对象,
var student = new Student( 33 );
document.write( student.age );
function Student( age ){
this.age = age;
}
Run Code Online (Sandbox Code Playgroud)
在actionscript 3.0中,对象通常是通过类创建的,但可以通过构造函数在javascript中创建对象.
package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
var student = new Student( 33 );
trace( student.age );
}
}
}
function Student( age ) {
this.age = age;
}
Run Code Online (Sandbox Code Playgroud)
但是我用上面的代码得到了一个编译错误
Loading configuration file C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\flex-config.xml C:\Documents and Settings\mallen\Desktop\as3\Main.as(5): col: 23 Error: Incorrect number of arguments. Expected 0 var student = new …
任何使用actionscript 3.0编程的人都肯定注意到它缺乏对私有构造函数和抽象类的支持.有办法解决这些缺陷,比如从应该是抽象的方法中抛出错误,但是这些工作很烦人而且不是很优雅.(从应该是抽象的方法中抛出错误是运行时检查,而不是编译时,这可能导致很多挫折).
我知道actionscript 3.0遵循当前的ECMAscript标准,这就是它缺乏私有构造函数的原因,但是抽象类呢,它们不是在ECMAscript标准中吗?
我想更具体的问题是为什么ECMAscript标准不支持私有构造函数?这是未来可以期待的事情吗?
我一直想知道退出这个问题,任何见解都会非常感激.