摘要:写 Java 后端 → 用 IntelliJ IDEA;写 Python 数据分析 → 用 PyCharm;写前端网页 → 用 WebStorm;临时写小脚本、跨语言编辑 → 用 VS Code(轻量灵活)。
IDE 就是 集成了写代码、编译运行、找 bug 等功能的“一站式编程工具” ,不用在多个软件间来回跳。
不同场景选不同 IDE:
写 Java 后端 → 用 IntelliJ IDEA;写 Python 数据分析 → 用 PyCharm;写前端网页 → 用 WebStorm;临时写小脚本、跨语言编辑 → 用 VS Code(轻量灵活)。JetBrains 是一家知名的捷克软件开发公司,在全球 #技术分享多地(俄罗斯圣彼得堡、美国麻省波士顿等)设有办公室。它最广为人知的是各类编程语言的集成开发环境(IDE),能助力开发者更高效编程:
IntelliJ IDEA :Java开发的核心工具,市场占有率已超过Eclipse。WebStorm :专注前端,支持JavaScript、HTML5、CSS3等技术开发。PyCharm :Python开发利器,适配人工智能、大数据等领域需求。PhpStorm :为PHP开发量身打造。RubyMine :用于Ruby/Rails开发。AppCode :可替代Xcode,支持Objective - C/Swift开发苹果生态应用。CLion :专攻C/C++开发。DataGrip :聚焦数据库与SQL相关开发。Rider :服务于.NET开发。GoLand :针对Go语言,该语言在区块链领域应用广泛。其官网是 www.jetbrains.com
小型简单项目 :Ant更具优势。小型项目的构建流程相对简单,不需要过于复杂的约定和默认设置,这时Ant灵活的手动配置方式可以按需定制构建步骤, 避免引入过多不必要的约定和依赖。例如,开发一个简单的Java命令行工具,可能只需要简单几步编译和打包操作,使用Ant可以快速编写简洁的构建脚本, 直接完成这些操作。大型复杂项目 :Maven更合适。大型项目通常涉及众多模块、大量依赖以及复杂的构建流程,Maven的约定优于配置原则,能让团队成员快速理解项目结构和构建逻辑,减少沟通成本。其强大的依赖管理可以自动处理复杂的依赖传递关系,避免依赖冲突。比如一个大型的企业级Java Web项目,包含多个子模块,依赖众多第三方库,Maven能轻松管理这些依赖, 并按照标准的构建生命周期(清理、编译、测试、打包、部署等)来执行构建任务。对新手友好度 :Maven更胜一筹。Maven的默认项目结构和构建流程对于新手来说更容易理解和遵循,上手门槛较低。即使是没有太多构建工具使用经验的开发者,也能快速创建和运行一个基本的Maven项目。而Ant需要开发者手动编写大量XML配置来定义构建任务,对构建流程和XML语法都要有较好的掌握, 学习成本相对较高。团队协作 :Maven在团队协作中更具优势。因为其约定是统一的,新成员加入项目后,能迅速熟悉项目的构建方式,减少因为配置差异导致的问题。而Ant的配置因人而异,不同开发者编写的Ant构建脚本风格和结构可能差异较大,团队成员接手时需要花费更多时间去理解和维护。功能扩展 :Maven的插件生态系统更为丰富和成熟。无论是代码质量检查(如Checkstyle插件)、测试覆盖率统计(如Surefire和Failsafe插件), 还是生成项目文档(如Javadoc插件)等,都能找到对应的插件,并且配置和使用相对简单。Ant虽然也有插件,但数量和成熟度不如Maven, 并且在使用Ant插件时,开发者往往需要更多地了解插件的实现细节和配置方式。高度定制化 :Ant表现更好。如果项目有非常特殊的构建需求,无法通过Maven的默认约定和插件满足时,Ant的灵活性就能发挥作用。开发者可以完全按照自己的需求编写构建脚本,实现任何复杂的构建逻辑。但这也意味着开发者需要投入更多的时间和精力来维护这些定制化的脚本。总体而言,对于大多数常规的 Java 项目,尤其是中大型项目和团队协作项目,Maven 是更常用和推荐的选择;而当项目对构建流程有独特、高度定制化的需求,或者项目规模较小、构建简单时,Ant 也能很好地完成构建任务。
静态导入是 Java 中用于直接导入类的静态成员(静态方法、静态变量)的语法,让你无需通过类名就能直接使用这些成员。
“当静态导入的名称数量达到3个时,使用静态通配符导入”是 IDEA 的代码风格规则,举例说明:
如果你从 java.lang.Math 类中导入1-2个静态成员,IDEA会保持显式导入:import static java.lang.Math.PI;import static java.lang.Math.abs;当导入的静态成员达到3个及以上时,IDEA会自动改用通配符 * 简化导入:import static java.lang.Math.*;这样做的目的是减少导入语句的数量,让代码更简洁(尤其当需要使用某个类的多个静态成员时)。
显示行号、方法和方法间的分隔符:忽略大小写进行提示(比如new String,小写s也提示)多个类不隐藏,多行显示设置默认的字体,字体大小,字体行间距:(编辑区和控制台都会变化)修改代码中注释的字体颜色:修改类头的文档注释信息:---》注意:对新建的类才有效/*** @author : xx* @date: ${DATE} - ${MONTH} - ${DAY} - ${TIME}* @Description: ${PACKAGE_NAME}* @version: 1.0*/设置项目文件编码:自动编译:在开启 “Build project automatically(自动构建项目)” 后,集成开发环境(如 IntelliJ IDEA)的自动编译是 实时触发 的。
省电模式在 IntelliJ IDEA 等 JetBrains 系列 IDE 中,开启省电模式后,IDE 会关闭一些比较消耗资源的功能,比如代码自动补全的高级提示、实时代码检查与高亮、自动构建(包括自动编译等)等,以此来减少 CPU、内存等资源的占用,达到 “省电”(节省系统资源)的目的,适合在电脑性能不足或者想降低 IDE 资源消耗时使用。
代码显示结构导入jar包生成序列化版本号小心与输入法快捷键冲突
代码向上/下移动:Ctrl + Shift + Up / DownC 搜索类: Ctrl+NC 多行注释:Ctrl + Shift + /(选中)重命名文件/目录:Shift+F6for循环:foriC 代码块包围:Ctrl+Alt+T代码自动补全提示:(自己设置为Alt /)C 代码层层调用的快捷键:Ctrl Alt 左/右显示代码结构 : alt + 7显示导航栏: alt +1代码模版Postfix Completion(后缀补全)里的现成快捷方式,比如打 .sout 能快速生成打印代码,这些自带的快捷方式你改不了 。
那可以添加新的,就可以用了,比如.sout,添加新的.print 也可以用
soutp:打印方法的形参soutm:打印方法的名字soutv:打印变量soutp(打印方法形参)public void test(int a, String b) {}System.out.println("a = " + a + ", b = " + b);soutm(打印当前方法名)public void login { System.out.println("login");}soutv(打印变量值)String name = "张三";System.out.println("name = " + name);直接 soutv:输出最近的变量
List names = Arrays.asList("张三", "李四", "王五");iter → 自动生成增强 for 循环:for (String name : names) { }int numbers = {1, 2, 3, 4};iter → 生成:for (int number : numbers) { }List names = Arrays.asList("张三", "李四", "王五");iter → 自动生成增强 for 循环:for (String name : names) { }int numbers = {1, 2, 3, 4};for (int number : numbers) { }迭代器(Iterator)的快捷生成方式,在 IntelliJ IDEA 中,输入 itco 可以快速生成带迭代器的循环(包含 hasNext 和 next 方法)。
举例:
List books = new ArrayList;books.add("Java编程");books.add("Python入门");for (Iterator iterator = books.iterator; iterator.hasNext; ) { String book = iterator.next; }List fruits = new ArrayList; fruits.add("苹果"); fruits.add("香蕉");Iterator it = fruits.iterator;while (it.hasNext) { String fruit = it.next; }这里的 iterator.hasNext 就是判断是否有下一个元素,iterator.next 就是获取下一个元素,和你说的 it->next 逻辑一致,是遍历集合的另一种常用方式(迭代器循环),和 iter 生成的增强 for 循环作用类似,但实现方式不同。
判断nullifn 或者 .null :判断是否为 null (if null) inn 或者 .nn :判断不等于 null (if not null)
ifn 或 .null (判断为 null)比如有变量 String name = ...;
输入 name.ifn 或 name.null 按回车,会生成:if (name == null) {}inn 或 .nn (判断不为 null)
同样对变量 name ,输入 name.inn 或 name.nn 按回车,会生成:if (name != null) {}
这些快捷方式能快速生成 null 判断的代码块,不用手动敲 == null 或 != null ,尤其在处理可能为 null 的变量时很方便~
Debug 的优化设置:更加节省内存空间:设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少。
是的,随着技术发展和 IDE 功能迭代,IntelliJ IDEA 后续版本(尤其是较新的版本)对 Java EE 相关的设置界面进行了调整,原本的“Java Enterprise”等直接关联 Java EE 的选项呈现形式发生了变化 。
现在若要创建 Java Web 项目(基于 Servlet、JSP 等 Java EE 技术栈),通常可以通过以下方式:
使用 Maven/Gradle 管理项目 :创建 Maven 项目后,在 pom.xml 中引入 Java EE(或 Jakarta EE,Java EE 后续演进的规范)相关依赖(如 jakarta.servlet-api 等),来搭建 Web 应用所需的环境。借助框架支持 :比如结合 Spring Boot 等框架来快速构建 Web 应用,Spring Boot 会自动整合 Servlet 容器等 Web 相关资源,简化了配置流程。这种调整也是为了适配 Java EE 向 Jakarta EE 的演进,以及更贴合现代 Java Web 开发中依赖管理和框架整合的主流方式。
Jakarta EE 以前叫 Java EE,是一套开发企业级软件(像银行系统、大型电商后台)的标准 ,被 Eclipse 基金会接手改名后,继续进化。
Oracle 是将 Java EE 的开发权捐赠给了 Eclipse 基金会。
Oracle 将 Java EE 移交给 Eclipse 基金会主要有以下原因:
商业利益考量 :Oracle作为一家上市公司,首要任务是为股东创造利润。维护、推广和推进Java EE平台的成本高昂,而单个供应商从该平台获得的直接经济收益相对有限。Oracle可能认为继续投入Java EE无法获得理想的投资回报率,因此选择将其捐赠给开源组织。开源社区发展需求 :Java EE一直是一个多供应商的生态系统,需要更开放、协作的环境来推动技术发展。Eclipse基金会是一个非营利性组织,专注于开源项目的发展,能够更好地促进社区成员的参与和贡献,使Java EE的标准演进更加敏捷、灵活和开放。商标和版权限制 :Oracle拥有“Java”商标权,Eclipse基金会接手Java EE后,需要对其进行更名。经过社区投票,最终选择了“Jakarta EE”作为新名称,以满足Oracle的商标使用准则和法律要求。用 IDEA 里的 Jakarta EE 选项创建的项目,可以是 Java Web 项目 ,但范围更广。
如果你选了 Servlet、JSP 等 Web 相关技术,那就是标准的 Java Web 项目(和以前的 Java EE Web 项目本质一样,只是规范换了个名字叫 Jakarta EE)。它还能创建更复杂的企业级应用(比如包含 EJB、JPA 等组件的大型系统),不局限于 Web 场景。简单说:Jakarta EE 包含了 Java Web 所需的技术规范,所以用它能创建 Java Web 项目,还能做更多企业级开发。
webapp 就是 Web 应用程序,它包含网页的静态内容(像 HTML、CSS、图片这些直接给用户看的),还有能处理业务逻辑的动态代码(比如登录、查数据的后台程序),以及配置文件、依赖的各种库,部署到服务器上,用户用浏览器就能访问。
日常说的 “web 项目”,基本就是在开发 webapp—— 你开发一个 web 项目(比如做个公司内部的请假系统、一个小电商网站),开发完部署到服务器上,用户用浏览器打开就能用,这个能直接用的 “成品”,就是 webapp。简单说:web 项目是开发过程中的叫法,webapp 是开发完能实际用的 “在线软件”,本质是一回事的不同阶段 / 说法。
IDEA 里,每个部署到 Tomcat 的项目,会在 ...\.IntelliJIdea2017.2\system\tomcat 下生成配置文件。但项目实际的 Web 内容不在这,配置文件(比如 ROOT.xml )里写了项目真实文件的路径,Tomcat 启动时就按这路径去找资源运行。
C 盘里一个 xml,这个 xml 里有项目真实文件路径,根据此路径去找到资源运行(资源在 classes/artifacts 里)
来源:墨码行者