草庐IT

const修饰符的移除

全部标签

java - 从 ArrayList<URLConnection> 中移除 URLConnection 对象

在我的程序中,我需要跟踪已打开的与某些HTTP服务器的连接列表-以便在需要时立即断开连接。我遇到了以下问题。如果我连接到HTTP服务器,一切正常,但如果连接到HTTPS,则连接不会从列表中删除。它会导致内存泄漏。例子:packagetest;importjava.net.URL;importjava.net.URLConnection;importjava.util.ArrayList;publicclassMain{publicstaticvoidmain(String[]args){try{ArrayListal=newArrayList();URLurl=newURL("http

java - Java 中的 Const 函数参数?

有没有办法在Java中实现类似于C++的const的东西?具体来说,我有一个类似的功能privatestaticVector2sum(Vector2vec1,Vector2vec2){returnvec1.cpy().add(vec2);}我想在签名中明确表示它不会修改它的参数,和强制它不修改它的参数(最好是在编译时,但插入运行时断言也可以)。现在我知道java是严格按引用传递的(我只是开玩笑,我当然知道itispass-by-valueorratherpass-by-copying-a-reference)。我的意思是,在Java中,当您调用一个方法时,引用被复制,但该引用指向相同的

java - 字节码中丢失变量 'final' 修饰符?

分析这个简单类的字节码后,我得出的结论是编译器不会保留有关局部变量为final的任何信息。不过这看起来很奇怪,因为我相信HotSpot编译器实际上可以使用这些信息来进行优化。代码:publicstaticvoidmain(String[]args){finalinti=10;System.out.println(i);}字节码:publicstaticvoidmain(java.lang.String[]);descriptor:([Ljava/lang/String;)Vflags:ACC_PUBLIC,ACC_STATICCode:stack=2,locals=2,args_siz

java - Java 中的 Const 返回值

我有C++背景,想知道Java的不可变特性。函数的返回值可以指定为const吗?(意思是返回值不能修改)另外,为了加分,在C++中,函数定义可以后缀为const以声明该函数不会修改任何类级别的值。这在Java中也可能吗?(这意味着根据定义的函数将无法在内部更改其类状态)非常感谢! 最佳答案 不,Java的final与C++的const非常不同。你不能做你要求的任何事情。要使对象不可变,强制执行它或多或少取决于您(与在C++中寻求编译器的帮助相反)。来自http://docs.oracle.com/javase/tutorial/es

java - 访问修饰符(公共(public)、私有(private)、内部、 protected )的安全影响

实际做C#、Java等编程语言中类、属性或方法的访问修饰符对应用程序的安全性有影响吗?它们是否也以某种方式防止未经授权的访问?还是它们只是用于清晰和适当编程的工具? 最佳答案 不,访问修饰符不提供安全保护。它们只是为了方便开发人员而存在,例如它们有助于实现良好的编码实践并有助于编程模式。通过在Java/C#和其他语言中使用反射,可以很容易地访问其他无法访问的修饰符。 关于java-访问修饰符(公共(public)、私有(private)、内部、protected)的安全影响,我们在Sta

java - 检测在 Swing 中单击生成的 MouseEvent 上的 Shift 修饰符

我正在使用JavaSwing在GUI应用程序中处理一些MouseEvent。从现在开始我在mousePressed方法中分析鼠标事件,只是为了确定是否发生左键或右键单击。我的代码是:publicvoidmousePressed(MouseEventme){if(me.getModifiers==InputEvent.BUTTON1_DOWN_MASK){//leftclick}elseif(me.getModifiers==InputEvent.BUTTON3_DOWN_MASK){//rightclick}现在我的应用程序变得越来越复杂,我还需要检查鼠标左键单击时是否按下了Shift

java - Groovy 等价于 java 的没有访问修饰符的声明

所以,我可以在Groovy中声明一个类://groovy-codeclassPerson{}这相当于用java编写如下内容://java-codepublicclassPerson{}只是出于好奇..什么是groovy等同于用java编码的://java-codeclassPerson{}我的意思是,有没有一种方法可以通过在没有访问修饰符的情况下声明某些内容来实现我在Java中可以实现的相同目标? 最佳答案 由于Java中类的默认访问修饰符是“package-private”,我认为在Groovy中最接近相同行为的是使类成为“pac

java - JavaFX 从 jdk 中移除后是否跨平台?

JavaFX11是跨平台的吗?正如我在openjfx.org中看到的那样,我必须为每个平台下载版本。如果是这样,我可以以任何方式以跨平台形式使用它吗?我应该为每个java版本使用每个javafx版本吗?不要告诉我使用maven或类似的东西。我想编写一个跨平台软件。而不是每个操作系统的每个版本的多版本软件。我想在检查操作系统后加载模块,但我可以这样做吗?无论如何,有很多库是跨平台的,即使它们具有native代码,那么为什么OpenJFX不这样做呢?编辑我没有对此进行测试,但也许我们可以从maven中包含所有系统的所有javafx依赖项org.openjfxjavafx-controls1

c# - C# 与 Java 中的访问修饰符最佳实践

我了解OOD中的经验法则是尽可能合理地尽量减少对给定对象的所有成员的访问。C#和Java似乎都实现了同一组访问修饰符;然而,让我困惑了一段时间的是为什么Java类似乎大多被声明为公共(public)类,而C#类似乎大多被声明为默认类。这些语言是否有一些微妙之处强加了这些差异,还是仅仅是约定俗成的问题?我发现自己经常检查我的C#代码(我习惯性地公开大多数类,内部类、匿名类和其他范围窄且有用的类除外)以试图取悦编译器,但我想知道我是否可以缺少一些重要的东西。 最佳答案 我想您已经回答了您的问题。按照JoshuaBloch的说法,“经验法

java - getModifiers() 方法如何计算多个修饰符的值?

getModifiers()的Java文档如下:intgetModifiers()ReturnstheJavalanguagemodifiersforthememberorconstructorrepresentedbythisMember,asaninteger.TheModifierclassshouldbeusedtodecodethemodifiersintheinteger.和JavaDocs也提供了listofdifferentmodifiersandtheircorrespondingintvalues:publicstaticfinalintABSTRACT1024pu