这个功能是否会被放入以后的Java版本中?
有人可以解释为什么我不能这样做,就像Java的switch
声明的技术方式一样吗?
我想要一个Class对象,但我想强制它所代表的任何类来扩展A类并实现接口B.
我可以:
Class<? extends ClassA>
Run Code Online (Sandbox Code Playgroud)
要么:
Class<? extends InterfaceB>
Run Code Online (Sandbox Code Playgroud)
但我不能两者兼顾.有没有办法做到这一点?
有人可以解释partition by
关键字的作用并给出一个简单的例子,以及为什么人们会想要使用它?我有一个由其他人编写的SQL查询,我正在试图找出它的作用.
分区示例:
SELECT empno, deptno, COUNT(*)
OVER (PARTITION BY deptno) DEPT_COUNT
FROM emp
Run Code Online (Sandbox Code Playgroud)
我在网上看到的例子似乎有点过于深入.
我正在编写一个运行多个线程的应用程序,并希望限制这些线程的CPU /内存使用量.
对于C++也存在类似的问题,但我想尽可能避免使用C++和JNI.我意识到使用更高级别的语言可能无法做到这一点,但我很想知道是否有人有任何想法.
编辑:增加了赏金; 我想要一些非常好的,深思熟虑的想法.
编辑2:我需要的情况是在我的服务器上执行其他人的代码.基本上它是完全任意的代码,唯一的保证是类文件上会有一个main方法.目前,在运行时加载的多个完全不同的类作为单独的线程并发执行.
它的编写方式,重构为每个执行的类创建单独的进程将是一件痛苦的事.如果这是通过VM参数限制内存使用的唯一好方法,那么就这样吧.但是我想知道是否有办法用线程来做.即使作为一个单独的进程,我也希望能够以某种方式限制其CPU使用率,因为正如我之前提到的,其中一些将立即执行.我不想要一个无限循环来占用所有资源.
编辑3:一种简单的近似对象大小的方法是使用java的Instrumentation类; 特别是getObjectSize方法.请注意,使用此工具需要一些特殊设置.
@Transactional(rollbackFor = MyCheckedException.class)
public void foo() {
throw new RuntimeException();
}
Run Code Online (Sandbox Code Playgroud)
这个事务会被回滚,还是我还需要在注释中包含RuntimeException.class?
我知道输入和输出是什么,但我不确定它是如何工作的或原因.
此代码用于给定包含一组点的最小和最大经度/纬度(正方形),确定Google地图上仍将显示所有这些点的最大缩放级别.原作者已经不见了,所以我不确定这些数字中的一些是什么(即6371和8).认为这是一个难题= D
int mapdisplay = 322; //min of height and width of element which contains the map
double dist = (6371 * Math.acos(Math.sin(min_lat / 57.2958) * Math.sin(max_lat / 57.2958) +
(Math.cos(min_lat / 57.2958) * Math.cos(max_lat / 57.2958) * Math.cos((max_lon / 57.2958) - (min_lon / 57.2958)))));
double zoom = Math.floor(8 - Math.log(1.6446 * dist / Math.sqrt(2 * (mapdisplay * mapdisplay))) / Math.log (2));
if(numPoints == 1 || ((min_lat == max_lat)&&(min_lon == max_lon))){
zoom = 11;
}
Run Code Online (Sandbox Code Playgroud) 这本来是我在工作中遇到的一个问题,但现在我正试图解决我自己的好奇心.
我想知道int'a'是否以最有效的方式包含int'b'.我编写了一些代码,但似乎无论我编写什么,将其解析为字符串然后使用indexOf的速度是数学上的两倍.
记忆不是问题(在合理范围内),只是纯粹的处理速度.
这是我用数学方式编写的代码:
private static int[] exponents = {10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 };
private static boolean findMatch(int a, int b) {
if (b > a) return false;
if (a == b) return true;
int needleLength = getLength(b);
int exponent = exponents[needleLength];
int subNum;
while (a >= 1) {
subNum = a % exponent;
if (subNum == b)
return true;
a /= 10;
}
return false;
}
private static int getLength(int b) {
int len …
Run Code Online (Sandbox Code Playgroud) 我想使用@AutoWired将配置了@Component的非托管bean注入托管bean.我很确定我的配置是正确的,但由于某种原因,我一直得到例外:
No unique bean of type [foo.Baz] is defined: Unsatisfied dependency of type [class foo.Baz]: expected at least 1 matching bean
Run Code Online (Sandbox Code Playgroud)
根据错误,我猜它无法找到Baz类,但我不确定为什么.我的理解是上下文:XML配置中的spring配置元素应该允许我这样做.我还确保包含适当的jar文件(spring-weaving.jar和aspectjweaver.jar).
这是我设置的一个简单示例.
我的XML配置:
<beans ...>
...
<context:annotation-config/>
<context:spring-configured/>
<context:component-scan base-package="foo"/>
<bean id="bar" class="foo.Bar"/>
...
</beans>
Run Code Online (Sandbox Code Playgroud)
我有一个托管bean:
package foo;
public class Bar {
@Autowired
private Baz baz;
public void setBaz(Baz baz) {
this.baz = baz;
}
...
}
Run Code Online (Sandbox Code Playgroud)
还有一个非托管bean:
package foo;
@Component
public class Baz {
...
}
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?
编辑:日志列出了它实例化的bean,而foo.Baz不是其中之一.我不知道为什么它没有拿起@Component注释类.
我们正在使用在AIX 6.1.0.0上运行的Grails 2.2.4,WebSphere 8.0.0.5.Websphere正在使用IBM JDK:
Java(TM)SE运行时环境(构建pap6460_26sr3ifix-20121005_02(SR3 + IV27268 + IV27928 + IV28217 + IV25699))
IBM J9 VM(build 2.6,JRE 1.6.0 AIX ppc64-64 20120919_122629(已启用JIT,已启用AOT)
J9VM - R26_Java626_SR3_iFix_1_20120919_1316_B122629
JIT - r11.b01_20120808_24925ifx1
GC - R26_Java626_SR3_iFix_1_20120919_1316_B122629 J9CL - 20120919_122629)
JCL - 20120713_01
问题是使用:
grails.gsp.enable.reload = true
grails.gsp.view.dir="/path/to/gsp/views"
Run Code Online (Sandbox Code Playgroud)
很慢,我认为这是一个很好的20秒来渲染一个小的GSP.有趣的是,在我们的本地开发环境中需要2秒钟.
我们已经通过一个控制器来解决这个问题,除了在模型中没有任何内容的空白GSP上调用render(...)之外什么都不做,所以我只能假设它是编译但我可能是错的.
有没有人遇到过渲染GSP极其缓慢或有任何建议的其他实例,也许这是AIX上某种奇怪的JDK问题?
除了赏金之外,无论谁正确回答这个问题都可以免费获得华夫饼干.
编辑前几天注意到这一点:有三个环境具有相同的WAS配置和设置,其中一个工作正常,所以它肯定是某种环境问题.
随着时间的推移,Sun的JVM和JIT变得非常聪明.以前不再需要将常识作为必要的微优化的东西,因为它会得到照顾.
例如,过去应该将所有可能的类标记为final,因此JVM会尽可能多地内联代码.但是现在,JIT根据在运行时加载的类知道你的类是否是最终的,如果加载一个类使原始类不可能,它会取消内联方法并取消标记为最后.
JVM或JIT还为您做了哪些其他智能微优化?
编辑:我把它做成了社区维基; 我想随着时间的推移收集它们.
java ×7
performance ×2
spring ×2
aix ×1
algorithm ×1
autowired ×1
class ×1
compilation ×1
components ×1
contains ×1
cpu ×1
exception ×1
generics ×1
google-maps ×1
grails ×1
gsp ×1
integer ×1
jit ×1
jvm ×1
memory ×1
oracle ×1
rollback ×1
spring-aop ×1
sql ×1
string ×1
substring ×1
throttling ×1
transactions ×1
unmanaged ×1