小编Stu*_*ion的帖子

IntelliJ折叠单线方法

自从我更新了我的intelliJ版本(14.x到15.x)后,它已经开始在Java编辑器中自动折叠单行方法:

以前的版本:

public void setContext(SecurityContext context) {
    this.context = context;
}
Run Code Online (Sandbox Code Playgroud)

最新版本:

public void setContext(SecurityContext context) { this.context = context; }
Run Code Online (Sandbox Code Playgroud)

有办法防止这种情况吗?我发现眼睛上的原始版本更容易!

谢谢.

java formatting intellij-idea intellij-14 intellij-15

53
推荐指数
2
解决办法
8928
查看次数

在IntelliJ中创建新包

我刚刚从使用Eclipse的几年转移到IntelliJ的勇敢新世界,而我正试图解决那些让我失望的小事(琐碎的).

当你知道怎么做时,最新的希望是非常明显的.

我在源文件夹下创建了一个新包:

uk.ac.cam.admin
Run Code Online (Sandbox Code Playgroud)

我右键单击这个新包来创建另一个子包:

uk.ac.cam.admin.domain
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,现在我想创建一个service与...相同级别的包domain.然而,从uk.ac.cam.admin.domain正确的结果uk.ac.cam.admin.domain.service创建它导致并在源上创建它只会导致service.

显然我可以从源代码创建一个新的包并输入完全限定的路径,但它是2013年,我很懒!;)

java intellij-idea

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

IntelliJ输出控制台INFO颜色

有谁知道IntelliJ为什么用红色文本将所有日志消息打印到我的控制台?这使得很难区分信息和跟踪消息以及我需要看到的实际错误消息!

在此输入图像描述

如果这是相关的,我正在使用Tomee和CDI!

谢谢你的协助,

编辑 我的设置在首选项窗口中看起来都没问题:

在此输入图像描述

console intellij-idea

16
推荐指数
2
解决办法
2911
查看次数

最终变量解释

我知道编译器如何解释Java中的final关键字,但是我们应该如何解释它的含义呢?应该是:

1)此变量无法更改(例如内部类使用)

要么

2)我不打算更改此变量(可能对成员变量有一些优化优势).

我问的是因为我已经处理了默认情况下所有内容都被声明为final的代码(上面的选项2),在我看来,这会使关键字贬值并隐藏真正无法改变的值!声明变量最终还有性能优势吗?

java performance final

15
推荐指数
2
解决办法
522
查看次数

布尔引用为null

任何人都可以解释为什么这个代码导致下面的输出?

@Test
public void testBooleanArray() {
    Boolean[] ab = new Boolean[]{a, b};

    a = new Boolean(true);
    b = new Boolean(false);

    for(Boolean x : ab) {
        System.out.println(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

null
null
Run Code Online (Sandbox Code Playgroud)

数组ab是否应保存指向对象a和对象b的指针,因此输出:

true
false
Run Code Online (Sandbox Code Playgroud)

java autoboxing boolean

13
推荐指数
3
解决办法
1096
查看次数

为什么方法断点会对性能产生负面影响?

为什么添加方法级断点会对调试模式下的程序性能产生负面影响?

采取以下(有点人为)的例子:

public static void main(String[] args) {
    long start = System.currentTimeMillis();
    for(int a = 0; a <Integer.MAX_VALUE; a++) {
        long v = a * a;
        if(v == 100) {
            doSomething();
        }
    }
    System.out.println("Time: " + (System.currentTimeMillis() - start) + " ms");
}

private static void doSomething() {          //*** BREAKPOINT 2
    System.out.println("done something");    //*** BREAKPOINT 1
}
Run Code Online (Sandbox Code Playgroud)

这个表现约为:

  • 不在调试中:4.5秒
  • 调试,断点1:6.0秒
  • 调试,断点2: 47.0秒

这是怎么回事?方法级别调试给我们带来的好处是普通方法不能做什么?

谢谢!

编辑

时间只是近似值,包括我对断点做出反应并继续应用程序所需的时间(看起来大约是1秒钟).

我很欣赏System.currentTimeMillis()不是100%准确,但结果在多次测试中是一致的,并且性能差异很大!事实上,添加方法级别断点会导致IntelliJ发出警告,它会对性能产生影响.

java debugging jvm

8
推荐指数
1
解决办法
1503
查看次数

没有 @ViewScoped 的 JSF

我已经使用 JSF 很多年了,在下一个项目中,我们的目标是使 Web 层尽可能无状态。我正在探索的一种可能性是去除@ViewScoped豆子以支持@RequestScoped@SessionScoped根据需要加上一两个豆子)。这对于带有 AJAX、数据表和条件渲染的复杂页面来说很麻烦。我的问题是:JSF(和 PrimeFaces)与无状态 Web bean 的工作情况如何?这是我应该继续探索的东西,还是@ViewScope现在如此基本以至于不值得付出努力?

我很感激在我写这个问题时它可能会被关闭为“主要基于意见”,但我希望它不是,我对@ViewScope解决的具体问题感兴趣,以及我必须重新解决哪些历史性的解决方法-通过忽略引入@ViewScoped

jsf primefaces view-scope

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

Tomcat连接池与准备好的语句缓存

从DBCP连接池升级到Tomcat自己的实现(基于此处的优秀比较); 我有点困惑为什么他们放弃这两个属性,同时保留其他一切:

poolPreparedStatements="true"
maxOpenPreparedStatements="10000"
Run Code Online (Sandbox Code Playgroud)

这是否意味着此实现中不支持预准备语句池?默认情况下,每个连接是否都维护自己的预准备语句池?

我花了相当长的时间研究这个并找不到明确的答案!

谢谢你的时间.

java tomcat connection-pooling jdbc

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

从String的开头删除空格

我有一个字符串:

str =" 4 3" ,

我需要在'4'之前删除空白而不是在4和3之间删除空白.

这是我写的代码:"f4_ 3".但它给出了"4 _3".

private static String getFielName(String fieldName) {
    String formattedName;

    //here i need to delete the blanks before the '4'
    formattedName = Character.isDigit(fieldName.charAt(0)) ? "f" + fieldName : fieldName;
    return formattedName.trim().replace(' ', '_').replace(":", "").replace("°", "");
}
Run Code Online (Sandbox Code Playgroud)

java string

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