小编use*_*421的帖子

Java大小数或双倍

我有一个数字,格式为(13,2)13位和2位小数.我需要对它进行一些计算(比如乘法,除法).我打算BigDecimal用于计算.我应该使用double或float进行计算,因为BigDecimal比较慢一点?

java floating-point type-conversion bigdecimal

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

Java 7不支持应该支持的密码

我需要通过JAX-WS中的客户端连接到外部服务器.客户端在Wildfly 8上运行.使用Java 8连接正常.但我在Java 7中连接到服务器时遇到问题(我试过u45,67,79).服务器端安全性的属性是https://www.ssllabs.com/ssltest/analyze.html?d=app.bundesnetzagentur.de

部分"密码套件"是四个密码.源代码http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html#footnote1-1不应该在Java 7中支持GCM密码,源 代码与Java版本的扩展表 http相关联://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#footnote1-1

好的,但两个密码CBC应该由上面相同的源代码推出.在这些来源中注意到,这些密码需要TLSv1.2或更高版本.但我使用这个版本.是的,我将UnlimitedJCEPolicyJDK7中的两个文件放入我的Java的/ lib/security文件夹中.但是在日志中我看到了一些关于"忽略不受支持的密码套件"的内容.我的连接以hanshake失败告终.这是缩短的日志:

//SOME ADDINGS TRUSTED CERT

12:42:00,426 INFO  [stdout] (default task-27) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

12:42:00,426 INFO  [stdout] (default task-27) Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

//SOME ANOTHER  Ignoring unsupported cipher suite messages

12:42:00,526 INFO  [stdout] (default task-27) Allow unsafe renegotiation: false
    12:42:00,527 INFO  [stdout] (default task-27) Allow legacy hello messages: true
    12:42:00,527 INFO  [stdout] (default task-27) Is initial handshake: true
    12:42:00,527 INFO …
Run Code Online (Sandbox Code Playgroud)

java security encryption java-7 tls1.2

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

FIONBIO 的 Winsocks 定义的实际数字是多少?

我正在使用不支持系统包含文件的解释性脚本语言。

我需要许多 Winsock #defines 的数字。对于大多数人来说,我只能搜索文件并得到如下答案:

#define AF_INET6  23
Run Code Online (Sandbox Code Playgroud)

但对于 FIONBIO 我看到

#define FIONBIO   _IOW('f', 126, u_long)
Run Code Online (Sandbox Code Playgroud)

查找_IOW节目

#define _IOW(x,y,t)      (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
Run Code Online (Sandbox Code Playgroud)

我为此找到了一些片段:

#define IOCPARM_MASK      0x7f
#define IOC_IN    0x80000000
Run Code Online (Sandbox Code Playgroud)

但是当我试图弄清楚结果是什么时,我在转弯的某个地方迷路了。

谁能告诉我 FIONBIO 应该是多少号?我确实在某处找到了一个帖子,其中随意提到在某些 UNIX 版本中有:

#define FIONBIO         := 0x5421
Run Code Online (Sandbox Code Playgroud)

我似乎无法让 windows Winsock 定义变成那个数字,而且我不确定它是否应该在任何情况下都相同。

有人可以告诉我答案吗?或者我必须下载一些windows开发环境并编写一个C程序来打印出值?:)

c sockets winsock

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

TCP over UDP VPN是否可靠?

如果我将通过UDP VPN使用它,应用程序中的TCP是否可靠?例如,我有一个应用程序的VPN服务器在10.8.0.1:8080上侦听TCP,我将从主机10.8.0.2到10.8.0.1:8080从TCP连接.它会可靠吗?

|----------|   udp tunnel         |----------|
|  Server  |----------------------|  Client  |
| 10.8.0.1==========tcp=============10.8.0.2 |
|          |----------------------|          |
|----------|                      |----------|
Run Code Online (Sandbox Code Playgroud)

vpn udp tcp openvpn

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

在调用析构函数时,是否可以将指向类实例的指针设置为nullptr?

我正在尝试为类项目创建链接列表.我的节点类有一个指向链接节点的指针和另一个指向专用书类的指针.

class Node{
private:
    Book *data;
    Node *linkedLink;
public:
    Node(Book *inputedData);
    Book* getBook();
    Node* getLinked();
    void changeLinked(Node *newLink);
    Node& operator=( const Node& rhs );

    ~Node(); //deconstructor
};
Run Code Online (Sandbox Code Playgroud)

我的教授提供了一个我们无法改变的驱动因素.在这个驱动程序中,他有以下代码:

// (bookList is an instance of my LinkedList class)
// (and getFirst() returns my LinkedList's head node)

while (bookList.getFirst() != nullptr)
{
    Node * t = partsList.pop_front();
    delete t;
}
Run Code Online (Sandbox Code Playgroud)

以下是我的节点类析构函数:

Node::~Node(){
    delete data; //this deletes the book class that data points to.
    delete linkedLink;
}
Run Code Online (Sandbox Code Playgroud)

