版本:IntelliJIDEA2018.1.4

一、同一窗口展示多个应用(弊端:耗内存)

idea没有eclipse workspace的概念,如果想在同一窗口显示多个应用,可以按照如下方式来做:
1、新建空工程

File-->new-->Project...

2、新建Modules

CTRL+ALT+SHIFT+S:

比如新建一个静态页面模块:

新建一个纯Java应用:

左侧选择Java,右侧选择JDK,下面不要选择任何Frameworks

最后效果:

二、搭建java web工程

1、搭建
(1)新建Java Enterprise

(2)在WEB-INF下面新建两个Directory:classes和lib

2、配置web项目(CTRL+ALT+SHIFT+S)
(1)配置编译输出路径


(2)添加依赖jar包

编译之后:


(3)配置打包方式Artifacts

编译之后:


(4)Tomcat配置

Tomcat 集成原理:
为项目配置了 tomcat 后,idea 会拷贝一份配置到系统目录中,如下

(1)conf存放配置:

Tomcat 之所以可以 root 启动和热部署,原因在如下:

(2)logs目录是各项日志:

(3)work目录存放class和页面文件:

三、搭建maven工程

1、搭建简单java工程,使用模板:maven-archetype-quickstart

配置配置 groupId 和 ArtifactId:

配置 maven 构建工具信息:

配置module信息:

Finish,完成。稍等片刻,选择右下角,enable auto import:

最终效果:

2、搭建maven web工程

使用模板:maven-archetype-webapp

使用模板创建的目录没有java和resources目录,执行创建然后,修改目录属性

最终效果:

3、不使用maven模板创建工程:

maven类型工程配置tomcat与上面普通Java web应用相同。

遇到的问题:

tomcat启动后,jsp未编译。

原因:项目Artifacts配置有问题

参考:正场项目的配置:

另附上正常启动tomcat日志,和eclipse不太一样,注意几个关键点:

