小编Jak*_*ake的帖子

Smalltalk风格的消息与C风格的功能

我什么时候应该使用消息而不是C风格的函数?

c function objective-c messages

15
推荐指数
1
解决办法
4160
查看次数

使用Apache POI导入CSV数据

如何使用Apache POI高效导入CSV数据?如果我有一个非常大的CSV文件,我想存储在我的Excel电子表格中,那么我不认为逐个单元格是最好的导入方式......?

java csv excel apache-poi

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

访问包私有方法的外部类

假设我的包中有一个类,org.jake它有一个默认访问的方法(没有修饰符).然后该方法仅在包内可见.

然而,当有人收到我的框架的jar时,是什么阻止他们编写一个新的类,声明它的包org.jake,并使用我所谓的隐形方法?

换句话说,有什么办法可以防止这种情况发生吗?

java access-modifiers package-private

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

Groovy可以在POJO上动态添加或覆盖方法吗?

如果我有

// java
class MyClass {
   public String getName() {
     return "hector";
   }
}
Run Code Online (Sandbox Code Playgroud)

和这个类的一个实例.Groovy可以覆盖实例上的getName()方法吗?

java groovy

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

Java的.如何正确同步getter和setter?

如果我在一个对象中有几个可变属性,将由多个线程执行,我知道它们应该是同步的.

class Doggie {
    private String name;
    private int    age;

    public void setName(String name) { this.name = name; }
    public String getName() { return this.name; }
    public void setAge(int age) { this.age = age; }
    public int getAge() { return this.age; }

}
Run Code Online (Sandbox Code Playgroud)

问题:

  • 是不是return和Java一起分配原子操作?
  • 由于属性可能不一定是相互关联的,因此与同一锁同步并不总是有意义的.如何组织锁定结构?
  • 使用内部锁或私有对象锁模式更好吗?

java synchronization

10
推荐指数
2
解决办法
6602
查看次数

在释放对象和垃圾回收后,Java仍然使用系统内存

我正在运行JVM 1.5.0(Mac OS X Default),我在Activity Monitor中监视我的Java程序.我有以下内容:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Date;

public class MemoryTest {

public static void memoryUsage() {
 System.out.println(
     Runtime.getRuntime().totalMemory() - 
     Runtime.getRuntime().freeMemory()
 );
}

public static void main( String[] args ) throws IOException {

    /* create a list */
    ArrayList<Date> list = new ArrayList<Date>();

    /* fill it with lots of data */
    for ( int i = 0; i < 5000000; i++ ) {
        list.add( new Date() );
    } // systems shows ~164 …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection memory-leaks memory-management

9
推荐指数
2
解决办法
9787
查看次数

绘制到多图窗口中的特定图?

如果我创建一个多绘图窗口par(mfrow=...),是否可以将数据发送到特定的绘图(即"左下角的那个")或者绘图总是必然是连续的?是否有一个R的包来做这样的事情?

对于那些感兴趣的人来说,出现这个问题的原因是R是一个单线程应用程序,并不适合实时可视化.我有多个实时数据流从外部源进入R,异步生成数据(因此数据流并不总是以相同的顺序).这导致R在每次更新时都围绕数据可视化图的顺序翻转.

plot r

9
推荐指数
1
解决办法
6628
查看次数

iPhone开发:有哪些数据结构?

这是一个非常新手的问题,但iPhone API是否提供了任何数据结构(即链表,哈希映射等)?

iphone cocoa objective-c data-structures

8
推荐指数
2
解决办法
9712
查看次数

算法:有趣的差异算法

这出现在一个真实世界的情况,我想我会分享它,因为它可能会导致一些有趣的解决方案.本质上,算法需要区分两个列表,但是让我给出一个更严格的问题定义.

数学公式

假设你有两个列表,L并且R每一个都含有一些潜在字母元素S.而且,这些列表具有它们按顺序出现的共同元素的属性:也就是说,if L[i] = R[i*]L[j] = R[j*],然后i< jthen i*< j*.列表根本不需要任何共同元素,并且一个或两个可以是空的.[ 澄清:你可以假设没有重复的元素.]

问题是产生一种列表,这可以被看作是有序对新列表的"差异"的(x,y)地方x,距离Ly距离R,具有以下特性:

  1. 如果x出现在两个列表中,则会(x,x)显示在结果中.
  2. 如果x出现在L但未出现R,则会(x,NULL)出现在结果中.
  3. 如果y出现在R但未出现L,则会(NULL,y)出现在结果中.

最后

  • 结果列表与每个输入列表具有"相同"的排序:粗略地说,它与上面的每个列表分别具有相同的排序属性(参见示例).

例子

L = (d)
R = (a,b,c)
Result = ((NULL,d), (a,NULL), (b,NULL), (c,NULL))

L = (a,b,c,d,e)  
R …
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm diff list

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

抽象属性是否违反Liskov替换原则?

假设我有一个抽象类,如:

public abstract class Pet {
    private final String name;
    public Pet(String name) { 
        this.name = name 
    };

    public abstract boolean getsSpecialTreatment();
}

public final class Dog extends Pet {
    @Override public boolean getsSpecialTreatment() { return true; }
}

public final class Cat extends Pet {
    @Override public boolean getsSpecialTreatment() { return false; }
}
Run Code Online (Sandbox Code Playgroud)

我的程序将Pet根据是否设置特殊处理标志来区别对待s.我的问题是,这是否违反Liskov替代原则,该原则指出:

[...]在计算机程序中如果S是T的子类型,那么T类型的对象可以用S类型的对象替换而不改变该程序的任何所需属性(正确性,执行的任务)等).

java oop liskov-substitution-principle

8
推荐指数
2
解决办法
1030
查看次数