小编Try*_*ing的帖子

什么是环路反演技术?

我正在阅读一篇文档,其中讨论了Java的即时编译器(JIT)优化技术.其中一个是"循环反转".文件说:

while循环替换常规do-while循环.而 do-while循环的中设置if条款.这种替换可以减少两次跳跃.

循环反转如何工作以及它如何优化我们的代码路径?

注意: 如果有人可以用Java代码的例子解释JIT如何将其优化为本机代码以及为什么它在现代处理器中是最佳的,那将是很好的.

java jit jvm machine-instruction

89
推荐指数
2
解决办法
4002
查看次数

Guava的Optional课程有什么意义

我最近读过这篇文章并看过有人使用这个课程,但在几乎所有情况下,使用它null都会起作用 - 如果不是更直观的话.有人能提供一个具体的例子Optional来实现null无法或更清洁的方式吗?我唯一能想到的就是使用Maps不接受null密钥的东西,但即便如此,也可以使用null值的"映射"来完成.任何人都可以给我一个更有说服力的论点吗?谢谢.

java generics guava

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

在Java中将字符转换为整数

有人可以向我解释这里发生了什么:

char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
Run Code Online (Sandbox Code Playgroud)

这打印i: 43 ch:-1.这是否意味着我必须依靠原始转换来转换charint?那么如何将a转换CharacterInteger

编辑:是的,如果它不是一个数值,我知道Character.getNumericValue返回-1,这对我有意义.问题是:为什么做原始转换会返回43

Edit2: 43是ASCII for +,但我希望演员不会成功,就像getNumericValue没有成功一样.否则,这意味着有两种语义等价的方法来执行相同的操作,但结果不同?

java primitive integer character type-conversion

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

通过SSH隧道的MySQL连接 - 如何指定其他MySQL服务器?

我有大约50个数据库都设置在不同的主机名,要求我通过SSH隧道连接到它们.

例如:

  • SSH主机在 ssh.example.com

  • MySQL主持人在 mysql1.example.com

我已经设法使用autossh(运行Debian的Web服务器)创建隧道,但我似乎无法弄清楚如何连接到SSH隧道之外的特定MySQL主机名.

键入lsof -i -n | egrep '\<ssh\>'确认隧道正在工作(将端口3307发送到ssh.example.com端口3306)

因此,当我尝试时,我mysql -h 127.0.0.1 -P 3307拒绝Connection.不太奇怪,因为它不是MySQL服务器.

我向你们提问:

如何在mysql1.example.com创建SSH隧道后指定主机?我试过到处寻找,但似乎无法弄明白.

mysql ssh-tunnel

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

三和的范围内的总和(1,2)

给定n数组中的正实数,找出该集合中是否存在三元组,使得三元组的总和在该范围内(1, 2).在线性时间和恒定空间中进行.

  • 该数组未订购.
  • 数字是积极的
  • 数字是实数

任何帮助将不胜感激.谢谢.

arrays algorithm math time-complexity space-complexity

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

零和SubArray

数组包含正元素和负元素,找到其总和等于0的子数组.

algorithm

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


在java中使用volatile的单例

class MyClass
{
      private static volatile Resource resource;

      public static Resource getInstance()
      {
            if(resource == null)
                  resource = new Resource();
            return resource;
      }
 }
Run Code Online (Sandbox Code Playgroud)

这里我怀疑是在实践中根据java并发性,如果你使用volatile,安全发布会发生(即一旦引用对另一个线程可见,数据也可用).我可以在这里使用吗?但如果它是正确的,那么假设thread1现在检查"资源"并且它为null,因此它开始创建对象.当thread1正在创建objet时,另一个线程即thread2开始检查"resource"的值,而thread2发现它为null(假设创建"resource"对象需要相当长的时间,而且thread1尚未完成创建,所以安全发布没有发生因此不可用于thread2)那么它还会开始创建对象吗?如果是,那么类不变量就会中断.我对么?请帮我理解这里特别使用的volatile.

java concurrency

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

Kadane算法在O(N)中的最小和子阵列

我们都知道最大和子阵列和着名的Kadane算法.但是我们可以使用相同的算法来找到最小总和吗?

我的看法是:

改变符号并找到最大总和,与我们计算最大总和子阵列的方式相同.然后更改数组中元素的符号以使其处于初始状态.

如果有任何问题,请帮我纠正算法.

极端情况:我知道如果所有元素都是正数就会出现问题,我们可以通过执行一些预处理来处理这种情况,即如果所有元素都是+ ve,则遍历数组,而不是仅返回数组中的最小数字.

上面提到的算法将起作用并由dasblinkenlight很好地支持(解释).

java arrays algorithm

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

对于给定的二叉树,找到最大二进制搜索子树

对于给定的二叉树,找到最大的子树,它也是二叉搜索树?

例:

输入:

                   10
               /         \
             50           150
            /  \         /   \
          25    75     200    20
         / \   / \    /  \    / \
        15 35 65 30  120 135 155 250 
Run Code Online (Sandbox Code Playgroud)

输出:

                   50
                  /   \
                 25   75
                / \   /
               15 35  65
Run Code Online (Sandbox Code Playgroud)

algorithm binary-tree binary-search-tree

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