小编柯鴻儀*_*柯鴻儀的帖子

Lucene索引:解释了存储和索引模式

我想我仍然不理解lucene索引选项.

以下选项是

  • Store.Yes
  • Store.No

  • Index.Tokenized
  • Index.Un_Tokenized
  • Index.No
  • Index.No_Norms

我真的不明白商店的选择.你为什么不想存放你的田地?
令牌化是分割内容并删除干扰词/分隔符(如"和","或"等)
我不知道规范可能是什么.如何存储标记化值?
如果我在"fieldName"中存储值"my string"会发生什么?为什么不查询

fieldName:my string
Run Code Online (Sandbox Code Playgroud)

什么回报?

lucene

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

MessageDigest.isEqual函数在Java中使用

我有两个问题,我不明白.请帮我看看.谢谢.

  1. Java中的MessageDigest.isEqual函数有什么用?

  2. 解释为什么在Java SE 6 Update 17之前的某些版本中,它容易受到定时攻击.

java timing-attack

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

在球衣中使用流输出响应时,在刷新一些输出后如何处理异常?

最近我使用 jersey 中的接口“StreamingOutput”来流式传输我的 json 格式响应,例如:

@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(){
    StreamingOutput stream = new StreamingOutput() {

        @Override
        public void write(OutputStream os) throws IOException,
        WebApplicationException {
            Writer writer = new BufferedWriter(new OutputStreamWriter(os));
                for( ...  loop ...) {
                    //response something immediatly
                    writer.write(somthing ...);
                writer.flush();
            }
        }
    };

    return Response.ok(stream).build();
}   
Run Code Online (Sandbox Code Playgroud)

但是,如果在我“//立即响应某些内容”给客户端后,抛出一些异常怎么办?

除了在正常响应的一部分后等待特殊错误消息之外,还有什么方法可以处理这种情况?

java rest jersey

5
推荐指数
1
解决办法
1889
查看次数

处理对象字段的访问控制的设计模式或方法

我们知道,在许多OO程序语言中,我们可以使用一些访问修饰符来指定对象内部字段的访问范围.

例如,在java中,我们可以使用public,protected或private来指定字段的访问范围,对于此对象的所有调用者.

但我的问题是,我想为不同的呼叫者指定被叫方的不同访问权限.

最重要的一点是:调用者类可以由其他程序员编写,但在我的主程序编写完成后,他们无法通过自己的实现来更改权限.

例如,假设国际象棋游戏程序中至少有3个实体,1个棋盘和2个玩家,我想让黑方球员对棋盘上的所有国际象棋有"读取"权限,但只是"移动"访问权限访问所有黑棋的权利(并且只有在轮到它时才"向右移动"),反之亦然.

我已经有了一些想法如下,但似乎这些想法太复杂而且不理想.

所以有什么好的方法,设计模式或其他什么来处理这个问题?

非常感谢

// ================================================ ===============

我的想法:

1.使用访问密钥类.

  • 创建一个类"访问密钥".
  • 使用"游戏主机"类将"关键"实例分配给不同的玩家.
  • 棋盘类实例具有键右映射表.
  • 每当玩家对棋盘执行"读取"或"移动"动作时,它必须将其键实例作为参数提供给方法,如果权限被拒绝,则抛出异常.

2.使用中介控制器类

  • 棋盘内有一个内部类"板控制器".
  • 2个子类的板控制器,1个可以移动白棋,另一个用于黑棋.

(虽然我可以在这个子类中使用一些if-else来决定是否可以移动一些国际象棋,但我想让其他程序员编写播放器类,并让他们编写他们的AI,所以使用权限判断流程通过这些子类不能直接在播放器类中使用作为我的问题的方法.)

  • 将子板控制器实例分配给不同的播放器.

3.低级方法(丑陋且不理想)

在"移动"或"读取"板类的方法中,检查线程的callstack,知道是调用者属于类"播放器",以及它是哪一侧(黑色或白色).

// ================================================ ===================

任何更好的主意?谢谢

java acl design-patterns access-rights

5
推荐指数
1
解决办法
1412
查看次数

文件复制可以绑定CPU吗?

据我所知,CPU通常比I / O设备(如HDD,网络,RAM等)快,因此在复制文件时,瓶颈通常是I / O绑定的(对吗?)。

如果在某种情况下I / O设备比CPU更快(例如在虚拟机中),是否可以使CPU忙于移动数据(例如从缓冲区到内核空间,从内核空间到用户空间)?然后它会成为CPU绑定的吗?

linux io operating-system kernel linux-kernel

3
推荐指数
1
解决办法
697
查看次数

如何创建 PKCS12 密钥库?

我想用 Java 生成 PKCS12 密钥库。我知道我可以将 keytool 与类似的东西一起使用:

keytool -genkeypair -alias senderKeyPair -keyalg RSA -keysize 2048 \
  -dname "CN=Baeldung" -validity 365 -storetype PKCS12 \
  -keystore sender_keystore.p12 -storepass changeit
Run Code Online (Sandbox Code Playgroud)

但我需要在 Java 内部做这些事情。我已经搜索过是否可能,但没有找到任何相关信息。任何想法?

我非常感谢您提供的任何帮助。

java keystore keytool pkcs#12

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

在Scala中,为什么def在重新定义def表达式中使用的变量后不生效

据我所知,在scala中,def用于使表达式被懒惰地评估.

例如:

var num=123;
def  i=10000+num;
print(i); 
//result 1: ouput 10123

num=456
print(i) 
//result 2: output 10456

var num=789
print(i)
//result 3: output 10456
Run Code Online (Sandbox Code Playgroud)

我的问题是,之后var num=789为什么def i=10000+num没有被评估为10789.

我想在重新声明变量num后var num=789,scala重新创建符号表中具有相同符号num的其他项.

我对吗?为什么rsult 3输出10456而不是10789.

谢谢.

scala lazy-evaluation read-eval-print-loop

0
推荐指数
1
解决办法
83
查看次数