小编Gau*_*ani的帖子

为什么局部变量没有在Java中初始化?

有没有理由为什么Java的设计者觉得局部变量不应该被赋予默认值?说真的,如果实例变量可以给出一个默认值,为什么我们不能对局部变量做同样的事情呢?

它也会导致问题,如本评论中对博客文章的解释:

这个规则在尝试关闭finally块中的资源时最令人沮丧.如果我在try中实例化资源,但尝试在finally中关闭它,我会收到此错误.如果我在try之外移动实例化,我会收到另一个错误,指出它必须在try中.

很沮丧.

java variables initialization

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

JSF性能改进

我正在使用JSF 2.2 + Primefaces开发WebApp ...项目正在快速增长,并且第一次性能测试非常差(由于我对JSF LifeCylce在非功能性需求方面的知识不足 - 即完全是ajax网站),然后我们可以改善一点,但结果仍然不如预期.(根据动作,我们有300~1500毫秒的时间,想法是性能大约500毫秒,给予或采取).主要是恢复视图阶段和渲染响应是消费者(在其他情况下,花费的时间毫无价值)的时间.对于某些操作,Invoke Aplication也需要时间(由于DB调用).

在网上阅读了很多文章后,有很多很棒的技巧要考虑(当然很多来自stackoverflow),例如:

  • 改善数据库查询

我们有一些复杂的,用两个Hibernate Criterias查询完成,所以我们在这里工作.(也许使用纯SQL查询,复杂的查询使用子查询?)

  • 永远不要在Bean的getter上定义业务逻辑

得到它了!

  • 将适当的范围设置为bean并在其上存储只不过是必要的东西

我们有一个完整的ajax站点,所以View Scoped几乎就像Session Scoped一样,我们使用SessionBeans作为一种'Cache'来存储我们不希望每次都从DB获取的关键数据+定义业务逻辑这里.

  • 选择正确的JSF状态保存方法 - 客户端Vs服务器

为此,我需要进行更多的研究,检查各种可能性的优缺点,然后测试每一种的可能性.

到目前为止非常清楚,现在一些额外的提示我对此有些怀疑.

  • 尽可能使用vanilla HTML,最好使用h:标签而不是p:标签

简单的HTML是清楚的,有意义的,现在在h:和p之间:它值多少钱?例如.

<p:commandButton value="Value" 
             styleClass="class" 
             actionListener="#{myBean.doStuff()}"
             ajax="true" process="@form" update="@form" 
             onsuccess="jsFunction()" />
Run Code Online (Sandbox Code Playgroud)

VS

<h:commandButton value="Value" 
             styleClass="class" 
             actionListener="#{myBean.doStuff()}" >
       <f:ajax execute="@form" render="@form" event="onclick" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

要么

<ui:fragment... vs <p:fragment...
Run Code Online (Sandbox Code Playgroud)

要么

<p:outputLabel value="#{myBean.value}" rendered="#{myBean.shouldRender}" />
Run Code Online (Sandbox Code Playgroud)

VS

<ui:fragment rendered="#{myBean.shouldRender}">
    <label>#{myBean.value}</label>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)

我一直在使用Primefaces和Jsf标签以及一些简单的HTML混合使用了一段时间.(主要是PF由于其组件的功能)我现在普通的HTML总是会更快,但在JSF和另一个框架之间?如果我这样做,改变它将花费大量时间,我不希望知道它的结果根本没有相关的差异.

  • 自定义Facelets标记与复合组件

我认为这是关键.对它们的差异仍有一些疑问,在两者的实现上,CC使用起来非常简单和灵活,但缺点是它们完全包含在ViewTree和JSF为每个请求重新生成(如果我没有记错的话) ,而自定义标签使用起来似乎有点复杂(不是那么多),但其优势在于ViewTree上只包含了实际呈现的内容,仅此而已,使RESTORE VIEW更省时.我们有几个复合组件,没有Facelets标签,所以这里要做很多工作.我还没有找到一篇很好的文章解释它们之间的差异,当一个应该被使用时和另一个(已经读过输入,消息使用TAGS和更复杂的东西CC).如果想要更喜欢标签与CC,那么我将没有选择而不是使用CC?在CC中使用自定义标签是否可以使它们更轻松地用于处理它们?

我即将进入修改孔项目的旅程,以获得更好的性能,这将花费我几天的时间,想法是这次获得更好的结果; 所以每个提示,建议和建议都非常欢迎!谢谢你们的时间!

performance jsf primefaces jsf-2

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

SQL RANK()在连接表上的PARTITION上

我有两个表RSLTS和CONTACTS:

RSLTS

 QRY_ID  |  RES_ID  |  SCORE
-----------------------------
   A     |    1     |    15
   A     |    2     |    32
   A     |    3     |    29
   C     |    7     |    61
   C     |    9     |    30
Run Code Online (Sandbox Code Playgroud)

联系

 C_ID  |  QRY_ID  |  RES_ID
----------------------------
  1    |    A     |    2
  2    |    A     |    1
  3    |    C     |    9
Run Code Online (Sandbox Code Playgroud)

我试图创建一份报告,显示每个联系人记录(C_ID)时,RANK()RES_ID(通过SCORE在)RSLTS其组内(表QRY_ID).使用上面的数据,它看起来像这样:

 C_ID  |  QRY_ID  |  RES_ID  |  SCORE  |  Rank
----------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

sql rank sql-server-2008

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

