小编Osc*_*mez的帖子

Java try/catch性能,是否建议将try子句中的内容保持在最低限度?

考虑到你有这样的代码:

doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing the same kind of exceptions.
Run Code Online (Sandbox Code Playgroud)

现在我知道,实际上在构造异常时会出现性能损失,特别是展开堆栈.我还阅读了几篇文章,指出在输入try/catch块时会有轻微的性能损失,但这些文章似乎都没有结论.

我的问题是,是否建议将try catch中的行保持最小?,即只在try子句中包含可以实际抛出正在捕获的异常的行.try子句中的代码运行速度较慢或导致性能下降吗?

但考虑到这一点,更重要的是最佳实践/更易读的解决方案:

try {
    doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing …
Run Code Online (Sandbox Code Playgroud)

java performance readability try-catch

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

Cocos2d将背景图像添加到图层?

我刚读完了一些cocos2d文档,据我所知,要在图层中添加背景图像,你必须做以下事情:

Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];
Run Code Online (Sandbox Code Playgroud)

尽管我的测试结果是你可以直接将精灵添加到场景中,如下所示:

@implementation IntroScene
- (id) init {
self = [super init];
if (self != nil) {
    Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
    [bg setPosition:ccp(240, 160)];
    [self addChild:bg z:0];
    [self addChild:[MenuLayer node] z:1];
}
return self;
Run Code Online (Sandbox Code Playgroud)

}

这两个选项之间的区别是什么,以及为图层设置背景的更好方法是什么?任何帮助将不胜感激.

iphone layer cocos2d-iphone scene

25
推荐指数
2
解决办法
3万
查看次数

如何验证委托是否响应选择器?

我知道我需要写:

 [delegate respondsToSelector:@selector(myMethod:)]
Run Code Online (Sandbox Code Playgroud)

但是编译器抱怨respontsToSelector不是协议中的一个方法,这是正确的,但是我看到很多示例代码都使用了这个,你是怎么做到的?

iphone delegates selector

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

哪个更好:让Java进行自动装箱或使用valueOf()

我只是想知道让java autobox说一个整数有什么区别:

Integer myInteger = 3; // This will call Integer.valueOf()
Run Code Online (Sandbox Code Playgroud)

或者你的代码是

Integer myInteger = Integer.valueOf(3);
Run Code Online (Sandbox Code Playgroud)

这有什么微优化吗?我知道第二个更明确,但它也更不必要打字,除此之外有什么区别吗?

java performance autoboxing

18
推荐指数
2
解决办法
6084
查看次数

在实例方法中写入静态变量,为什么这是一个不好的做法?

我在这里用eclipse中的这个findbugs警告有点困惑.

public class MyClass {
    public static String myString;
}


public class AnotherClass {
   public void doSomething() {
       MyClass.myString = "something";
   }
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个findbugs警告"从实例方法写入静态字段",但这并没有给我一个警告:

public class MyClass {
    public static String myString;
}


public class AnotherClass {
   public void doSomething() {
       doAnotherThing();
   }
   public static doAnotherThing() {
       MyClass.myString = "something";
   }
}
Run Code Online (Sandbox Code Playgroud)

这有什么不同?,为什么从实例方法写入静态变量是一种不好的做法?我认为它与同步有关,但我仍然不清楚.

我知道这看起来变量应该是final,但我从属性文件加载值.

java methods static instance

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

Google + iPhone API登录并分享,无需离开应用

我最近在我的应用程序中集成了Google + API,这是一件轻而易举的事,我唯一的问题是,所有内容都要求您离开应用程序然后返回(它使用URL方案).这不是我想要的行为,有没有办法直接调用他们的服务,并像LinkedIn API一样做任何我想要的响应?

我真的想避免在safari和我的app之间来回走动.任何建议/文件表示赞赏.

谢谢,

奥斯卡

iphone google-plus

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

如何用CGPath绘制多边形?

我一直在阅读文档但是我并不是立即清楚如何使用CGPath绘制多边形.我需要做的就是在这样的事情周围绘制CGPath:

__
\  \ 
 \  \
  \__\
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一个如何做到这一点的片段?

另外我假设CGPathContainsPoint将帮助我确定一个点是否在这样的路径中?或者路径是否必须是一个实体图

另外我怎么能移动cgpath?这就像在cgrect中更改像原点一样容易吗?

谢谢.

-Oscar

iphone core-graphics polygon draw cgpath

13
推荐指数
4
解决办法
2万
查看次数

Java为参数分配新值,这被认为是一种不好的做法吗?

我在这里已经阅读了这个问题:为方法参数赋值是否有问题?.但是,我不清楚是否做了类似的事情:

public void myMethod(Object obj) {
    doSomething(obj);
    obj = getNewObj();
}
Run Code Online (Sandbox Code Playgroud)

要么:

public void anotherMethod(Object obj) {
     obj = doSomething(obj):
}
Run Code Online (Sandbox Code Playgroud)

这基本上只是为了避免声明一个新的局部变量,这值得吗?,这被视为一种不好的做法吗?

java parameters variable-assignment

11
推荐指数
2
解决办法
9634
查看次数

Java List toArray(T [] a)实现

我只是在查看List接口中定义的方法:

以正确的顺序返回包含此列表中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型.如果列表适合指定的数组,则返回其中.否则,将使用指定数组的运行时类型和此列表的大小分配新数组.如果列表适合指定的数组,并且空间足够(即,数组的元素多于列表),则紧跟集合结尾的数组中的元素将设置为null.仅当调用者知道列表不包含任何null元素时,这在确定列表长度时很有用.

<T> T[] toArray(T[] a);
Run Code Online (Sandbox Code Playgroud)

而我只是想知道为什么它以这种方式实现,基本上如果你传递一个长度为<listTeize()的数组,它只会创建一个新的并返回它.因此,在方法参数中创建新的Array对象是没用的.

另外,如果你使用列表的大小传递一个足够长的数组,如果返回与对象相同的对象 - 返回它真的没有意义,因为它是同一个对象但是为了清晰起见.

问题是我认为这会促使代码效率稍低,在我看来,Array应该只是接收类并只返回带有内容的新数组.

有没有理由说它没有这样编码?

java generics list toarray

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

Objective C iPhone何时将对象引用设置为nil

我已经用目标C和Cocoa框架开发了很长一段时间了.然而,我仍然不是绝对清楚的,我什么时候应该将对象引用设置为nil.我知道建议在释放具有委托的对象之前这样做,并且您还应该在viewDidUnload方法中对保留的子视图执行此操作.但究竟何时应该这样做,为什么?它究竟完成了什么?先感谢您.

-Oscar

iphone null release object objective-c

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