我的应用程序使用a ScriptEngine为我的最终用户提供插件功能.
ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine engine = engineManager.getEngineByName("nashorn");
Run Code Online (Sandbox Code Playgroud)
每当用户对其脚本进行更改时,应用程序都会通过新实例替换引擎实例.
String newScript = ...;
engine = engineManager.getEngineByName("nashorn");
engine.eval(newScript);
Run Code Online (Sandbox Code Playgroud)
两个密切相关的问题:
我应该尝试重用引擎并对它们执行某种操作clear()吗?
如果我只是用新实例替换我的引擎,我应该以某种方式处理前一个实例,以避免内存泄漏吗?(例如,我可以想象用户可以设法创建一个启动线程的脚本.)
问题是,我找不到任何看起来像a clear()或a的方法dispose().这是否意味着我目前的做法是正确的?
ALinkedList有方便的peek, pop, ... 方法。
不幸的是,我需要一个线程安全的LinkedList. 所以,我的第一个想法是将其包装如下:
List<Object> list = Collections.synchronizedList(new LinkedList<>());
Run Code Online (Sandbox Code Playgroud)
但是,由于该List接口不包含peek或pop方法。这当然行不通。
或者,我可以synchronized(list)在整个代码中使用块。这是要走的路吗?
我忽略了任何解决方案吗?
编辑:
人们使用LinkedList. 我看到有些人正在推荐其他系列。因此,这里遵循简短的要求,这导致我决定使用LinkedList.
更多背景信息:
peek编辑和验证。如果验证失败,则该项目需要保留在列表中。我们正在尝试从独立的 java 应用程序与 SAP R/3 进行通信,为此我们将使用 JCo 3.0 库。
从文档中我了解到有两种方法可以连接 SAP。
起初,我确信我们的应用程序需要作为 JCo 客户端进行连接。但我开始怀疑。
我们的应用程序发送数据。(例如订单状态的更新)但是我们的应用程序也接收数据(例如SAP将更改推送到主数据-MATMAS)。
那么,它需要是客户端还是服务器?
这是我的代码:
public void update(){
try {
Socket appSoc = new Socket( "XXX.XXX.XXX.X" ,XXXXX);
BufferedReader in = new BufferedReader(new
InputStreamReader(appSoc.getInputStream()));
for (int i = 0; i < 100; i++) {
String message = in.readLine();
add(message);}
}
catch (Exception e) {
add("ERROR" + e);
}
}
Run Code Online (Sandbox Code Playgroud)
add(String text) 将文本添加到textview以便我可以变得懒惰
无论如何我一直得到权限被拒绝,但如果我使用实际的域名而不是IP地址,它说它找不到域名,这是一个Android问题,因为它在我的计算机上的java上运行正常.
我正在使用"Angular powered Bootstrap"创建一个项目,但经过4周的开发后,我发现还有类似"ngx-bootstrap"的东西.
ng-bootstrap?ngx-bootstrap死了吗?我一直认为java用于UTF-16在内部对其字符进行编码.这是通过它使用u+xxxx格式来表示字符代码以及它使用16位来存储a这一事实来证实的char.
但有时UTF-16需要超过2个字节.在这种情况下,java需要2 char来表示1个UTF-16字符.
旁注:这让我想知道"java只支持Unicode字符集,并使用16位单元格存储字符"更为正确.
问题:第一个char提供了一些方法来确定char是否使用了第二个,或者2是否属于一个?
我刚刚注意到 Angular 8(即将发布)已经弃用了“字符串类型路由器loadChildren”。(门票)
我是否正确理解他们指的是......
const routes = [
{
path: 'production',
loadChildren: './production/production.module#ProductionModule' // <<--this
}],
Run Code Online (Sandbox Code Playgroud)
要迁移到 Angular 8,解决方案是什么?
在票证中,他们指的是“动态导入”。我是否正确,这是指以下提案:
let module = await import('/modules/my-module.js');
Run Code Online (Sandbox Code Playgroud)
如果我们将来想使用延迟加载,有人可以预览一下路由文件实际上应该是什么样子吗?
Jetty身份验证体系结构使用以下4个接口:
org.eclipse.jetty.server.UserIdentity
org.eclipse.jetty.security.LoginService
org.eclipse.jetty.security.IdentityService
java.security.Principal
Run Code Online (Sandbox Code Playgroud)
有人可以解释这4个接口如何在认证流程中互相交互.
浏览代码似乎不是很有帮助,因为有很多极端情况.我对主要流程感兴趣.
这是写在所有的java像样的课程,如果你实现了Comparable接口,你应该(在大多数情况下)还覆盖equals以匹配其行为的方法.
不幸的是,在我目前的组织中,人们试图说服我完全相反.我正在寻找最有说服力的代码示例,向他们展示将要发生的所有邪恶.
我已经用面向对象的语言开发了10多年了(C#和java).但是越来越多的人听到很多人在谈论函数式编程语言:Ruby,Scala,Haskell,......
虽然我已经阅读了很多关于这些编程语言的知识.不幸的是,大多数教程大部分时间都在谈论语法.但我没有找到任何解释这些领域或任何提供这些语言的典型实际应用的语言的教程.
我遇到了很多问题,下面是我脑海中简单问题的简短列表.
它们是独立语言吗?
他们的框架有多强大?
简介:有人可以快速回答我提到的问题,或者甚至更好,您能否通过实际示例为我提供一些教程链接?
先感谢您.
编辑:简化/删除了一些问题
java ×5
android ×1
angular8 ×1
comparable ×1
compareto ×1
encoding ×1
equals ×1
haskell ×1
jco ×1
jetty ×1
lazy-loading ×1
linked-list ×1
nashorn ×1
ng-bootstrap ×1
peek ×1
ruby ×1
sap-r3 ×1
sapjco3 ×1
scala ×1
scriptengine ×1
sockets ×1
tcp ×1
utf-16 ×1