小编Ale*_*ley的帖子

为什么我不能在String上使用switch语句?

这个功能是否会被放入以后的Java版本中?

有人可以解释为什么我不能这样做,就像Java的switch声明的技术方式一样吗?

java string switch-statement

982
推荐指数
8
解决办法
73万
查看次数

具有多个类的Java泛型通配符

我想要一个Class对象,但我想强制它所代表的任何类来扩展A类并实现接口B.

我可以:

Class<? extends ClassA>
Run Code Online (Sandbox Code Playgroud)

要么:

Class<? extends InterfaceB>
Run Code Online (Sandbox Code Playgroud)

但我不能两者兼顾.有没有办法做到这一点?

java generics class bounded-wildcard

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

Oracle"Partition By"关键字

有人可以解释partition by关键字的作用并给出一个简单的例子,以及为什么人们会想要使用它?我有一个由其他人编写的SQL查询,我正在试图找出它的作用.

分区示例:

SELECT empno, deptno, COUNT(*) 
OVER (PARTITION BY deptno) DEPT_COUNT
FROM emp
Run Code Online (Sandbox Code Playgroud)

我在网上看到的例子似乎有点过于深入.

sql oracle window-functions

242
推荐指数
4
解决办法
42万
查看次数

用Java限制线程的CPU /内存使用率?

我正在编写一个运行多个线程的应用程序,并希望限制这些线程的CPU /内存使用量.

对于C++也存在类似的问题,但我想尽可能避免使用C++和JNI.我意识到使用更高级别的语言可能无法做到这一点,但我很想知道是否有人有任何想法.

编辑:增加了赏金; 我想要一些非常好的,深思熟虑的想法.

编辑2:我需要的情况是在我的服务器上执行其他人的代码.基本上它是完全任意的代码,唯一的保证是类文件上会有一个main方法.目前,在运行时加载的多个完全不同的类作为单独的线程并发执行.

它的编写方式,重构为每个执行的类创建单独的进程将是一件痛苦的事.如果这是通过VM参数限制内存使用的唯一好方法,那么就这样吧.但是我想知道是否有办法用线程来做.即使作为一个单独的进程,我也希望能够以某种方式限制其CPU使用率,因为正如我之前提到的,其中一些将立即执行.我不想要一个无限循环来占用所有资源.

编辑3:一种简单的近似对象大小的方法是使用java的Instrumentation类; 特别是getObjectSize方法.请注意,使用此工具需要一些特殊设置.

java memory cpu multithreading throttling

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

指定@Transactional rollbackFor还包括RuntimeException

@Transactional(rollbackFor = MyCheckedException.class)
public void foo() {
    throw new RuntimeException();    
}
Run Code Online (Sandbox Code Playgroud)

这个事务会被回滚,还是我还需要在注释中包含RuntimeException.class?

java spring transactions exception rollback

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

此Google地图缩放级别计算如何运作?

我知道输入和输出是什么,但我不确定它是如何工作的或原因.

此代码用于给定包含一组点的最小和最大经度/纬度(正方形),确定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)

java algorithm google-maps latitude-longitude

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

以数学方式查找数字子串,无需进行字符串比较

这本来是我在工作中遇到的一个问题,但现在我正试图解决我自己的好奇心.

我想知道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)

java performance integer substring contains

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

自动装配使用@Component注释的非托管Bean

我想使用@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注释类.

spring components unmanaged spring-aop autowired

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

AIX上生产中的慢动态GSP重新加载

我们正在使用在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配置和设置,其中一个工作正常,所以它肯定是某种环境问题.

performance grails aix compilation gsp

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

智能JVM和JIT微优化

随着时间的推移,Sun的JVM和JIT变得非常聪明.以前不再需要将常识作为必要的微优化的东西,因为它会得到照顾.

例如,过去应该将所有可能的类标记为final,因此JVM会尽可能多地内联代码.但是现在,JIT根据在运行时加载的类知道你的类是否是最终的,如果加载一个类使原始类不可能,它会取消内联方法并取消标记为最后.

JVM或JIT还为您做了哪些其他智能微优化?

编辑:我把它做成了社区维基; 我想随着时间的推移收集它们.

java jit jvm micro-optimization

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