new SynchronousQueue()
new LinkedBlockingQueue(1)
Run Code Online (Sandbox Code Playgroud)
有什么不同?什么时候应该使用SynchronousQueue对LinkedBlockingQueue产能1?
我对synchronizedJava 中块的性能有一点争议.这是一个理论问题,不影响现实生活中的应用.
考虑单线程应用程序,它使用锁定和同步部分.这个代码是否比没有同步部分的相同代码更慢?如果是这样,为什么?我们不讨论并发性,因为它只是单线程应用程序
更新
找到有趣的 基准测试吧.但它是从2001年开始的.在最新版本的JDK中,情况可能会发生巨大变化
我有测验申请.机器人在聊天中提出不同的问题时,这些问题属于知识的不同领域.首先回答问题的用户,获得积分.问题是,有些用户在Google上搜索答案.我想以某种方式阻止用户从网页上回答问题和google搜索答案.
我甚至不确定,这是可能的,无论如何可能有人有任何想法
已经问了类似的问题,但删除了它,因为我认为我修好了,但我错了.
我在我的一个Web项目中使用Play框架.Play不会呈现主页或不返回某些静态内容文件.
第一个屏幕截图显示了firebug控制台,当服务主页时,网站的加载停留在开头.
第二个屏幕截图显示fiddler控制台,当2个静态资源未加载时.

