小编Sam*_*Sam的帖子

什么是Java中的二进制兼容性?

我正在阅读Joshua Bloch撰写的Effective Java.

在第17项:"仅使用接口定义类型"中,我遇到了不建议使用接口存储常量的解释.我在下面解释.

"更糟糕的是,它代表了一种承诺:如果在将来的版本中修改了类以便它不再需要使用常量,它仍然必须实现接口以确保二进制兼容性."

二进制兼容性意味着什么?

有人可以用Java中的示例指导我,以显示代码是二进制兼容的.

java

40
推荐指数
3
解决办法
9478
查看次数

何时使用Jersey的@Singleton注释?

我正在开发一个RESTful Web服务,在阅读Jersey 文档时,我遇到了一个注释@Singleton

在我的Web服务中,我主要根据作为参数提供的唯一键返回数据.当Student_Id通过时,类比将返回学生的所有信息.

所以我的问题是何时@Singleton适合这种Web服务?

根据文件 @RequestScoped

如果在请求处理中多次使用资源,则始终使用相同的实例.

那么在那种情况下我们不应该费心去使用@Singleton吧?

还有什么可能是我们必须为每个请求创建一个新实例的用例?

我确实看过这篇文章,但我的问题没有得到解答.

java rest jersey

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

将列标题添加到配置单结果集

我在Amazon EMR上使用hive脚本来分析一些数据.

我正在将输出传输到Amazon s3存储桶.现在,hive脚本的结果不包含列标题.

我也试过用这个:

 set hive.cli.print.header=true;
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.你能帮我吗?

hive amazon-s3 amazon-emr

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

带参数的Singleton Enum实现

我正在尝试使用Java枚举实现Singleton.

但是我也想在第一次初始化时将一些参数传递给构造函数.

我如何实现这一目标?拥有参数的单身人士是一个好习惯吗?

public enum DaoManager {
    INSTANCE;
    private static ILog logger; //for passing the logger;
    private static DatabasePool pool; //passing the Database pool

    public void init(ILog logger, DatabasePool pool){
          this.logger = logger;
          this.pool = pool;   
    }

 }
Run Code Online (Sandbox Code Playgroud)

现在我使用init方法将记录器和数据库池传递给DaoManager.

但是如果客户端无法调用init()方法,那么很有可能失败.

有人可以指导我如何做到这一点?

java design-patterns

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

java序列化如何在内部工作?

我正在阅读关于Java序列化的知识,并且知道如果实现了Serializable接口,那么类是序列化的.

但Serializable是一个标记界面.那么JVM如何知道应该使用哪些方法进行序列化或反序列化?

根据我的理解,接口中声明的方法是通过多态来调用的.

我将在下面举例说明我的问题.

    public class MySerializable implements Serializable{

    public void serialize(){

      //Some code to serialize to a file output stream.
    }

    public void deSerialize(){

      //Some code to de-serialize to a file input stream.
    }


}
Run Code Online (Sandbox Code Playgroud)

那么现在JVM将如何调用serialize/deSerialize方法呢?

如果我必须通过代码手动调用它们,为什么编译器应该知道Serializable接口是否已实现?

java serialization

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

为什么这是程序的输出?

public class OverloadingTest extends Format{

    public int add(String s1){
        System.out.println("With String");
        return 1;
    }
    public int add(Object a){
        System.out.println("With Object");
        return 1;
    }


    public static void main(String[] args) {
        OverloadingTest overloadingTest = new OverloadingTest();
        overloadingTest.add(null);
    }

}
Run Code Online (Sandbox Code Playgroud)

为什么是程序的输出 With String ?

我试过阅读第6版的JLS,但我仍然找不到答案.

我猜的唯一原因是选择了继承层次结构中最接近的匹配.

所以在这种情况下,它需要String作为Object是它的超类.

java overloading

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

在RESTful Web服务中PUT方法是幂等的是什么意思?

我试图决定应该使用哪种Http方法PUT或POST.

在查看StackOverlflow上的一些帖子时,我可以看到这篇文章.

帖子中的答案之一说

PUT是幂等的,所以如果你将对象PUT两次,它就没有效果.这是一个很好的属性,所以我会尽可能使用PUT.

有人可以通过一个例子来帮助我.让我们说我有一个场景,我正在尝试创建一个学生,其条目将在RDBMS中的Student表中传递.

所以,如果我尝试一次又一次地输入那个条目会不会有效果?

rest post put

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

由具有双引号的应用程序服务器设置的Cookie

我试图在Servlet响应中设置一个值未知的cookie#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D.

但是当我在浏览器中设置cookie时,会返回带有引号的内容,如下所示:

"未知#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D".

为什么会这样?我们使用Jetty作为应用程序服务器.

我会把我写的代码

String cookieValue = "unkown#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D";
Cookie zedoCookie = new Cookie("cookiename", cookieValue);
zedoCookie.setMaxAge(31536000); // this is one year duration.
zedoCookie.setDomain("somedomain.com");
zedoCookie.setPath("/");
response.addCookie(zedoCookie);
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?

我已经看过了这个.但它似乎没有解决我的问题.

java cookies servlets jetty

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

在实现RestFul服务中,为什么HTTP方法PUT应该是幂等而不是POST?

互联网上有许多资源可供使用,其中讨论了PUT与POST。但是我不明白这将如何影响在RestFul服务下完成的Java实现或后端实现?我提到的链接如下所述:

https://www.keycdn.com/support/put-vs-post/

https://spring.io/understanding/REST#post

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

http://javarevisited.blogspot.com/2016/10/difference-between-put-and-post-in-restful-web-service.html

例如,假设有一个针对地址的RestFul Web服务。因此,POST /addresses将完成更新地址PUT /addresses/1的工作,并完成创建地址的工作。现在,HTTP方法PUT和POST如何控制后台服务代码在做什么?

PUT /addresses/1 
Run Code Online (Sandbox Code Playgroud)

可能最终在数据库中创建相同地址的多个条目。

所以我的问题是,幂等行为为什么链接到HTTP方法?

您将如何使用指定的HTTP方法控制幂等行为?还是只是建议准则或标准做法?

我不是在寻找什么是幂等行为的解释,但是是什么使我们标记这些HTTP方法呢?

java rest jax-rs

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

为什么不使用规则引擎?或者规则引擎的开销

我读过几篇讨论使用规则引擎的用例的文章。他们中的许多人说您不应该将其用于工作流程管理。

我参考的帖子:

  1. 规则引擎的优缺点
  2. 何时不应使用规则引擎
  3. 规则引擎使用指南

但我还没有得到任何简单的解释,说明规则引擎在使用时会给系统添加哪些开销?

如果我用它来进行工作流程管理会怎么样?会造成内存开销吗?

有人可以关注这个吗?

我还将介绍我们将使用规则引擎的场景:

我们有一个竞价引擎,其输入根据业务分析师的预测经常变化。因此,简单来说,我们将针对基于规则提供的某些值采取行动。例如:如果业务分析师将价值设置为 2 美元,则规则引擎将决定发送给客户的出价价值。

rule-engine

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