小编Kou*_*lik的帖子

没有抓到Java异常?

我对try-catch构造有一个小的理论问题.

我昨天参加了一个关于Java的实践考试,我不明白以下例子:

try {
    try {
        System.out.print("A");
        throw new Exception("1");
    } catch (Exception e) {
        System.out.print("B");
        throw new Exception("2");
    } finally {
        System.out.print("C");
        throw new Exception("3");
    }
} catch (Exception e) {
    System.out.print(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

问题是"输出会是什么样子?"

我很确定它会是AB2C3,但令人惊讶的是,这不是真的.

正确的答案是ABC3(经过测试,确实就是这样).

我的问题是,例外("2")去了哪里?

java exception try-catch

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

如何减少Spring内存占用

我想问你如何(或IF)可以减少Spring框架的RAM占用空间.

我创建了一个简单的helloworld应用程序来演示这个问题.只有两个类和context.xml文件:

  • Main - 使用main方法的类
  • Test - 用于模拟某些"工作"的类(无限循环中的printig Hello)

context.xml 只包含这个:

<context:component-scan base-package="mypackage" />
Run Code Online (Sandbox Code Playgroud)

测试类只包含调用的metod init,在构造后调用:

@Component
public class Test{

    @PostConstruct
    public void init() {
        Thread t = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    while (true) {
                        System.out.println("Hello " + Thread.currentThread().getName());
                        Thread.sleep(500);
                    }
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        });
        t.start();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我准备了两个场景,在这两个场景中,main方法只包含一行.

在第一个场景中,main方法执行此操作:(new Test()).init(); App在没有Spring的情况下工作,仅消耗aprox.8MB的RAM.

在第二个场景中,main方法包含以下内容:new ClassPathXmlApplicationContext(new String[]{"spring/context.xml"}); 因此,应用程序通过Spring容器初始化并消耗aprox.45MB内存!

有没有办法如何减少(在最好的情况下完全摆脱)这个额外的内存?到目前为止,我无法找到任何合适的解决方案.

我不介意启动时是否有额外的内存消耗 - 这很好,但在那之后,我需要我们的应用程序来减少它.

(这个问题背后的故事有点复杂,但这对我来说现在是核心问题.)

谢谢

java ram spring

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

为什么SELECT计数(PK)和SELECT计数(*)都这么慢?

我有一个简单的表,其中单列PRIMARY KEY称为id,type serial.那里有100,000,000行.表占用48GB,PK指数约为2,1GB.运行的机器仅为Postgres"专用",它类似于Core i5,500GB HDD,8GB RAM.Pg config由pgtune实用程序创建(共享缓冲区大约2GB,有效缓存大小为7GB).操作系统是Ubuntu服务器14.04,Postgres 9.3.6.

为什么都SELECT count(id)SELECT count(*)在这个简单的例子(CCA11分钟)这么慢?

为什么PostgreSQL规划器选择全表扫描而不是索引扫描应该至少快25倍(在必须从HDD读取整个索引的情况下).或者我错在哪里?

顺便多次连续运行查询并没有改变任何东西.仍然cca 11分钟.

执行计划在这里:

 Aggregate  (cost=7500001.00..7500001.01 rows=1 width=0) (actual time=698316.978..698316.979 rows=1 loops=1)
   Buffers: shared hit=192 read=6249809
   ->  Seq Scan on transaction  (cost=0.00..7250001.00 rows=100000000 width=0) (actual time=0.009..680594.049 rows=100000001 loops=1)
         Buffers: shared hit=192 read=6249809
 Total runtime: 698317.044 ms
Run Code Online (Sandbox Code Playgroud)

sql postgresql select postgresql-9.3

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

QFileInfo exists()和isFile()错误

我正在尝试检查提供的路径是否存在以及它是否是文件.
所以我写了这段代码:

#include <QFile>
#include <QFileInfo>


bool Tool::checkPath(const QString &path){
    QFileInfo fileInfo(QFile(path));
    return (fileInfo.exists() && fileInfo.isFile());
}
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:

Error: request for member 'exists' in 'fileInfo', which is of non-class type 'QFileInfo(QFile)'

Error: request for member 'isFile' in 'fileInfo', which is of non-class type 'QFileInfo(QFile)'

为什么?我一遍又一遍地阅读文档,但我无法理解.BTW Qt Creator建议我使用这些方法并完成它们.但编译器不喜欢它.

c++ qt file qfile

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

Apache Commons CSV - 不区分大小写的标头?

Apache CSV实现中是否有内置功能在读取csv时忽略标题大小写?

前段时间我们已经实现了将CSV导出文件转换为SQL的实用程序.为此,我们选择了Apache CSV.到目前为止,一切都很好,但现在我们已经有了变更请求.

我们处理的所有CSV文件都必须包含标题,现在我们应该以不区分大小写的方式读取这些标题,因此我们的用户不必花费精力在其中,并观察他们创建的CSV是否遵循我们的标题案例要求.

代码示例:

for (CSVRecord record : subsidiaryRows) {
    String name = record.get(Data.NAME));
Run Code Online (Sandbox Code Playgroud)

Data.NAME的位置

public static final String NAME = "Name";
Run Code Online (Sandbox Code Playgroud)

当用户在其CSV中使用"name"作为列标题而不是使用大写"N"的"Name"时,问题显然会引发.

我已经跟踪了API和源代码,但找不到任何东西.有没有办法如何强制CSVRecord使用CaseInsensitiveMap进行映射或类似的东西?

java csv apache-commons apache-commons-csv

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

Bamboo ProcessService bean 不存在?

https://developer.atlassian.com/bamboodev/bamboo-tasks-api/executing-external-processes-using-processservice之后,我想使用 ProcessService bean 调用一些命令。链接中描述的注入不起作用。我在 Bitbucket 检查了其他几个插件的来源,但每个插件都使用链接中描述的概念。

我的课:

import com.atlassian.bamboo.process.ProcessService;

public class CheckTask implements TaskType {
    private final ProcessService processService;
    public CheckTask(@NotNull final ProcessService processService) {
        this.processService = processService;
    }
Run Code Online (Sandbox Code Playgroud)

但是 Bamboo 没有找到 ProcessService bean 并失败并显示以下内容:

(org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“bamboo.tasks.CheckTask”的bean时出错:通过构造函数参数表达的不满意的依赖关系,类型为[com.atlassian.bamboo.process.ProcessService]的索引0::没有限定为依赖找到了 [com.atlassian.bamboo.process.ProcessService] 类型的 bean:预计至少有 1 个 bean 有资格作为此依赖的自动装配候选者。依赖注释:{};嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException : 没有为依赖找到 [com.atlassian.bamboo.process.ProcessService] 类型的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选。依赖项注释:{})

我错过了什么吗?竹版:5.13.0 AMPS 版:6.2.6

java spring dependency-injection bamboo atlassian-plugin-sdk

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

Kotlin内部成员无法从Gradle中设置的替代测试源访问

遵循https://docs.gradle.org/current/userguide/java_testing.html#sec:configuring_java_integration_testshttps://www.michael-bull.com/blog/2016/06/04/separating-integration-and-unit -tests-with-gradle,我们尝试将集成测试与普通单元测试分开。

我们internal遇到的问题是,此类测试无法访问Kotlin的成员。根据Kotlin doco,测试源集存在可见性例外。

内部可见性修饰符意味着该成员在同一模块中可见。更具体地说,模块是一起编译的一组Kotlin文件:

  1. IntelliJ IDEA模块;
  2. 一个Maven项目;
  3. Gradle源集(测试源集可以访问main的内部声明除外);
  4. 通过调用Ant任务编译的一组文件。

除了不尝试访问它们之外,还有其他解决方法吗?这将需要对数百个测试进行重大重构,并有可能对整个代码库进行重构。

testing integration-testing visibility gradle kotlin

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

Oracle中无网络传输的真实查询执行时间

是否可以在不通过网络传输数据的情况下确定 SELECT 执行时间?

我正在尝试优化远程服务器上的查询,该服务器实际上距离我大约 1000 英里,即使获取少量数据也需要几分钟才能到达这里。

SQL Developer 告诉我执行时间,其中包括网络传输时间。与“ ”情况相同set timing on

我真的很困惑 的结果SELECT * FROM v$sql(area)。即使更改执行的查询,此结果仍然相同。Oracle 文档提到 ELAPSED_TIME 列,它包括解析/执行/获取时间,并且这些结果以某种方式累积。

那么问题来了:有没有什么简单的方法可以获取服务器上查询的实际执行时间?没有网络传输时间,无论查询是否被缓存。没有平均值,没有估计。只是具体一次执行查询的时间。

提前谢谢

sql oracle select oracle-sqldeveloper

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