我有一个逗号分层字符串,在调用String.split(",")它时返回一个大约60的数组大小.在特定的用例中,我只需要获取将从数组返回的第二个值的值.因此,例如"Q,BAC,233,sdf,sdf,"我想要的是第一个之后','和第二个之后的字符串的值','.我对性能的问题是我最好使用子字符串或使用split方法解析它,然后获取数组中的第二个值?任何输入将不胜感激.这种方法每秒会被调用数百次,因此我理解有关性能和内存分配的最佳方法非常重要.
-Duncan
我今天遇到了一个有趣的缺陷,问题是我在俄罗斯部署了我的Web应用程序,名称值"Наталья"在下面的方法中没有返回true作为alphaNumeric.对于人们如何处理这样的问题的一些意见感到好奇! - 邓肯
private boolean isAlphaNumeric(String str) {
return str.matches("[\\w-']+");
}
Run Code Online (Sandbox Code Playgroud) 由于特定于已签名 Jar 的安全异常,我们遇到了从 gradle 构建的战争无法在 tomcat 中加载的问题。堆栈跟踪没有显示是什么 jar 导致了问题,为了让这个东西运行,我想知道我是否可以在构建战争时排除构建中的签名,但不知道如何使用 Gradle 做到这一点。在 maven 中,我相信它会是一个<filter><exclude>标签,但不确定 Gradle 中是否提供这种类型的东西。任何输入将不胜感激,抛出的异常如下。
Caused by: java.lang.SecurityException: Invalid signature file digest for
Run Code Online (Sandbox Code Playgroud) 我想从html页面中删除以下内容并将其添加到现有的CSS表中.我是否必须做一些特别的事情,比如创建一个新的.mynewclass或只是删除<style>标签?
<style>
<!--
.rightAlign
{
text-align:right;
}
.leftPad05em
{
padding-left:0.5em;
}
.bottomPad05em
{
padding-bottom:0.5em;
}
.topPad05em
{
padding-top:0.5em;
}
.topBottomPad1em
{
padding:1em 0em 1em 0em;
}
.bottomControl
{
padding-left:14.5em;
}
-->
</style>
Run Code Online (Sandbox Code Playgroud) 在重新启动所有节点后,我在Ambari重新启动我的hadoop集群时遇到了一个奇怪的问题.尽管没有进行任何配置更改,名称节点服务无法启动以下错误.
> Fail: Execution of 'su -s /bin/bash - hdfs -c 'export
> PATH=$PATH:/usr/hdp/current/hadoop-client/bin ; hdfs --config
> /etc/hadoop/conf dfsadmin -safemode get' | grep 'Safe mode is OFF''
> returned 1.
Run Code Online (Sandbox Code Playgroud)
我环顾四周,发现有人指出非UTF-8编码问题,但没有任何运气解决这个问题.有人能告诉我这个错误意味着什么或如何调试它?
- 邓肯克雷布斯
我正在尝试将Kafka技术用于分布式系统,该系统实时使用来自金融交易所的报价数据,并且不确定在这种用例中哪种方法最有意义:
我正在使用数千只股票的数据,每个消费者只关心使用最多100个符号的少数股票的数据。我最好是为每只股票创建一个主题,然后让消费者订阅它关心的主题列表吗?还是最好有一个主题发布所有的报价数据,并且消费者使用过滤器只消费它的消息?关心?
我不知道在Kafka中是否有像JMS这样的消息选择器,也不知道哪种选项可以提供更好的性能。感谢任何反馈或答案,目标是尽可能减少延迟。-邓肯
我正在尝试在这个用例中使用 Java 泛型,并且在网上找不到任何答案后需要一些帮助来弄清楚如何实现它。这是我的用例......
// Interface DevObject
public interface DevObject {
void addExtension(DevExtension extension);
}
// Interface DevExtension
public interface DevExtension<T extends DevObject> {
void start(T devObject);
}
Run Code Online (Sandbox Code Playgroud)
然后我创建两个分别实现 DevObject 和 DevExtension 的类,如下所示......
public class MyDevObject implements DevObject {
void addExtension(DevExtension extension) {
}
}
public class MyDevObjectExtension implements DevExtension<MyDevObject> {
void start(MyDevObject devObject) {
}
}
Run Code Online (Sandbox Code Playgroud)
但我真正想做的是使用泛型修改 DevObject 上的 addExtension 方法,以便它只能添加其泛型 T 值与实现 DevObject 的类相同的 DevExtension 实例。
任何帮助,将不胜感激。
我有一个涉及动态 @JsonSubTypes 贡献者的系统,我试图弄清楚如何重构我的代码(下面的示例)以不使用 @JsonSubTypes 注释,而是动态或在运行时提供这些值。有谁知道这是否可能?
@JsonSubTypes({
@JsonSubTypes.Type(value = Dog.class, name = "dog"),
@JsonSubTypes.Type(value = Cat.class, name = "cat")
})
Run Code Online (Sandbox Code Playgroud) 我遇到的情况是,1 个线程正在快速消耗来自 Kafka 主题的消息,并将它们放入阻塞队列中,然后在另一个将批量插入写入 mongo 数据库集合的线程中消耗该消息。我没有看到很多答案,因为这是一个常见问题,我的应用程序正在崩溃,因为消息 q 变得如此之大并且内存不足,因为 mongo db writer 线程无法跟上消息消耗率。
配置kafka消费者暂停消息消费一段时间直到消息q恢复到合理大小的正确方法是什么?我可以在池循环中暂停或执行其他操作吗?我不这么认为,否则消费者将被标记为不在线,我是否可以在每次消息 q 太大时关闭 Kafka 消费者,然后在其恢复到可管理的大小时重新连接?我可以,但这似乎不是一个干净的解决方案,我正在寻找的是说“嘿卡夫卡,请暂停向我的活跃消费者发送消息,直到我告诉你恢复”,因为这将允许我以最快的速度拉取消息我可以将它们插入我的数据存储中。
请帮忙!
我有一个非常复杂的软件,它大量利用多线程来计算金融报价源,并且在市场交易即将结束时,我的线程池队列开始膨胀并增加到系统不再稳定的程度。为了解决这个问题,我需要获取更多关于不同类类型的 Runnable 执行时间的数据,或者以某种方式标记那些执行时间超过 x 秒的数据。我还试图了解是否我向服务器上的虚拟机过度分配了核心,导致 JVM 需要一段时间才能获取用于线程执行的核心。
监控队列大小非常简单,但获取这些其他指标时,我在 Java 中没有看到任何 API 可以实现这一点,任何帮助将不胜感激,这是我最后一个主要障碍!
java ×7
apache-kafka ×2
ambari ×1
concurrency ×1
css ×1
generics ×1
gradle ×1
hadoop ×1
jar ×1
json ×1
memory ×1
regex ×1
threadpool ×1
tomcat ×1
unicode ×1
validation ×1