小编Maa*_*wes的帖子

Android默认字符编码

Android系统的默认字符编码是什么?用哪个Charset

encoding android character-encoding

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

Java 8是否缺少OptionalBoolean?

作为一种原始的版本Optional*,爪哇1.8提供OptionalInt,OptionalLongOptionalDouble.

但我找不到同等的OptionalBoolean班级.

是否有任何技术原因反对OptionalBoolean

* 一个Optional可以或可以不具有一个值的情况下,使用作为替代null.

java monads boolean optional java-8

32
推荐指数
2
解决办法
7902
查看次数

从List中删除范围(尾部)

是否有一个有效的方法来删除一个范围-比如尾部-从X的元素List,例如LinkedList在Java中?

显然可以逐个删除最后的元素,这应该导致O(X)级别的性能.至少在LinkedList某些情况下,应该可以具有O(1)性能(通过设置要移除的第一个元素周围的引用并设置头/尾引用).不幸的是,我没有看到任何方法ListLinkedList一次性删除最后的元素.

目前我正在考虑使用替换列表,List.subList()但我不确定它是否具有相同的性能.至少在代码中会更清楚,另一方面,我会放弃LinkedList提供的附加功能.

我主要使用List作为堆栈,这LinkedList似乎是最好的选择,至少在语义方面.

java collections stack list

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

AES-NI内在函数默认启用?

关于AES-NI,Oracle有关Java 8的说法:

添加了硬件内在函数以使用高级加密标准(AES).UseAES和UseAESIntrinsics标志可用于为Intel硬件启用基于硬件的AES内在函数.硬件必须是2010或更新的Westmere硬件.例如,要启用硬件AES,请使用以下标志:

-XX:+UseAES -XX:+UseAESIntrinsics
Run Code Online (Sandbox Code Playgroud)

要禁用硬件AES,请使用以下标志:

-XX:-UseAES -XX:-UseAESIntrinsics
Run Code Online (Sandbox Code Playgroud)

但它并不表示默认情况下是否启用AES内在函数(对于支持它的处理器).所以问题很简单:如果处理器支持AES-NI,是否使用了AES内在函数?

奖金问题:有没有办法测试是否使用AES-NI?我想你可以根据性能来猜测,但这不是一种最佳或确定的测试方法.


对于不熟悉AES-NI内在函数的读者:它使用AES-NI指令集用预编译的机器代码替换字节代码.这是由JVM发生的,因此它不会出现在Java运行时或字节码的API中.

java cpu cryptography aes jvm-hotspot

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

C++ - 为什么boost :: hash_combine是组合哈希值的最佳方法?

我在其他帖子中读到,这似乎是组合哈希值的最佳方式.有人可以打破这一点,并解释为什么这是最好的方法吗?

template <class T>
inline void hash_combine(std::size_t& seed, const T& v)
{
    std::hash<T> hasher;
    seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
}
Run Code Online (Sandbox Code Playgroud)

编辑:另一个问题只是要求神奇的数字,但我想知道整个功能,而不仅仅是这一部分.

c++ hash boost c++11

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

如何添加Java正则表达式实现中缺少的功能?

我是Java的新手.作为一名.Net开发人员,我非常习惯Regex.Net中的课程.Regex(正则表达式)的Java实现并不错,但它缺少一些关键功能.

我想为Java创建自己的帮助器类,但我想可能已经有一个可用.那么在Java中是否有可用于Regex的免费且易于使用的产品,或者我应该自己创建一个?

如果我会写自己的课程,你认为我应该在哪里分享它以供其他人使用?


[编辑]

有人抱怨说我没有解决当前Regex班级的问题.我会试着澄清我的问题.

在.Net中,正则表达式的使用比在Java中更容易.由于这两种语言都是面向对象的,并且在很多方面非常相似,我希望在两种语言中使用正则表达式都有类似的经验.不幸的是,事实并非如此.


这是Java和C#中的一些代码.第一个是C#,第二个是Java:

在C#中:

string source = "The colour of my bag matches the color of my shirt!";
string pattern = "colou?r";

foreach(Match match in Regex.Matches(source, pattern))
{
    Console.WriteLine(match.Value);
}
Run Code Online (Sandbox Code Playgroud)

在Java中:

String source = "The colour of my bag matches the color of my shirt!";
String pattern = "colou?r";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(source);

while(m.find())
{
    System.out.println(source.substring(m.start(), m.end()));
}
Run Code Online (Sandbox Code Playgroud)

我试图在上面的示例代码中对两种语言都公平.

你在这里注意的第一件事是类的.Value成员Match(与使用.start()和 …

java regex

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

获取方法参数的名称

Java 6中,想象一下我有以下方法签名:

public void makeSandwich(Bread slice1, Bread slice2, List<Filling> fillings, boolean mustard)
Run Code Online (Sandbox Code Playgroud)

我想知道,在运行时,传递给slice2或任何其他参数的值,这里重要的一点是我想通过参数名称获取值.

我知道如何用getParameterTypes或获取参数类型列表getGenericParameterTypes.

理想情况下,我想获得一个参数名称列表而不是类型.有办法吗?

java reflection runtime java-6

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

BigInteger的对数

我有一个BigInteger数字,例如超过2 64.现在我想计算该BigInteger数字的对数,但该方法BigInteger.log()不存在.如何计算我的大BigInteger值的(自然)对数?

java math logarithm biginteger

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

java.security.NoSuchAlgorithmException:找不到任何支持AES/ECB/PKCS7PADDING的提供程序

我试图使用AES算法加密数据.但是,发生了以下异常.

java.security.NoSuchAlgorithmException:
    Cannot find any provider supporting AES/ECB/PKCS7PADDING
Run Code Online (Sandbox Code Playgroud)

有人知道这个问题的解决方案吗?我的JDK版本是1.7.

java security encryption jce aes

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

为什么Java中的HTTP URL会编译?

如果您有这样的程序:

public class ABC
{
    public static void main(String args[])
    {
        System.out.println("1");
        http://example.com
        System.out.println("2");
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意在http://example.com两个输出语句之间写入的URL .

为什么程序编译没有任何错误?

java

22
推荐指数
2
解决办法
793
查看次数