Singleton类有什么优势?

在java中,当我们创建一个类单例时,它只为每个应用程序创建该类的一个实例,而不是创建单例类,如果我们创建该类静态的所有方法和变量,那么它也只会创建该静态成员的一个实例.那么单例类对类的所有静态成员有什么好处?

java singleton static

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

在java中加载/卸载静态方法和内存区域?

我有四个关于java中的静态方法的问题:

1)在内存中加载静态方法?什么时候加载类或者第一次调用方法?

2)从内存中卸载静态方法?当类被卸载或者该方法的执行流程在调用后结束时?

3)加载JVM静态方法的内存区域?在堆栈内存区域或者JVM中有不同类型的内存用于静态方法(我也读过一些静态内存)?

4)在我们的应用程序中有这么多静态方法是否合适?

我在这个网站和其他网站上经历了很多问题,但他们没有明确说明.

java static-methods memory-management

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

CSS 和 JS 未加载 - net:ERR_ABORTED 和 404() Java Spring Boot

我已经研究这个问题几天了,并且一直在循环尝试不同的事情。我已经越来越net::ERR_ABORTED404()开始我的应用程序并将其加载时出错localhost。该index.html页面加载,但没有CSS或JS文件。有任何想法吗?我尝试了不同的相对路径和完整路径、一些不同的配置等。

索引.html:

    link th:href="@{/nav.css}" type=text/css rel="stylesheet
    link th:href="@{/name.css}" type=text/css rel="stylesheet"
    script th:src="@{/nav.js}" type=text/javascript></script
Run Code Online (Sandbox Code Playgroud)

MVC配置:

    @Configuration
    @EnableWebMvc
    public class MvcConfig extends WebMvcConfigurerAdapter {

@Bean
public SpringResourceTemplateResolver templateResolver() {
    SpringResourceTemplateResolver templateResolver = new 
SpringResourceTemplateResolver();
    templateResolver.setCacheable(false);
    templateResolver.setPrefix("classpath:/templates/");
    templateResolver.setSuffix(".html");
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine springTemplateEngine = new 
SpringTemplateEngine();
    springTemplateEngine.addTemplateResolver(templateResolver());
    return springTemplateEngine;
}

@Bean
public ThymeleafViewResolver viewResolver() {
    String[] excludedViews = new String[] {
            "/resources/static/*"};
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
    viewResolver.setTemplateEngine(templateEngine());
    viewResolver.setOrder(1);
    viewResolver.setExcludedViewNames(excludedViews); …
Run Code Online (Sandbox Code Playgroud)

html css java spring-mvc spring-boot

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

APM node.js 代理 3.0.0 和 APM 服务器 7.4.0 之间不兼容

我遇到 APM 服务器和 APM 代理 (Elastic Stack) 的兼容性问题。

"elastic-apm-node": "^3.0.0"
Run Code Online (Sandbox Code Playgroud)

配置:

var apm = require('elastic-apm-node').start({
  serviceName: "******-dev",
  captureBody: 'all',
  stackTraceLimit: 10,
  transactionMaxSpans:10,
  serverUrl: "http://localhost:5601"
}).addErrorFilter(function (payload) {
  if(payload.context.response && payload.context.response.status_code === 429){
    return false;
  }
  return payload;
})
Run Code Online (Sandbox Code Playgroud)

APM服务器版本: 7.4.0

错误:

APM Server responded with "404 Not Found". This might be because you're running an incompatible version of the APM Server. This agent only supports APM Server v6.5 and above. If you're using an older version of the APM Server, …
Run Code Online (Sandbox Code Playgroud)

apm node.js elastic-stack

5
推荐指数
0
解决办法
675
查看次数

决定用 Java 构建 Linux 的 GNU 或 MUSL

我有一个 Java 桌面应用程序,应该可以在 GNU Linux 发行版(Debian 和 Ubuntu)和 MUSL Linux 发行版(Alpine)中运行。我的应用程序也使用本机库,并且两种类型的 Linux 发行版的本机库构建都不同。

我会将两者与我的申请放在不同的文件夹中。因此,在运行时,Java 程序需要根据 Linux(GNU 或 MUSL)选择正确的本地库发行版。

我没有找到任何机制来了解 Java 程序中运行的是哪个 Linux 发行版 JVM。

我正在考虑从 Linux 的 /etc/ 文件夹中读取操作系统文件的一种方法。但我认为这不是一个好的解决方案(因为某些自定义构建可能会更改此细节),有人可以为这个问题建议一些更好的解决方案吗?或者如何做到这一点?

java native glibc jna musl

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

为什么Eclipse M2E错误“在高级设置中使用名称模板添加版本或自定义后缀”

在eclipse中,当我尝试通过m2e插件gitsvn导入muti pom项目时,出现了以下错误:

由于项目xxx已经存在,请在高级设置中使用名称模板添加版本或自定义后缀

我确定某些项目不在/ workspace文件夹中

eclipse maven m2e

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

访问哪个字符串对象?

我们知道当我们用new关键字创建新的String对象时,如下所示:

String str = new String("New String Will Have Two Objects");
Run Code Online (Sandbox Code Playgroud)

它将创建两个对象,一个在java堆内存上,另一个在String池上.

那么当我们调用访问"str"哪个字符串对象被访问时(堆对象或字符串池对象)?

根据我的理解,可以访问字符串池对象,如果是,那么堆对象会发生什么?

java string

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