小编dmi*_*oso的帖子

为什么默认情况下不包括JCE Unlimited Strength?

建立

  • Java不提供对JCE无限强度策略文件的开箱即用支持
  • 这可以防止用户使用AES-256,这是广泛使用的加密标准的最大密钥大小
  • 不包括策略文件会导致许多问题:
  • 所有这些噪音导致破坏和/或错误的程序

  • 为什么这些没有被提供和像黑羊一样对待?

java encryption jce

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

为什么这个非阻塞IO调用失败?

背景

  • 我想使用Java的非阻塞SocketChannel发送大量(30MB,但将来可能会大得多)数据量
    • 为什么不阻塞?这样就不会阻止计算要发送的下一个字节等待网络
  • 当我在阻塞模式下使用SocketChannel时,传输完成没有问题
  • 当我设置的SocketChannel非阻塞,它完成显著快,但服务器没有收到所有数据
    • 但是,服务器确实收到了一些数据

  • 为什么我的大(30MB)文件传输在使用非阻塞Java NIO SocketChannel时失败,我该如何解决?

  • 我扼杀了程序并编写了示例,以便它可以一次性运行 javac *.java && java Main

    • 它为服务器创建了Future,为客户端创建了Future,让客户端向服务器发送30MB的随机字节,然后在主线程上阻塞,直到两个Futures完成(尽管服务器从未这样做)
  • 注意:这主要是关于TheClient.java

    • 如果意见之间的界限<CommentOutToMakeWork>,并</CommentOutToMakeWork>已被注释掉,在一个SocketChannel将被阻塞和传输将完成

Main.java:

import java.io.IOException;
import java.lang.InterruptedException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Main {
  public static void main(String[] args) throws ExecutionException, IOException, InterruptedException {
    final SocketAddress address = new InetSocketAddress("127.0.0.1", 12345);
    final int size              = 30 * 1000 * 1000;

    ExecutorService executor …
Run Code Online (Sandbox Code Playgroud)

java sockets nio serversocket

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

为什么在 Java 字节码中跳转而不是返回?

背景

我编译了以下方法:

public static final boolean equalTo(final int x, final int y) {
    return x == y;
}
Run Code Online (Sandbox Code Playgroud)

可以javap看到为其生成了以下字节码:

  public static final boolean equalTo(int, int);                                                                                                                                                                 
    descriptor: (II)Z                                                                                                                                                                                            
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL                                                                                                                                                            
    Code:                                                                                                                                                                                                        
      stack=2, locals=2, args_size=2                                                                                                                                                                             
         0: iload_0                                                                                                                                                                                              
         1: iload_1                                                                                                                                                                                              
         2: if_icmpne     9                                                                                                                                                                                      
         5: iconst_1                                                                                                                                                                                             
         6: goto          10                                                                                                                                                                                     
         9: iconst_0                                                                                                                                                                                             
        10: ireturn                                                                                                                                                                                              
      LineNumberTable:                                                                                                                                                                                           
        line 72: 0                                                                                                                                                                                               
      StackMapTable: number_of_entries = 2                                                                                                                                                                       
        frame_type = 9 /* same */                                                                                                                                                                                
        frame_type = 64 /* same_locals_1_stack_item */                                                                                                                                                           
          stack = [ int ]                                                    
Run Code Online (Sandbox Code Playgroud)

我编写了 …

java jvm bytecode java-bytecode-asm jvm-bytecode

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