D:\apache-tomcat-8.5.43\bin\catalina.bat run
[2019-10-11 02:19:02,554] Artifact activiti:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti"
Using CATALINA_HOME: "D:\apache-tomcat-8.5.43"
Using CATALINA_TMPDIR: "D:\apache-tomcat-8.5.43\temp"
Using JRE_HOME: "C:\java\jdk1.8.0_171"
Using CLASSPATH: "D:\apache-tomcat-8.5.43\bin\bootstrap.jar;D:\apache-tomcat-8.5.43\bin\tomcat-juli.jar"
Connected to the target VM, address: 'javadebug', transport: 'shared memory'
11-Oct-2019 14:19:03.683 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.43
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jul 4 2019 20:53:15 UTC
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.43.0
11-Oct-2019 14:19:03.687 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 7
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.1
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\java\jdk1.8.0_171\jre
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_171-b11
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
11-Oct-2019 14:19:03.688 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti
11-Oct-2019 14:19:03.689 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\apache-tomcat-8.5.43
11-Oct-2019 14:19:03.689 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti\conf\logging.properties
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dvisualvm.id=23258637664006
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_shmem,address=javadebug,suspend=y,server=n
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:D:\JetBrains\IntelliJIDEA2018.1.4\lib\rt\debugger-agent.jar=file:/C:/Users/Administrator/AppData/Local/Temp/capture4739.props
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
11-Oct-2019 14:19:03.690 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\apache-tomcat-8.5.43
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\apache-tomcat-8.5.43\temp
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
11-Oct-2019 14:19:03.691 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
11-Oct-2019 14:19:03.702 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c 28 May 2019]
11-Oct-2019 14:19:03.859 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
11-Oct-2019 14:19:03.877 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
11-Oct-2019 14:19:03.889 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 14:19:03.892 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
11-Oct-2019 14:19:03.892 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 685 ms
11-Oct-2019 14:19:03.933 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
11-Oct-2019 14:19:03.933 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.43
11-Oct-2019 14:19:03.948 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
11-Oct-2019 14:19:03.965 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 14:19:03.969 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 76 ms
Connected to server
[2019-10-11 02:19:04,230] Artifact activiti:war exploded: Artifact is being deployed, please wait...
11-Oct-2019 14:19:07.940 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[INFO] [2019-10-11 14:19:08] org.springframework.web.context.ContextLoader.initWebApplicationContext(305) | Root WebApplicationContext: initialization started
[INFO] [2019-10-11 14:19:08] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(582) | Refreshing Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from class path resource [spring/springContext.xml]
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from file [E:\workspace\activiti\target\activiti\WEB-INF\classes\spring\spring-activiti.xml]
[INFO] [2019-10-11 14:19:08] org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(172) | Loading properties file from URL [file:/E:/workspace/activiti/target/activiti/WEB-INF/classes/jdbc.properties]
[INFO] [2019-10-11 14:19:08] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(155) | JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[INFO] [2019-10-11 14:19:09] org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(133) | Loaded JDBC driver: com.mysql.jdbc.Driver
[INFO] [2019-10-11 14:19:09] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(543) | Mapped "{[/index/sayhi]}" onto public java.lang.String com.wjy.controller.IndexController.sayhi(org.springframework.ui.Model)
[INFO] [2019-10-11 14:19:09] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Fri Oct 11 14:19:08 CST 2019]; root of context hierarchy
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:10] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:11] org.activiti.engine.impl.ProcessEngineImpl.<init>(85) | ProcessEngine default created
[INFO] [2019-10-11 14:19:12] org.springframework.web.context.ContextLoader.initWebApplicationContext(345) | Root WebApplicationContext: initialization completed in 3948 ms
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.FrameworkServlet.initServletBean(489) | FrameworkServlet 'SpringMVC': initialization started
[INFO] [2019-10-11 14:19:12] org.springframework.context.support.AbstractApplicationContext.prepareRefresh(582) | Refreshing WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(317) | Loading XML bean definitions from class path resource [spring/springContext.xml]
[INFO] [2019-10-11 14:19:12] org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(172) | Loading properties file from URL [file:/E:/workspace/activiti/target/activiti/WEB-INF/classes/jdbc.properties]
[INFO] [2019-10-11 14:19:12] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.<init>(155) | JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
[INFO] [2019-10-11 14:19:12] org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(133) | Loaded JDBC driver: com.mysql.jdbc.Driver
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(543) | Mapped "{[/index/sayhi]}" onto public java.lang.String com.wjy.controller.IndexController.sayhi(org.springframework.ui.Model)
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache(534) | Looking for @ControllerAdvice: WebApplicationContext for namespace 'SpringMVC-servlet': startup date [Fri Oct 11 14:19:12 CST 2019]; parent: Root WebApplicationContext
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.handler.AbstractUrlHandlerMapping.registerHandler(354) | Mapped URL path [/resources/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0'
[INFO] [2019-10-11 14:19:12] org.springframework.web.servlet.FrameworkServlet.initServletBean(508) | FrameworkServlet 'SpringMVC': initialization completed in 499 ms
[2019-10-11 02:19:12,618] Artifact activiti:war exploded: Artifact is deployed successfully
[2019-10-11 02:19:12,618] Artifact activiti:war exploded: Deploy took 8,388 milliseconds
11-Oct-2019 14:19:13.949 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [D:\apache-tomcat-8.5.43\webapps\manager]
11-Oct-2019 14:19:14.058 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
11-Oct-2019 14:19:14.068 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\apache-tomcat-8.5.43\webapps\manager] has finished in [117] ms

关闭tomcat日志:

