小编Dav*_*vid的帖子

REST最佳实践:您应该在POST和PUT调用时返回实体吗?

为了尊重REST原则的最佳实践,最好是在POST/PUT上返回创建/更新的实体吗?或者使用Location标头返回一个空的HTTP主体?

更确切地说,当POST创建资源时,我们应该返回:

  1. 状态201 +位置标题+(HTTP正文中创建的实体)?
  2. 或状态201 +位置标题+(空体)?

当资源由PUT更新时,我们应该返回:

  1. 状态200 +(HTTP正文中更新的实体)?
  2. 或状态204(空体)?

rest web-services crud principles

18
推荐指数
1
解决办法
6562
查看次数

如何在Java中重用一个线程?

我是一个控制台数独求解器,其主要目标是原始速度.

我现在有一个ManagerThread,它启动WorkerThreads来计算每个单元格的neibhbors.因此,现在为每个单元启动一个WorkerThread.如何重新使用已完成其工作的现有线程?

线程池模式似乎是解决方案,但我不明白如何防止线程在其工作完成后死亡.

ps:我不希望这个特定任务获得太多性能,只是想在将多线程应用到更复杂的代码部分之前尝试多线程的工作原理.

谢谢

java performance multithreading sudoku threadpool

13
推荐指数
1
解决办法
2782
查看次数

HDFS如何附加有效

假设一个使用默认块大小(128 MB),并且有一个文件使用130 MB; 所以使用一个完整大小的块和一个2 MB的块.然后需要将20 MB附加到文件中(总共应该是150 MB).怎么了?

HDFS实际上是否将最后一个块的大小从2MB调整为22MB?或者创建一个新块?

如何附加到HDFS中的文件处理conccurency?有数据存储的风险吗?

HDFS是否创建第三个块,其中包含20 + 2 MB,并删除2MB的块.如果是的话,这是如何同时工作的?

size hadoop append block hdfs

10
推荐指数
1
解决办法
6922
查看次数

应用关闭后恢复Android后备堆栈

在多个会话之间管理/恢复应用程序堆栈的最佳做法是什么?

工作流程的例子:

  1. 活动A开始(堆栈:A)
  2. 活动B开始(堆栈:AB)
  3. 活动C开始(堆栈:ABC)
  4. ...
  5. 用户使用不同的应用程序(比如GMail应用程序)一段时间
  6. ...
  7. 用户返回我的应用程序,但后端堆栈已被Android清除.

在第7步,我想恢复活动C,如果用户按下后退按钮2次,它将返回活动B,然后返回活动A.

[编辑]添加详细信息.

在上面的第7步之后,Android中默认情况发生的是:

  1. 活动A已启动(堆栈:空,并添加了C)

我希望用户感觉他仍在使用相同的会话:

  1. 活动C恢复(堆栈:ABC)
  2. 用户按下后退按钮,活动B恢复(堆栈:AB)
  3. 用户按下后退按钮,活动A恢复(堆栈:A)

在避免内存泄漏的同时,解决这种情况的好方法是什么?

[第二次编辑]我一直在为所有活动使用commong类UIController制作一个解决方法,并使用LauncherActivity将逻辑委托给UIController.

因为我只需要在ActivityC启动时重建后台堆栈,这个解决方案似乎工作正常:

public class UIController
{
    private boolean _launched = false;

    static private final UIController __instance = new UIController();
    static public UIController getInstance() { return __instance; }

    // Enforces the Singleton Pattern by preventing external access to constructor
    private UIController() { }

    public void onActivityCreated(Activity activity) {
        if (!_launched)
        {
            if ( shouldRebuildStack() )
            {
                // Rebuild Activity stack

                // …
Run Code Online (Sandbox Code Playgroud)

java stack android back android-activity

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

Android的Application :: onDestroy()是否相同?

嗨我正在使用Application :: onCreate来放置我的应用程序的初始化代码,但是当等待一段时间并启动其他应用程序时,我注意到Application类的实例再次被创建...

当Android正在关闭我的Application实例时如何全局检测?

android exit ondestroy

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

HBase是否使用主索引?

HBase如何执行查找并检索记录?例如,RDBMS的B树在HBase中的等效项是什么?

[编辑]

我了解HBase如何解析-ROOT-和.META。表格以找出哪个区域保存数据。但是如何执行本地查找?

为了更好地说明,这是一个示例:

  1. 我正在使用键77开始搜索(获取或扫描)以进行记录。
  2. HBase客户端认为密钥包含在RegionServer X持有的50-100区域中。
  3. HBase客户端与RegionServer X联系以获取数据。

RegionServer X如何找出记录77的位置?

RegionServer是否使用某种查找表(例如RDBMS的B树)作为区域的键?还是需要读取StoreFiles的所有内容(记录从50到77)?

indexing hbase lookup-tables database-scan

6
推荐指数
1
解决办法
3408
查看次数

在PlayFramework 2/Ebean ORM中使用@OneToOne,其中子级和父级共享相同的主键

有两种型号:

车型/ User.java

@Entity
@Table(name="users")
public class User extends Model
{
    @Id
    public int user_id;
    public String firstName;
    public String lastName;

    @OneToOne
    @PrimaryKeyJoinColumn
    public UserProfile profile;

    public static Finder<Integer,User> find = new Finder<Integer,User>( Integer.class, User.class );
}
Run Code Online (Sandbox Code Playgroud)

车型/ UserProfile.java

@Entity
@Table(name="user_profiles")
public class UserProfile extends Model
{
    @Id
    public int user_id;
    public String bio;

    @OneToOne(mappedBy = "user_id")
    public User user;

    public static Finder<Integer,UserProfile> find = new Finder<Integer,UserProfile>( Integer.class, UserProfile.class );
}
Run Code Online (Sandbox Code Playgroud)

一些数据:

INSERT INTO users VALUES(1,"Joe","Bloh");
INSERT INTO users VALUES(2,"Maria","Luis"); …
Run Code Online (Sandbox Code Playgroud)

orm jpa one-to-one playframework ebean

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