小编Rus*_*kov的帖子

64位机器上的32位标准C库

我在64位机器上使用ubuntu 12.04,我有这个简单的C代码:

 int b = 20;
 int c = 10;

 int main(int argc, char **argv) {
      c = 50;
 }
Run Code Online (Sandbox Code Playgroud)

我试图通过编译它与任何IA32机器兼容:

 unix> gcc -m32 code.c
Run Code Online (Sandbox Code Playgroud)

并得到这些错误:

 /usr/bin/ld: cannot find crt1.o: No such file or directory
 /usr/bin/ld: cannot find crti.o: No such file or directory
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
 /usr/bin/ld: cannot find -lgcc
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
 /usr/bin/ld: cannot find -lgcc_s
 /usr/bin/ld: cannot find -lc
 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc …
Run Code Online (Sandbox Code Playgroud)

c shared-libraries 32bit-64bit

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

Intellij IDEA - 如何查找项目中的包使用情况

我正在查看一个项目的 Maven pom 文件,其中包含很多依赖项,并试图找出是否使用了特定的依赖项。Intellij IDEA 有没有办法找到从特定包导入任何类的所有导入语句?

java intellij-idea maven

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

在一种方法上结合@Secured 和@PreAuthorize 注解

我的应用程序中有以下服务方法:

    @Override
    @Secured({Authority.ACCESS_FUNDING})
    @PreAuthorize("hasPermission(principal, 'MODIFY')")
    public FundingAllocation newFundingAllocation(FundingAllocationForm fundingAllocationForm) {
      return newFundingAllocation(fundingAllocationForm, null);
    }
Run Code Online (Sandbox Code Playgroud)

但是我注意到@Secured注释被忽略了,只@PreAuthorize执行了检查。

我有以下弹簧安全配置:

  <security:global-method-security secured-annotations="enabled" pre-post-annotations="enabled">
    <security:expression-handler ref="securityExpressionHandler"/>
  </security:global-method-security>
Run Code Online (Sandbox Code Playgroud)

有谁知道是否有可能将一种方法与注释结合起来?

java spring spring-mvc spring-security

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

BigDecimal地板舍入出错

我最近问一个关于奇怪的java双层舍入的问题,并得到了使用BigDecimals的答案,所以尝试了以下代码:

BigDecimal velocity = new BigDecimal(-0.07);
BigDecimal afterMultiplyingBy200 = velocity.multiply( new BigDecimal(200.0) );
BigDecimal floored = afterMultiplyingBy200.setScale(0, RoundingMode.FLOOR);
System.out.println("After multiplication " + afterMultiplyingBy200);
System.out.println("floored value is " + floored);
Run Code Online (Sandbox Code Playgroud)

而且我得到了以下结果

After multiplication -14.000000000000001332267629550187848508358001708984375000
floored value is -15
Run Code Online (Sandbox Code Playgroud)

似乎即使使用BigDecimal我也无法得到正确的值 - 将-0.07乘以200,我能做些什么来准确得到-14.0?

java rounding bigdecimal

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

排序应用程序难度

目前我正在阅读一本关于算法的书,并发现了这种排序的用法.

重建原始订单 - 在我们为某些应用程序进行置换后,我们如何恢复一组项目的原始布局?在项目的数据记录中添加一个额外的字段,以便第i个记录将此字段设置为i.无论何时移动记录,都要随身携带此字段,然后在需要初始订单时对其进行排序.

我一直在努力去理解它的含义.我悲惨地失败了.请帮忙吗?

sorting algorithm

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

mv命令在dockerfile和本地linux中的行为方式的差异

我正在查看以下具有以下命令的jboss / wildfly docker 文件

mv $HOME/wildfly-$WILDFLY_VERSION $JBOSS_HOME
Run Code Online (Sandbox Code Playgroud)

其中$WILDFLY_VERSION=17.0.1.Final$JBOSS_HOME=/opt/jboss/wildfly.因此结果命令转换为:

mv $HOME/wildfly-17.0.1.Final /opt/jboss/wildfly
Run Code Online (Sandbox Code Playgroud)

在文件的后面,我们以如下方式启动wildfly:

CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0"]
Run Code Online (Sandbox Code Playgroud)

因此,我假设mv上面的命令将$HOME/wildfly-17.0.1.Final目录的内容 放入/opt/jboss/wildfly目录中。

但是,如果我尝试在本地计算机(ubuntu 18.04)上从dockerfile重新创建步骤,则会mv $HOME/wildfly-17.0.1.Final /opt/jboss/wildfly得到以下目录结构/opt/jboss/wildfly/wildfly-17.0.1.Final。也就是说,wildfly-17.0.1.Final目录本身被复制到中/opt/jboss/wildfly,而不是其内容中。有人可以解释一下为什么我在本地得到这个结果吗?

bash ubuntu docker wildfly dockerfile

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

很不寻常的四舍五入

你有没有做过这样的四舍五入:

  • [0.95,1]轮到1
  • [0.90,0.95]轮到0.95
  • [0.85,0.90]轮到0.90
  • [0.80,0.85]轮到0.85

我试着这样做:

double rounded = Math.round(x * 20.0) / 20.0;
Run Code Online (Sandbox Code Playgroud)

但它有点不同,例如它在0.91到0.90之间,我宁愿需要它来回合0.91到0.95

java math rounding

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