D:\apache-tomcat-8.5.43\bin\catalina.bat stop
Disconnected from the target VM, address: 'javadebug', transport: 'shared memory'
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2018.1\system\tomcat\Unnamed_activiti"
Using CATALINA_HOME: "D:\apache-tomcat-8.5.43"
Using CATALINA_TMPDIR: "D:\apache-tomcat-8.5.43\temp"
Using JRE_HOME: "C:\java\jdk1.8.0_171"
Using CLASSPATH: "D:\apache-tomcat-8.5.43\bin\bootstrap.jar;D:\apache-tomcat-8.5.43\bin\tomcat-juli.jar"
11-Oct-2019 13:02:47.620 信息 [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.
11-Oct-2019 13:02:47.621 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.709 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 13:02:47.790 信息 [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
11-Oct-2019 13:02:47.811 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.812 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
11-Oct-2019 13:02:47.814 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
11-Oct-2019 13:02:47.815 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
Disconnected from server

【IntelliJ IDEA学习之五】IntelliJ IDEA 搭建项目的更多相关文章

  1. (摘录笔记)JAVA学习笔记SSH整合搭建项目

    1:当然是导jar包啦: struts2: spring: hibernate: 至于这些jar包是什么作用,我想就不必我解释了,大家都懂得,ssh2基本的jar包: 还有一些其他jar包:strut ...

  2. 【IntelliJ IDEA学习之七】maven专题

    版本:IntelliJIDEA2018.1.4 一.maven全局设置 设置Runner 运行VM参数:-Xms128m -Xmx512m -Duser.language=zh -Dfile.enco ...

  3. 【IntelliJ IDEA学习之九】版本控制之Git和Github

    版本:IntelliJIDEA2018.1.4 [IntelliJ IDEA学习之九]版本控制之Git版本:IntelliJIDEA2018.1.4 一.git知识准备git是目前流行的分布式版本管理 ...

  4. 【IDEA使用技巧】(5) —— IntelliJ IDEA集成Tomcat部署Maven Web项目

    1.IntelliJ IDEA集成Tomcat部署Maven Web项目 1.1.IDEA构建Maven Web项目 使用IDEA来创建一个简单的Hello World的Maven Web项目,并使用 ...

  5. IntelliJ IDEA上创建maven Spring MVC项目

    IntelliJ IDEA上创建Maven Spring MVC项目 各软件版本 利用maven骨架建立一个webapp 建立相应的目录 配置Maven和SpringMVC 配置Maven的pom.x ...

  6. 如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目

    如何使用windows版Docker并在IntelliJ IDEA使用Docker运行Spring Cloud项目 #1:前提准备 1.1 首先请确认你的电脑是windows10专业版或企业版,只有这 ...

  7. Intellij IDEA创建git,maven的SpringMVC项目

    Intellij IDEA创建git,maven的SpringMVC项目 原文链接:http://www.cnblogs.com/blog5277/p/8906120.html 原文作者:博客园--曲 ...

  8. IntelliJ IDEA学习记录

    一.下载 地址:官网下载地址 二.安装 运行安装程序,一路下一步.注意选择安装路径. 三.基本概念 project:相当于donet中的解决方案(solution),eclipse中的工作空间(wor ...

  9. 在IntelliJ IDEA中创建Maven多模块项目

    在IntelliJ IDEA中创建Maven多模块项目 1,创建多模块项目选择File>New>Project 出现New Project窗口左侧导航选择Maven,勾选右侧的Create ...

随机推荐

  1. 2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失

    原文:2019-11-29-win7-无法启动-WPF-程序-D3Dcompiler_47.dll-丢失 title author date CreateTime categories win7 无法 ...

  2. MySQL UNION 操作符

    本教程为大家介绍 MySQL UNION 操作符的语法和实例. 描述 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复 ...

  3. asp.net mvc ViewBag常用操作

    1.视图获取json类型数据 var str = '@(ViewBag.loginInfoList)'; if ($.trim(str).length>0) { re = new RegExp( ...

  4. 在Go1.11.1中使用go module管理依赖

    今天试验了一下go的版本管理Go moule,只是安装了下,由于目前还没有进行大的项目开发,暂时没有碰到坑. 使用了模块后,可以不用在GOPATH中再建立src目录了,直接在GOPATH中就行 另外, ...

  5. 写给自己的 SOA 和 RPC 理解

    1.SOA SOA(Service-Oriented Architecture)面向服务架构,将应用程序不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来. SOA 不是 ...

  6. 实验吧——看起来有点难(sql盲注)

    题目地址:http://ctf5.shiyanbar.com/basic/inject/ 首先当然是拿admin/admin来试试啊,多次测试发现,有两种错误提示 1.数据库连接失败! 2.登录失败, ...

  7. DF1协议简述

    DF1协议 1.    概述 可编程控制器(PLC)因编程方便,抗干扰能力强,被广泛应用于各种领域.DF1协议是AB公司可编程控制器系统广泛支持的数据链路层通信协议,各系列可编程控制器及装有RSLin ...

  8. nginx上传大文件,413错误解决

    在nginx里增加了配置. client_max_body_size 500m; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_se ...

  9. qt 断点无效

    点击 工具 -->选项-->构建套件-->手动设置项,选择正确的编译器和调试器.

  10. volatile 关键字 和 i++ 原子性

    package com.mozq.multithread; /** * 深入理解Java虚拟机 volatile 关键字 和 i++ 原子性. */ public class VolatileTest ...