小编Alf*_*red的帖子

关闭Input/OutputStream和直接关闭Socket有什么区别?

我只是想知道当我们在inputStream上调用close并使用与套接字关联的outStream时java会做什么.与套接字上的close调用有什么区别,即Socket.close().

如果我们只关闭套接字上的io流,但不关闭套接字,我们可以再次重新打开套接字上的io流吗?

提前致谢!

java sockets

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

SLF4J 如何支持结构化日志

任何人都知道SLF4J 通常如何实现结构化日志记录

是否有任何开源已经可以处理这个问题?

java logging logback slf4j structured-logging

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

Java退格逃脱

我刚刚测试了退格转义,如下所示:

System.out.println("Hello\b");
Run Code Online (Sandbox Code Playgroud)

我希望得到输出:地狱
但它是:"你好"的方块

有谁知道java如何处理这个?

java escaping

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

mac os/Library文件夹存储什么?

我是mac osx的新手.令我困惑的一件事是什么/Library/System/Library文件夹存储?正如它的名字含义,我认为应该是类似的/lib/usr/lib在Linux中.但事实并非如此.在它内部,它看起来更像应用程序包.并且所有命名都是特定于应用程序的,例如/Library/iChat.如果它们是特定于应用程序的,那么为什么要调用它们Library?通常在命名为时Library,它用于代码或资源共享目的.

macos

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

处理器如何处理除零的情况

很奇怪处理器/ CPU在执行除零指令时对intel cpu和Linux执行的操作.如何将错误中继到应用程序,以便它可以记录错误或通知开发人员?

谢谢!

cpu operating-system signals interrupt interrupt-handling

7
推荐指数
2
解决办法
8840
查看次数

whatsapp 或 FB Messenger 中使用的队列

在思考实时聊天的系统设计时,我很好奇 whatsapp 或 FB Messenger 在服务器端使用什么样的队列来将消息传递给收件人。我在想的是有一个每个人的队列/kafka 主题,因此当需要将新消息传递给用户 A 时,该消息将排队到 A 的队列中。

但是,可能有数十亿用户(FB 有 20 亿用户),这是否意味着我们需要 20 亿个队列/主题(在 kafka 术语中)?如果是这样,哪个队列可以有效地处理这个问题。

欢迎任何评论!

谢谢!

queue message-queue rabbitmq whatsapp apache-kafka

7
推荐指数
0
解决办法
1300
查看次数

java jaxb是如何工作的?

只是好奇jaxb是如何工作的,我有一个注释如下的类:

@XmlRootElement(name = "MyJaxb")
Class MyJaxb
{
      @XmlElement
      protected String str;

      public void setStr(String str)
      {
           this.str = str;
      }
 }
Run Code Online (Sandbox Code Playgroud)

字段str的访问修饰符受到保护,为什么Jaxb仍然可以对其进行编组和解组?

java jaxb

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

什么是非 Unicode 应用程序

众所周知,在windows系统中,我们可以在“控制面板\时钟、语言和区域”中为非Unicode程序设置区域语言。但是本地语言对应用程序意味着什么?既然按照我的理解,应用程序就是一个编译好的二进制可执行文件,里面只有机器码指令,没有数据,那么字符编码是如何影响其运行的呢?

一种猜测是,如果可执行文件在代码段中包含一些文字字符串,它将使用一些内部 Charset 对其进行编码。如果字符集不是 unicode,那么它将显示垃圾。但是内部Charset不是固定的吗?就像在 Java 中一样,Java 规范定义的内部编码是 UTF-16。

希望有人能回答我的问题

谢谢。

c java operating-system

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

套接字如何连接超时工作?

根据我的理解,套接字连接超时由TCP传输控制,该传输使用重传超时(RTO).如果在定时器到期之前ack没有返回,则将重新发送连接请求(Sync),并且RTO将加倍.

那么当我们调用时,Java套接字中的连接超时功能是什么呢? Socket.connect(endpoint, connectTimeout)

java sockets connection-timeout

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

当Future.get(超时)超时时,线程是否继续运行

正如标题显示,如果的Future.get(超时)超时,并线程继续运行,

ExecutorService executor = Executors.newFixedThreadPool(n);
Callable<Object> task = new Callable<Object>() {
  public Object call() {
       //...
 }
}
Future<Object> future = executor.submit(task);
try {
  Object result = future.get(5, TimeUnit.SECONDS); 
} catch (TimeoutException ex) {
  // handle the timeout
}
Run Code Online (Sandbox Code Playgroud)

如果线程继续运行,并得到阻止由于一些IO,等等,那么当线程池得到充分,没有新的任务可sumitted,这意味着trheadpool卡住,因为在池中的所有线程被阻塞,对不对?

java multithreading

4
推荐指数
1
解决办法
4994
查看次数