Java Web应用程序在JVM中的执行过程

Java Web 应用开发完成,编译打包后得到一个 War 包,将这个 war 放入到 Tomcat 容器路径下,启动 Tomcat 就可以通过 HTTP 访问这个 Web 应用了。

Java Web 应用是被 Tomcat 加载运行的,所以也称 Tomcat 为 Web 容器。

阅读更多

解决Windows运行java -Dfile.encoding=utf-8 -jar乱码

UTF-8编译的 Java 应用程序,在 Windows 运行,指定了文件编码为 UTF-8 ,控制台显示的中文仍乱码。

右键 cmd 控制台 > 属性,可以看到当前代码页为:936 (简体中文 GBK),该代码只能显示 GBK 编码的中文。

或直接在控制台输入 chcp 命令,会输出当前:【活动的代码页:936】

需要通过 chcp 命令修改代码页,chcp 65001。(65001为UTF-8的代码页)

Windows 中 运行 Java 程序脚本新建一个 startup.bat 文件,内容如下。

1
2
3
title xxx-server
chcp 65001
java -Dfile.encoding=utf-8 -jar xxx.jar
阅读更多

JVM虚拟机(3):概念、构造、垃圾回收

JVM 全称是 Java Virtual Machine,属于程序虚拟机。

JVM 封装了一组自定义的字节码指令集,有自己的程序计数器和执行引擎,内存管理机制,线程及栈管理机制,看起来就像一台完整的计算机,这就是JVM被称为机器的的原因。

阅读更多

Java:JMS(Java Message Service)详解

Java消息服务Java Message ServiceJMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

阅读更多

Java 远程调试(Remote Debugging)

远程调试生产环境(或远程环境)的 Java 应用,以便快速定位某些在本地环境难以重现的问题。

远程部署的可能是个 Jar 包 或 Tomcat、Jetty 应用,若定位生产问题是通过反复修改 log 发包,效率就太低下了。

Java 提供了 JPDA 远程调试将本地源码与部署服务器连接,可以在本地控制断点的运行。

阅读更多

Java基础:JDK8 Stream 的方法应用

JDK 8 的新特性中包含了一个新的 Stream API,可以写出高效、干净、简洁的代码。

Stream 操作将要处理的集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理, 比如筛选, 排序,归集等。

Stream 不是数据结构,并不保存数据,它的主要目的在于计算。

Lambda 和 Stream 存在的最大最大缺点是不好调试。不过 IDEA 2019 已集成了 Stream 的调试插件 Java Stream Debugger。

阅读更多
统一响应Json对象多了个success属性

统一响应Json对象多了个success属性

新项目,创建了一个统一响应的对象,有一个 isSuccess()的方法判断是否成功,然后发现响应结果中多了个 success属性。

然后在 Controller 层把要响应的数据直接 JSON 序列化输出,发出确实多了 success属性,可以定位是 JSON 序列化出了问题。

阅读更多