小编dis*_*ame的帖子

令人困惑的代码,编译好.这段代码如何工作?

下面的代码编译并给出1输出,这对我来说有点困惑.我试过javap这个,但从那里我也想不出来.我已经检查了类似的帖子,但在这里找不到类似的问题.

看看代码:

int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

这是字节码

Compiled from "Test.java"
public class Test {
  public Test();
  public static void main(java.lang.String[]);
}
Run Code Online (Sandbox Code Playgroud)

这些类型如何在这里工作?它是否依赖于数据类型的大小?代码如何工作?

java types

14
推荐指数
2
解决办法
592
查看次数

如何将10乘以Java中的"整数"对象?

如何将10乘以一个Integer对象并取回该Integer对象?

我正在寻找最好的方法.

我可能会这样做:从Integer对象获取int ,将其与另一个int相乘,并使用此int值创建另一个Integer对象.

代码将类似于......

integerObj = new Integer(integerObj.intValue() * 10);
Run Code Online (Sandbox Code Playgroud)

但是,我看到了一个代码,作者正在这样做:StringInteger对象中获取,在结尾处连接"0",然后Integer通过使用返回对象Integer.parseInt

代码是这样的:

String s = integerObj + "0";
integerObj = Integer.parseInt(s);
Run Code Online (Sandbox Code Playgroud)

这样做有什么好处吗?

在这种情况下,一般来说最有效/最好的方法是什么?

java types casting

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

如何找出对象有多少引用?

是否有可能和/或很容易找出任意对象有多少传入引用?也就是说,有多少个对象指的是它.

提前致谢...

java memory jvm reference

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

为什么行"^"的开头和行"$"的结尾?

我永远不会记得是否^匹配线的开头并$匹配它的结束或相反.一个好的助记符就是$标志总是在价格之前,因此它与一条线的开头相匹配 - 不幸的是,它是另一种方式.

那么为什么选择这两个字符作为开头和结尾的原因是什么?

regex line-endings mnemonics end-of-line start-of-line

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

Java返回副本以隐藏未来的更改

在Java中,假设您有一个包装ArrayList对象(或任何集合)的类.

您将如何返回其中一个对象,以致调用者将看不到对ArrayList中对象的任何未来更改?

即你想要返回对象的深层副本,但你不知道它是否是可克隆的.

java deep-copy cloning

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

Java中的条件数字格式

如何在Java中格式化浮点数,以便只有浮点组件不为零时才显示它?例如:

123.45 -> 123.45
99.0   -> 99
23.2   -> 23.2
45.0   -> 45

编辑:我忘了提 - 我还在Java 1.4上 - 对不起!

java java1.4

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

Java 中的排出标准错误

从 Java 启动进程时,如果我不从管道读取数据,stderr 和 stdout 都会阻塞输出。目前,我有一个线程主动从一个线程读取数据,而主线程则在另一个线程上阻塞。

有没有一种简单的方法来连接两个流或以其他方式导致子进程继续,同时不丢失 stderr 中的数据?

java multithreading process-management

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

使用多种编码的文件

我正在读取一个文本文件,我猜它是用 utf-8 编码的。但有些行只能解码为 latin-1。我想说这是非常糟糕的做法,但无论如何我必须应对它。

我有以下问题:

第一:如何“猜测”文件的编码?我已经尝试过enca,但在我的机器上:

enca --list languages
belarussian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855 KOI8-U
  bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113
      czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
   estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic
   croatian: CP1250 ISO-8859-2 IBM852 macce CORK
  hungarian: ISO-8859-2 CP1250 IBM852 macce CORK
 lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
    latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
     polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK
    russian: KOI8-R CP1251 ISO-8859-5 IBM866 …
Run Code Online (Sandbox Code Playgroud)

csv unicode encoding utf-8 text-files

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

如何在MySQL中控制UTF-8排序?

例如,这是标准"SORT BY name"查询返回的顺序:

name
------
Cebbb
?ebbc
Cebbd
Run Code Online (Sandbox Code Playgroud)

我想按名称排序,并获得重音字符第一,与其他重音字符,例如分组

name
------
?ebbc
Cebbb
Cebbd
Run Code Online (Sandbox Code Playgroud)

默认情况下,MySql将其?视为C用于排序目的,并按所示顺序排序.

或者,?为了C进行比较,有没有一种方法可以在PHP中"转换" 为什么?

php mysql sorting collation utf-8

5
推荐指数
2
解决办法
7360
查看次数

RSA在java中签名和验证

我正在尝试在java中签署一条消息,它似乎不起作用.验证步骤给了我错误.

谁能告诉我我的错误在哪里?我无法理解我做错了什么.谢谢

String messageString = "text";
try {
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "BC");
        keyGen.initialize(512, new SecureRandom());
        KeyPair keyPair = keyGen.generateKeyPair();
        PublicKey RSAPublicKey = keyPair.getPublic();
        PrivateKey RSAPrivateKey = keyPair.getPrivate();

        System.out.println("public key = " + RSAPublicKey);
        System.out.println("private key = " + RSAPrivateKey);

        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
        Signature signature = Signature.getInstance("SHA1withRSA", "BC");
        signature.initSign(RSAPrivateKey, new SecureRandom());
        byte[] message = messageString.getBytes();
        signature.update(message);
        byte[] sigBytes = signature.sign();

        Signature signature1 = Signature.getInstance("SHA1withRSA", "BC");
        signature1.initVerify(RSAPublicKey);
        signature1.update(sigBytes);

        boolean result = signature1.verify(sigBytes);
        System.out.println("result = "+result);
    } catch (NoSuchAlgorithmException | NoSuchProviderException | SignatureException …
Run Code Online (Sandbox Code Playgroud)

java security verification digital-signature

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