标签: java-7

为什么getWindow()无法解析?

我无法解析getWindow(); 出于某种原因的方法......

import java.applet.Applet;

import netscape.javascript.JSObject;

public class Class466 {
public static void method6020(Applet applet, String string, int i)
        throws Throwable {
    try {
        JSObject.getWindow(applet).eval(string);
    } catch (RuntimeException runtimeexception) {
        throw Class346.method4175(runtimeexception, new StringBuilder()
                .append("tf.a(").append(')').toString());
    }
}

public static Object method6021(Applet applet, String string, short i)
        throws Throwable {
    try {
        return JSObject.getWindow(applet).call(string, null);
    } catch (RuntimeException runtimeexception) {
        throw Class346.method4175(runtimeexception, new StringBuilder()
                .append("tf.f(").append(')').toString());
    }
}

public static Object method6022(Applet applet, String string,
        Object[] objects, byte i) throws Throwable { …
Run Code Online (Sandbox Code Playgroud)

javascript java java-7 jsobject

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

为什么要将String编译切换为两个开关

我在编译开关时阅读了JVM规范,并对如何编译String上的switch语句感兴趣.这是我检查的测试方法(JDK1.7.0_40):

static int test(String i) {
    switch (i) {
        case "a":  return  -100;
        case "45b":  return  1;
        case "c":  return  2;
        default: return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这个方法能够在string的hashCode上编译成简单的lookupswitch,但突然之间

static int test(java.lang.String);
Code:
   0: aload_0
   1: astore_1
   2: iconst_m1
   3: istore_2
   4: aload_1
   5: invokevirtual #6         // Method java/lang/String.hashCode:()I
   8: lookupswitch  { // 3
                97: 44
                99: 72
             51713: 58
           default: 83
      }
  44: aload_1
  45: ldc           #7 // String a
  47: invokevirtual #8 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
  50: ifeq          83 …
Run Code Online (Sandbox Code Playgroud)

java jvm bytecode switch-statement java-7

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

在Java 7和8中从现有列表创建不同的列表?

如果我有:

List<Integer> listInts = { 1, 1, 3, 77, 2, 19, 77, 123, 14, 123... }
Run Code Online (Sandbox Code Playgroud)

在Java中,什么是创建List<Integer> listDistinctInts仅包含不同值的有效方法listInts?

我的直接想法是创建一个Set<Integer> setInts包含所有值listInts然后调用List<Integer> listDistinctInts = new ArrayList<>(setInts);

但这似乎效率低下 - 使用Java 7是否有更好的解决方案?

我没有使用Java 8,但我相信使用它我可以做这样的事情(?):

List<Integer> listDistinctInts = listInts.stream().distinct().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

这会比上面的方法更高效和/或在Java 8中有更有效的方法吗?

最后,(我知道,如果我只关心不同元素的数量,那么提出多个问题可能会不受欢迎,但这是直接相关的)是否listInts有更有效的方法来获得该值(在Java 7和8中) -没有先创建一个列表或所有不同元素的集合?

我最感兴趣的是使用本机Java方法来实现这一点并避免重新发明任何轮子,但如果它们提供更好的清晰度或性能,则会考虑手动代码或库.我已经阅读了这个相关的问题Java - 不同的对象列表,但是它并不完全清楚Java 7和8方法之间的性能差异,或者是否有更好的技术?

java list distinct-values java-7 java-8

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

何时可以使用Java语言规范第4版?

既然JDK 7开发人员预览已经完成,人们可能会认为现在是新JLS的时候了.毕竟,语言已经发生了变化,虽然很小.

我还没找到任何东西.何时可以使用新的JLS,从哪里可以获得它?

java jls java-7

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

我应该如何使用AsynchronousServerSocketChannel接受连接?

我想用Java 7和NIO 2编写一个异步服务器.

但是我应该如何使用AsynchronousServerSocketChannel?

例如,如果我开始:

final AsynchronousServerSocketChannel server = 
    AsynchronousServerSocketChannel.open().bind(
        new InetSocketAddress(port));
Run Code Online (Sandbox Code Playgroud)

然后,当我这样做时server.accept(),程序终止,因为该调用是异步的.如果我将该代码置于无限循环中,AcceptPendingException则抛出一个.

有关如何编写简单异步服务器的任何建议AsynchronousServerSocketChannel?

这是我的完整示例(类似于JavaDoc中的示例):

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.AsynchronousServerSocketChannel;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;

public class AsyncServer {

    public static void main(String[] args) {
        int port = 8060;
        try {
            final AsynchronousServerSocketChannel server = 
                    AsynchronousServerSocketChannel.open().bind(
                            new InetSocketAddress(port));

            System.out.println("Server listening on " + port);

            server.accept("Client connection", 
                    new CompletionHandler<AsynchronousSocketChannel, Object>() {
                public void completed(AsynchronousSocketChannel ch, Object att) {
                    System.out.println("Accepted …
Run Code Online (Sandbox Code Playgroud)

java asynchronous nio java-7

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

如何在JDK7中使用目录通配符

我一直在尝试使用JDK7中的新globbing功能,从文档和示例开始

我可以得到像我这样"glob:*.dat"的人

Files.walkFileTree(startingDir, finder);
Run Code Online (Sandbox Code Playgroud)

例如,但我无法使"**"语法正常工作.我希望能够创建类似的东西:

matcher = FileSystems.getDefault().getPathMatcher("glob:" + "foo/**/bar/*.dat");
Run Code Online (Sandbox Code Playgroud)

并希望得到一个简单的例子.我使用的是Windows 7.

更新:@Oleg和@JBNizet清楚地表明"/"语法与操作系统无关.请注意,Javadocs建议也可以使用依赖于操作系统的语法(需要)

仍有问题:已采取@Nizet并编辑如下:

@Test
public void testStackoverflowGlobber() throws IOException {
    final PathMatcher matcher =
 FileSystems.getDefault().getPathMatcher("glob:*.cml");
        Files.walkFileTree(Paths.get("d:/petermr-workspace/jumbo-converters/jumbo-converters-cli/src/test/resources"), new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println("try>> "+file);
                if (matcher.matches(file)) {
                    System.out.println("MATCHES>>"+file);
                }
                return FileVisitResult.CONTINUE;
            }
        @Override
        public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
            return FileVisitResult.CONTINUE;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这给出了如下输出:

try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdx
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cdxml
try>> d:\petermr-workspace\jumbo-converters\jumbo-converters-cli\src\test\resources\examples\cdx\r19.cml
try>> …
Run Code Online (Sandbox Code Playgroud)

java glob java-7 java.nio.file

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

如何使用-XX:+ UnlockDiagnosticVMOptions -XX:CompileCommand =使用JVM HotSpot打印选项

我试图使用-XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*MyClass.myMethod命令行中的说明这篇文章.

它似乎可以使用open-jdk(https://wikis.oracle.com/display/HotSpotInternals/PrintAssembly).

如何在oracle JDK7和JVM HotSpot中使用这些选项(或类似的等价物)?

java assembly jvm java-7

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

使用Java 1.7时,Coldfusion 10比1.6慢

我有一个web服务正在运行Coldfusion 10 64bit.在调查内存泄漏的同时,我将JRE从1.6升级到1.7,但发现性能受到重大影响.我创建了一个简单的测试Web服务,在JRE 1.6上,只要我将JRE更改为1.7,我就能以每分钟5000个请求轻松运行,尽管此速率每分钟下降2000或更少.有没有人知道调整设置或我缺少的东西.

首选是使用,JRE 1.7因为它似乎已修复我遇到的内存泄漏问题.

  • 运行服务器JRE:java版本"1.7.0_51"Java(TM)SE运行时环境(版本1.7.0_51-b13)Java HotSpot(TM)64位服务器VM(版本24.51-b03,混合模式)

  • JVM设置中的垃圾收集: -XX:+UseParallelGC

  • 将垃圾收集更改为:-XX:+UseG1GC这没有任何区别.

遵循此处的建议,但性能没有提高.将与jvisualvm一起审核并发布我的发现.

更新: Java 7 改变了处理同步类加载器的方式,看起来这可能是导致速度减慢的原因.

更新 Adobe已承认该错误并正在寻求修复它.Adobe bug基础记录.

java coldfusion java-7 coldfusion-10

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

java 7中java 8的功能接口

java 8的功能接口是否可用(即jar),所以我可以在Java 7项目中使用它们?这样我以后可以更容易地将代码移植到惯用的java 8.如果不是,技术上是否可行,或者他们是否使用默认方法等新功能?

是的,我的意思是java.util.function中的接口.因为添加带有java前缀的包似乎是不允许从其他地方导入它们不是一个选项.

java compatibility java-7 java-8

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

在Java 7中使用正则表达式命名捕获组支持

由于Java 7正则表达式API提供对命名捕获组的支持.方法java.util.regex.Matcher.group(String)返回由给定的命名捕获组捕获的输入子序列,但API文档中没有可用的示例.

在Java 7中指定和检索命名捕获组的正确语法是什么?

java regex java-7

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