问题是,我需要的变量(T)指向节点类的实例设置为nullptr它做释放后*data …

c++ pointers memory-management linked-list nullptr

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

RMI 对象已导出

我在尝试让 RMI 工作时遇到问题。我的注册表正在运行,当我尝试启动服务器时,一个窗口会弹出不到一秒钟,然后关闭。为什么会发生这种情况。

服务器包---MyFileServer.java

package Server;

import java.io.File;
import java.io.FileInputStream;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

/**
 * Created by alexi on 05/12/2016.
 */
public class MyFileServer extends UnicastRemoteObject implements ServerInit {



    protected  MyFileServer() throws RemoteException {
        super();
    }

    @Override
    public void importFiles(Notify n, String name) throws RemoteException {
        String videoPath = "src" + File.separator + "Videos" + File.separator + name;
        try {

            File video = new File(videoPath);
            FileInputStream in=new FileInputStream(video);
            byte [] mydata=new byte[(int)video.length()+1];
            int …
Run Code Online (Sandbox Code Playgroud)

java rmi

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

ModuleNotFoundError:没有名为'pythonds'的模块

我试图简单地添加这些代码的输入,但由于包pythonds我不断收到此错误.

ModuleNotFoundError:没有名为'pythonds'的模块.

这个错误让我无法完成,我不确定如何通过这个错误.请提前帮助并表示感谢.

from pythonds.basic.stack import Stack

def infixToPostfix(infixexpr):
    prec = {}
    prec["^"] = 4
    prec["%"] = 3
    prec["*"] = 3
    prec["/"] = 3
    prec["+"] = 2
    prec["-"] = 2
    prec["("] = 1
    opStack = Stack()
    postfixList = []
    tokenList = infixexpr.split()

    for token in tokenList:
        if token in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" or token in "0123456789":
            postfixList.append(token)
        elif token == '(':
            opStack.push(token)
        elif token == ')':
            topToken = opStack.pop()
            while topToken != '(':
                postfixList.append(topToken)
                topToken = opStack.pop()
        else:
            while (not …
Run Code Online (Sandbox Code Playgroud)

python

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

接口内的嵌套类是否隐式静态和最终?

接口内的所有变量都是公共静态和最终变量。

因此,如果我在接口内声明一个嵌套类,它也会变成静态和最终的吗?

Interface I
{
    class c
    {
        static void m(){ }
    }
}
Run Code Online (Sandbox Code Playgroud)

java nested interface

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

C++ 多次分配的成本有多大?

我想知道实用函数中内存分配过程的成本有多大。例如下面的实现有很大的区别吗?

string method_A (string inp) {
   auto        num_fillers = inp.length() - 4;
   string filler(num_fillers, '-');
   string res = filler + inp.substr(num_fillers);
   return res;
}

string method_B (string inp) {
  const int expect_len =4;
  auto        num_fillers = inp.length() - expect_len;
  string res;
  res.reserve(num_fillers + expect_len);
  res.assign(num_fillers, '-');
  res+= inp.substr(num_fillers);
  return res;
}
Run Code Online (Sandbox Code Playgroud)

使用 method_B 代替 method_A 有什么好处吗?各自的优点和缺点是什么?

分配一次内存并用“+=”操作填充字符串是否比method_A中的做法有更好的性能?

c++ string

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

带增量的 2 补码是否违反了 c++17 中的执行顺序规则,但不违反 c++14 中的执行规则?

这可能是“ 101”级别的问题,但有一些相关的痛苦,所以我会要求评论以保持自信。

我有一些遗留代码支持返回到及之前的这一行:

iTmp = ~iTmp++;
Run Code Online (Sandbox Code Playgroud)

在代码更改为之前,此方法 100% 有效。更改为后,它会计算出不同的值,但并非总是如此。这取决于该行在代码中的位置,是先执行 2 的补码还是先执行增量。

另外,如果您尝试强制使用括号,则会出现编译器错误:

iTmp = (~iTmp)++;

error C2105: '++' needs l-value
Run Code Online (Sandbox Code Playgroud)

这对我来说很有意义,因为 2 的补码结果不是中间变量,因此 ++ 没有任何可操作的内容。

我的研究告诉我

  1. 这是“”失败。
  2. 并不是这种情况下失败的主要原因。
  3. 二进制补码不是就地操作,因此它不会更改 iTmp,而是返回一个值。
  4. 遗留代码的工作靠运气 - 可能是由于编译器错误或错误总是强制执行运算符评估顺序。

我的评价正确吗?

对我来说,一个非常微妙的区别是前面的代码无效,但这一行可以:

if ( ++iTmp > 0)
Run Code Online (Sandbox Code Playgroud)

我没想到升级到会导致这个微妙的错误,但我不得不将代码更改为以下内容来解决问题:

iTmp = ~iTmp;
iTmp++;
Run Code Online (Sandbox Code Playgroud)

c++ order-of-execution c++14 c++17

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