最初应用程序运行正常,它必须工作5-7天,我可以看到这个问题.它很难重现,它发生在15次中,我必须删除缓存数据并重新加载页面.(在FF中按CRTL-F5).问题可以在不同机器和操作系统的大多数浏览器中重现.最初,我认为托管服务提供商存在一些问题.但我已经改变了它,问题还没有消失.
该剧的版本是1.2.5.尝试了1.2.2.Play在CentOS-5-32位上作为独立服务器运行.
我怀疑,NettyPlay框架使用了一些问题.Play使用Netty 3.5.7最终jar.
cd /proc/28761/fd
ls -l | wc -l
337
Run Code Online (Sandbox Code Playgroud)
几天打开的文件描述符的数量从140增加到350.注意,开头和后面的网站平均负载是相同的.
我可以看到很多进程打开的套接字,以后不会发布.
lrwx------ 1 root root 64 Nov 11 10:34 300 -> socket:[1079566]
lrwx------ 1 root root 64 Nov 11 10:34 301 -> socket:[1079568]
lrwx------ 1 root root 64 Nov 11 10:34 302 -> socket:[1149958]
lrwx------ 1 root root 64 Nov 11 10:34 303 -> socket:[1160807]
lrwx------ 1 root root 64 Nov 11 10:34 304 -> socket:[1160605]
lrwx------ 1 root root 64 …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的情况,我的控制器不会被调用,除非我将调度程序servlet映射到web.xml中的/*.我已经使用RequestMapping定义了一个控制器:
@Controller
public class UserController {
@RequestMapping(value = "/rest/users", method = RequestMethod.GET)
public ModelAndView getUsers(HttpServletRequest request) throws RestException {
...
}
}
Run Code Online (Sandbox Code Playgroud)
和应用程序上下文:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
<context:component-scan base-package="com.test.rest.controller" />
Run Code Online (Sandbox Code Playgroud)
最后,这是在web.xml中映射的:
<servlet>
<servlet-name>rest-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/restContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rest-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
这按预期工作,即我可以向/ rest/users发出请求.但是,如果我将web.xml映射更改为:
<servlet-mapping>
<servlet-name>rest-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我收到一个MVC错误:
WARN servlet.PageNotFound:在名为'rest-servlet'的DispatcherServlet中找不到带有URI [/ rest/users]的HTTP请求的映射.
这似乎很奇怪,因为错误表明请求被映射到dispatcher-servlet,但唯一改变的是servlet映射.
有人遇到过这种情况么?
我将实现Java VoiP服务器以使用WebRtc.浏览器p2p连接的实现非常简单.服务器到客户端的连接稍微有些棘手.
在快速浏览RFC之后,我写下了将Java服务器作为浏览器应该做些什么.请帮我完成下面的列表.
问题:
WebRtc声称将解决以下问题:
是webRtc内部还是编解码器(Opus)内部?我是否需要在服务器端执行任何操作来处理此问题,例如可变比特率等?
我认为自 Lambda 为 Java 发布以来已经过去了 5 年。
public static void main(String[] args) {
go();
}
private static void go() {
Set<String> set = new HashSet<>();
set.stream().forEach((s) -> {
inner(s);
});
}
private static void inner(String s) {
inner1(s);
}
private static void inner1(String s) {
}
Run Code Online (Sandbox Code Playgroud)
当我在inner1方法上按 CTRL-ALT-H -(打开调用层次结构)时,我希望看到从 in inner1tomain方法的整个堆栈跟踪。相反,我的 staktrace 是在inner方法上修剪的。我刚刚下载了最新的 Eclipse,我认为是 2018-12 年,之前我使用的是 Mars。
Intellij 可以向我展示预期的调用层次结构,我真的不明白为什么 Eclipse 仍然不能做到这一点。不确定是否还有其他人在 2019 年使用 Eclipse,但也许您可以建议一个插件或其他东西。
切换到 Intellij 不是一种选择,我尝试了几次,但这个习惯很难克服。
更新
有类似的 - 所以问题
在运行时,对 …
我在Eclipse项目中有以下结构
- /src/main/java
- /src/test/java
Run Code Online (Sandbox Code Playgroud)
当我打开调用层次结构或使用java搜索时,搜索结果包含来自/ src/test/java类的类.类型层次结构和其他搜索也是如此.
有很多单元测试,我不想在搜索结果中看到来自/ src/test/java包的类.
最简单的方法 - 简单地将其从构建路径中排除.还有调用层次结构的过滤器,但是我无法在简单的java搜索中找到它们.过滤器也依赖于名称模式,但这并不是很好.
我正在寻找更方便的方式
现在我安装了logstashed,我可以看到Kibana中的所有[ERROR]消息和堆栈跟踪.
但是,我想通过其堆栈跟踪对异常进行分组,以查看唯一的异常.例如,我有两个不同的NullPointerException,它们来自不同的类/代码行和1个IllegalArgumentException.此异常在日志中重复多次,我可以在Kibana中看到所有异常.
我希望看到什么,类似于此
这就是fabric.io如何适用于移动崩溃/问题.可以做类似的事情吗?
我正在使用Jetty 8.1.1 Websocket客户端API.
我需要用("Sec-WebSocket-Protocol", "xsCrossfire")和更新标题("Authorization", "Basic TLVWQMZqRr2hasYnZoI=")
WebSocketClientFactory factory = new WebSocketClientFactory();
factory.start();
client = factory.newWebSocketClient();
client.getCookies().put("Sec-WebSocket-Protocol", "xsCrossfire");
client.getCookies().put("Authorization", "Basic TLVWQMZqRr2hasYnZoI=");
Future<Connection> conn = client.open(uri, (WebSocket) this);
System.out.printf("Connecting to : %s%n", uri);
Run Code Online (Sandbox Code Playgroud)
请求看起来:
Host: iltlvl262:8000\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: FHKTsICO2vqGCxXVwLkH4Q==\r\n
Cookie: Sec-WebSocket-Protocol=xsCrossfire\r\n
Cookie: Authorization="Basic TLVWQMZqRr2hasYnZoI="\r\n
Run Code Online (Sandbox Code Playgroud)
预期要求:
Host: iltlvl262:8000\r\n
Upgrade: websocket\r\n
Connection: Upgrade\r\n
Sec-WebSocket-Version: 13\r\n
Sec-WebSocket-Key: FHKTsICO2vqGCxXVwLkH4Q==\r\n
Sec-WebSocket-Protocol: xsCrossfire\r\n
Authorization: "Basic TLVWQMZqRr2hasYnZoI="\r\n
Run Code Online (Sandbox Code Playgroud)
如何正确实现8.1.1版中的握手?
java ×5
concurrency ×2
eclipse ×2
copy-paste ×1
html ×1
java-8 ×1
java-stream ×1
jetty ×1
kibana ×1
logstash ×1
netty ×1
nio ×1
performance ×1
spring-mvc ×1
webrtc ×1
websocket ×1