小编Bee*_*ope的帖子

从java方法返回两个值

假设我在java中有一个方法,它在数据库中查找用户并返回他们的地址和他们所在的团队.

我想从方法中返回两个值,并且不希望将方法拆分为两个,因为它涉及数据库调用,并且拆分涉及调用次数的两倍.

鉴于中到大型软件项目的典型问题,最佳选择是什么?

whatGoesHere getUserInfo(String name) {
  // query the DB
}
Run Code Online (Sandbox Code Playgroud)

我知道这个问题与现有的问题有些重复,但是每一个问题都有一些元素使得它与这个例子不同,我认为值得再次提问.

java oop coding-style

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

有什么方法可以像 -XX:+PrintCompilation 一样重定向本机 JVM 输出的输出

一些热点 JVM 标志,例如-XX:+PrintCompilation,会导致输出出现在 stdout 或 stderr 上。GC 相关的输出,例如由 -verbose:gc 启用的输出,可以使用 重定向-Xloggc:<path>,但我找不到任何方法重定向其他本机输出,除了重定向整个过程(出于某些原因,这可能是不可取的,例如以及捕获所有 System.out 输出)。

java debugging sun jvm-hotspot

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

简单的Java 2D图形:绘制一个矩形?

我正在尝试让Java 2D图形"hello world"继续进行,并且发现它非常困难(即,我正在使用谷歌搜索"java hello world example"的变体并且空出来).任何人都可以用最小的hellow世界示例来帮助我吗?

编辑

这是一个很好的起点,"Java教程:执行自定义绘画".

java swing

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

给定一个结构的指针,我可以在一行中为聚合初始化器的结果分配结构吗?

例如,给定结构S:

typedef struct {
  int a, b;
} S;
Run Code Online (Sandbox Code Playgroud)

...以及一个带指针的方法S,我可以在一行中为它分配聚合初始值设定项1的值吗?这是我使用临时的现有解决方案:

void init_s(S* s) {
  S temp = { 1, 2 };
  *s = temp;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用C11.


1对于那些不了解我的问题的非常罕见的超级学生,因为不知何故"聚合初始化器"在这里不适用,因为LHS没有声明一个新对象,我的意思是"聚合初始化器一样的语法与括号和东西".

c compound-literals assignment-operator aggregate-initialization c11

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

std :: atomic是否提供原子行为,无论是否排序?

如果使用std::atomic模板声明变量,例如std::atomic<int>,是否保证通过方法访问std::atomic将导致一致的值(即通过std::atomic方法写入的值),而不管顺序如何?

据我所知,这相当于询问读取写入是否可以"撕裂" - 即在ISA级别可见的多个部分中写入或写入.

c++ concurrency memory-model stdatomic

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

从GP regs加载xmm

假设你有值rax,rdx你想加载到xmm寄存器中.

一种方法是:

movq     xmm0, rax
pinsrq   xmm0, rdx, 1
Run Code Online (Sandbox Code Playgroud)

虽然这很慢!有没有更好的办法?

x86 assembly sse simd micro-optimization

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

使一个寄存器依赖于另一个寄存器而不改变其值

考虑以下 x86 程序集:

; something that sets rax
mov rcx, [rdi]
xor rax, rcx
xor rax, rcx
Run Code Online (Sandbox Code Playgroud)

在序列末尾,rax的值与进入时的值相同,但从 CPU 的角度来看,它的值取决于从内存加载到 的值rcx。特别是,rax在该加载和两条指令完成之前,后续的使用不会开始xor

有没有什么方法可以比双xor序列更有效地实现这种效果,例如,使用单个单微指令单周期延迟指令?如果某个常量值需要在序列之前设置一次(例如,有一个归零的寄存器),这是可以的。

performance x86 assembly micro-optimization microbenchmark

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

连续截断整数除法可以用乘法替换吗?

在具有有理数的小学数学中,表达式(a / b) / c相当于a / (b * c)基本的代数操作.

/在C和大多数其他语言中截断整数除法时是否相同?也就是说,我可以用所有除数的乘积用一个除法代替一系列的除法吗?

你可以假设乘法不会溢出(如果是的话,显然它们不是等价的).

c math division integer-division

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

x86 non-mov指令具有只写目标并且可以在Intel的任何端口上运行?

是否有任何整数2操作数x86-64指令将其第一个操作用作目标,而不用作源+目标1或仅源2,并且p0156在Intel Haswell和/或更高版本的CPU上运行?

mov指令不感兴趣,即mov名称中的任何内容。

例如,BMI1 blsi eax, edx是2操作数,目标​​为只写,但只能在Skylake的端口1或端口5上执行。


1大多数指令都属于此类,例如,add eax, ebx代表eax = eax + ebx

2少数2个操作数整数指令仅将其第一个操作数用作源,例如cmp eax, ebx

x86 assembly x86-64 intel cpu-architecture

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

x86 MSR 名称的 IA32 与 MSR 前缀

Intel 有时使用MSR_MSR 名称的前缀,有时IA32_甚至对于相同的 MSR 也使用 。

例如,在 SNB 上,在SDM 第 4 卷中,它们记录了IA32_PERF_STATUSMSR_PERF_STATUS对于 MSR 0x198,其位值有些不同(但不完全不一致1):

英特尔 SDM 卷。 4

那是怎么回事?


1在版本中定义为保留的IA32位在版本中被赋予特定含义MSR

x86 intel msr

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