字符串与字节数组表示
String vs byte array representation
我想知道字符串的哪种表示形式(普通字符串或字节数组)需要更多内存才能存储?
在我的代码中可以使用字节数组表示。我应该在通过网络传输它之前将其转换为字符串吗(响应 AJAX 调用)?
1 => 请参阅:What is the Java's internal represention for String? Modified UTF-8? UTF-16?
2 => 多个选项
如果它很短,如果它是ascii就简单地传输一个字符串,否则,转换它:
String serial= DatatypeConverter.printBase64Binary(bytes)
你可以使用 GET
可以使用 java、php、...
进行解码
如果它很大,使用 POST 和二进制(或本机)。
对于 2:如果它是对 AJAX 请求的响应,很可能您需要发送 HTTP 响应,并且通常在 Servlet 中发送 HTTP 响应,例如,您使用 OutputStream 对象( http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html) 或 PrintWriter 并使用 write 方法写入响应。
如果你使用 HttpServletResponse 你可以直接用 PrintWriter 写一个 String
HttpServletResponse httpServletResponse;
...
String responseToClient = "HOLA";
httpServletResponse.getWriter().write(responseToClient);
如果您使用方法 getOutpuStream 那么您将获得一个 SevletOutputStream 并且 write 方法接收一个字节数组。
我想知道字符串的哪种表示形式(普通字符串或字节数组)需要更多内存才能存储?
在我的代码中可以使用字节数组表示。我应该在通过网络传输它之前将其转换为字符串吗(响应 AJAX 调用)?
1 => 请参阅:What is the Java's internal represention for String? Modified UTF-8? UTF-16?
2 => 多个选项 如果它很短,如果它是ascii就简单地传输一个字符串,否则,转换它:
String serial= DatatypeConverter.printBase64Binary(bytes)
你可以使用 GET
可以使用 java、php、...
进行解码如果它很大,使用 POST 和二进制(或本机)。
对于 2:如果它是对 AJAX 请求的响应,很可能您需要发送 HTTP 响应,并且通常在 Servlet 中发送 HTTP 响应,例如,您使用 OutputStream 对象( http://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html) 或 PrintWriter 并使用 write 方法写入响应。
如果你使用 HttpServletResponse 你可以直接用 PrintWriter 写一个 String
HttpServletResponse httpServletResponse;
...
String responseToClient = "HOLA";
httpServletResponse.getWriter().write(responseToClient);
如果您使用方法 getOutpuStream 那么您将获得一个 SevletOutputStream 并且 write 方法接收一个字节数组。