JAVA学习 DAY2 java程序运行、注意事项、转义字符

  本系列可作为JAVA学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励! 


 系列文章目录

JAVA学习 DAY1 初识JAVA

JAVA学习 DAY2 java程序运行、注意事项、转义字符

JAVA学习 DAY3 注释与编码规范讲解 


目录

 系列文章目录

前言

一、Java程序运行

1.需求说明

2. 开发步骤

二、注意事项

1.Java源文件与类结构

2.main()方法(程序入口)

3.语法规范

4.其他注意事项

5.关键总结

三、转义字符

1.常用转义字符

2.使用场景

3.注意事项

4.示例代码

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

本系列文章可以作为学习JAVA的笔记使用,本文除了小编的笔记,还整理了 宝藏老师 B站up主:韩顺平  的系列视频笔记:【零基础 快速学Java】韩顺平 零基础30天学会Java

一、Java程序运行

1.需求说明

基于sublime,要求开发一个 hello.java 程序,可以输出 "hello,world!"

关于这里的安装sublime可以点击文章:Sublime安装指导!只需四步!-CSDN博客,进行安装(有安装包)

2. 开发步骤

1) Java 代码编写到扩展名为 Hello.java 的文件中。

//演示java的开发步骤
//对代码的相关说明
//1.public class hello 表示hello是一个类,一个public共有的类
//2.hello{ }表示一个类的开始和结束
//3.public statistic void main(String[] args)表示一个主方法,即我们程序的入口
//4.main(){}表示方法的开始和结束
//5.System.out.println("hello,world");表示输出“hello,world”到屏幕
//6.;表示语句结束
public class hello{//编写一个main方法public static void main(String[] args){System.out.println("hello,world");}
}

2) 通过 javac 命令对该 java 文件进行编译,生成 .class 文件。

如果出现上述问题,需要修改文件的编码形式需要改变,变成GBK,记得保存

我们发现可以进行编译

3) 通过 java 命令对生成的 class 文件进行运行

二、注意事项

1.Java源文件与类结构

  1. 文件扩展名
    Java源文件以 .java 为扩展名,基本组成单位是类(class)
    示例:Hello.java 文件中必须包含一个 Hello 类。

  2. public类限制

    • 一个源文件中最多一个public类,其他非public类数量不限。
    • 若存在public类,文件名必须与该类名一致(区分大小写)。

2.main()方法(程序入口)

  1. 固定格式
    Java应用程序的入口是 main() 方法,格式严格:
    public static void main(String[] args) { ... }
     
    • 可写在public类或非public类中。
    • 若写在非public类中,运行时需指定该类名(如 java NonPublicClass)。

3.语法规范

  1. 大小写敏感
    Java严格区分大小写(如 System ≠ systemargs ≠ Args)。

  2. 语句与分号
    每条语句以 ; 结束,例如:

    int num = 10;  // 正确
    System.out.println("Hello") // 错误!缺少分号
  3. 大括号配对

    • 代码块必须用 {} 包裹,且成对出现
    • 推荐习惯:先写 {} 再填充内部代码。
      示例:
    public class Test {  // 先写外层{}public static void main(String[] args) {  // 再写内层{}// 代码逻辑}
    }

4.其他注意事项

  • 非public类的main方法
    若程序入口在非public类中,运行时需显式指定类名:
    java NonPublicClass  # 即使它不是public类

  示例代码

// 文件: Demo.java(必须与public类名一致)
public class Demo {  // public类public static void main(String[] args) {  // 入口方法System.out.println("Hello from public class!");}
}class Helper {  // 非public类public static void main(String[] args) {  // 也可作为入口System.out.println("Hello from non-public class!");}
}

5.关键总结

  • 文件与类名一致(针对public类)。
  • main()是唯一入口,可存在于任何类。
  • 语法严格:大小写、分号、大括号均需遵守。

掌握这些基础规则能避免常见的编译错误,是学习Java的第一步!

三、转义字符

在Java中,转义字符(Escape Characters) 是一种特殊的字符序列,用于表示无法直接输入或具有特殊含义的字符。它们以反斜杠 \ 开头,后跟特定字母或符号。以下是Java中常用的转义字符及其用途:

1.常用转义字符

转义序列含义示例代码输出结果
\t水平制表符(Tab)System.out.println("a\tb");a b
\n换行符System.out.println("a\nb");a
b
\r回车符(回到行首)System.out.println("a\rb");b(覆盖a
\"双引号System.out.println("\"Hello\"");"Hello"
\'单引号System.out.println("\'Java\'");'Java'
\\反斜杠本身System.out.println("C:\\\\Program Files");C:\\Program Files
\b退格符(删除前一个字符)System.out.println("a\bc");c(删除a
\f换页符(分页)较少使用,通常用于打印机控制-

2.使用场景

  1. 字符串中的特殊字符
    当需要在字符串中直接包含引号或反斜杠时,必须使用转义字符:

    String path = "C:\\\\Users\\\\Desktop";  // 正确表示路径
    String quote = "He said, \"Java is fun!\"";  // 输出:He said, "Java is fun!"
  2. 格式化输出
    控制文本的换行、缩进等:

    System.out.println("Line 1\nLine 2\tIndented");
    // 输出:
    // Line 1
    // Line 2    Indented
  3. 控制文本的换行、缩进等:

    System.out.println("Line 1\nLine 2\tIndented");
    // 输出:
    // Line 1
    // Line 2    Indented
  4. 正则表达式
    在正则中匹配特殊字符(如 .*)时需转义:

    String regex = "\\d+";  // 匹配数字

3.注意事项

  • Unicode转义:Java还支持 \uXXXX 格式的Unicode字符(如 \u0041 表示 'A'),但需在编译时处理。
  • 原始字符串(Java 15+):从Java 15开始,可用三引号 """ 表示原始字符串(无需转义大部分字符,但需注意换行符)。

4.示例代码

public class escapeCharsDemo {public static void main(String[] args) {System.out.println("1. Tab\tSeparated");System.out.println("2. Line 1\nLine 2");System.out.println("3. \"Quoted\"");System.out.println("4. Backslash: C:\\\\");System.out.println("5. a\bc");  // 输出:c(删除a)System.out.println("6. 123\b\b45");  // 输出:145 连续退格(删除'3'和'2')System.out.println("7. \bHello");  // 输出:Hello(无变化)退格超出字符串开头(无效果)System.out.println("ab\rc"); // 输出:cbSystem.out.println("5. ‘a’\b");  // 输出:c (删除a) \b在字符串末尾System.out.println("Hello\b");  // 输出:Hello(无变化)\b 试图将光标移动到 'o' 的左侧,但由于没有后续字符可覆盖,因此看不到任何效果。}}

掌握转义字符能帮助你更灵活地处理字符串输出、文件路径和正则表达式等场景。

总结

以上就是今天要讲的内容,本文简单记录了java学习的内容,仅作为一份简单的笔记使用,大家根据注释理解,您的点赞关注收藏就是对小编最大的鼓励!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual Studio 中的 MD、MTD、MDD、MT 选项详解

在Visual Studio中开发C++项目时,正确选择运行时库(runtime library)对于确保应用程序的性能、稳定性和兼容性至关重要。本文将详细介绍/MD, /MT, /MDd, 和 /MTd这些编译器选项的意义、应用场景及其区别。 MSVCRT.dll MSVCRT.dll 是 Microsoft Visual C++ Runtime Library …

EasyRTC嵌入式音视频通信SDK助力物联网/视频物联网音视频打造全场景应用

一、方案概述​ 随着物联网技术的飞速发展,视频物联网在各行业的应用日益广泛。实时音视频通信技术作为视频物联网的核心支撑,其性能直接影响着系统的交互体验和信息传递效率。EasyRTC作为一款成熟的音视频框架,具备低延迟、高画质、跨平台等…

栈的概念以及实现

目录: 一、栈的概念 二、栈的实现 1.栈的初始化 2.栈的销毁 3.入栈 4.出栈 5.获取栈顶数据 6.判断栈是否为空 7.获取栈的个数 三、代码 一、栈的概念 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端…

【Bluedroid】蓝牙启动之 SMP_Init 源码解析

蓝牙(安全管理协议,Security Management Protocol)是蓝牙设备安全通信的核心协议,负责配对、密钥协商和安全等级管理。本文围绕 Bluedroid SMP 协议的初始化流程展开,系统解析其核心控制块(tSMP_CB)的状态管理、与 L2CAP 层的接口注册,以及 P-256 椭圆曲线参数的初始化…

C++课设:考勤记录系统

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、项目背景与需求分析1. 传统考勤管理…

前端面试题之ES6保姆级教程

ES6 核心特性深度解析:现代 JavaScript 开发基石 2015 年发布的 ECMAScript 2015(ES6)彻底改变了 JavaScript 的编程范式,本文将全面剖析其核心特性及最佳实践 一、ES6 简介与背景 ECMAScript 6.0(简称 ES6&#xff0…

CTF:网络安全的实战演练场

文章目录 每日一句正能量前言一、CTF简介(一)什么是CTF?(二)CTF的历史 二、CTF比赛形式(一)线上赛(Online CTF)(二)线下赛(Offline CT…

如何自定义一个 Spring Boot Starter?

导语: 在后端 Java 面试中,Spring Boot 是绕不开的重点,而“如何自定义一个 Starter”作为进阶开发能力的体现,常被面试官用于考察候选人的工程架构思维与 Spring Boot 底层掌握程度。本文将带你深入理解自定义 Starter 的实现逻辑…

大学课程:计算机科学与技术专业主要课程,是否落伍了?

计算机科学与技术 计算机科学与技术(CS)是一门涵盖理论、系统、应用的综合学科,其课程体系围绕“计算机的底层原理、开发方法、技术创新”展开,既包含数学与理论基础,也涉及工程实践与前沿技术。以下是主要课程的分类…

docker-部署Nginx以及Tomcat

一、docker 部署Nginx 1、搜索镜像(nginx) [rootlocalhost /]# docker search nginx Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": dial tcp 192.133.77.133:443: connect: connection refused 简…

服务器信任质询

NSURLSession 与 NSURLAuthenticationMethodServerTrust —— 从零开始的“服务器信任质询”全流程 目标读者:刚接触 iOS 网络开发、准备理解 HTTPS 与证书校验细节的同学 出发点:搞清楚为什么会有“质询”、质询的触发时机、以及在 delegate 里怎么正确…

MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?

前言 在人工智能技术快速发展的2025年,MCP(Model Context Protocol,模型上下文协议)正逐渐成为AI Agent生态系统的关键基础设施。这一由Anthropic主导的开放协议,旨在解决AI模型与外部工具和数据源之间的连接难题,被业界形象地称…

测试 FreeSWITCH 的 mod_loopback

bgapi originate loopback/answer,park/default/inline park inline show channels as xml show calls as xml 有 2 个 channels 有 2 个 calls 比较有意思 在 loopback-a 是播放 wav 在 loopback-b 上可以录音 这就是回环 有什么用呢? 除了做测试&#x…

三维GIS开发cesium智慧地铁教程(4)城市白模加载与样式控制

一、添加3D瓦片 <!-- 核心依赖引入 --> <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"><!-- 模型数据路径 --> u…

Unity 中的颜色空间

一、颜色空间基本概念疑问 1、什么是颜色空间&#xff1f; 颜色空间是一个数学模型或系统&#xff0c;它定义了一套规则和方法&#xff0c;用来精确地描述、表示和组织颜色。​ 可以把它想象成一个三维坐标系​&#xff08;或者有时更多维&#xff09; 每个维度代表一…

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…

Python----目标检测(YOLO简介)

一、 YOLO简介 [YOLO](You Only Look Once&#xff09;是一种流行的物体检测和图像分割模型&#xff0c; 由华盛顿大学的约瑟夫-雷德蒙&#xff08;Joseph Redmon&#xff09;和阿里-法哈迪&#xff08;Ali Farhadi&#xff09;开发&#xff0c;YOLO 于 2015 年推出&#xff0c…

OLED(SSD306)移植全解-基于IIC

OLED&#xff08;SSD306&#xff09;移植全解-基于IIC 一&#xff0c;什么是oled?二&#xff0c;什么是IIC协议三&#xff0c;IIC通信流程&#xff1a;四&#xff0c;针对SSD1306的IIC通信流程&#xff08;结合芯片手册版&#xff09;1&#xff0c;主机发送起始信号2&#xff…

LangChain【7】之工具创建和错误处理策略

文章目录 一 LangChain 自定义工具概述二创建自定义工具的三种方法2.1 方法一&#xff1a;tool 装饰器2.1.1 同步方法案例2.1.2 工具描述方式1&#xff1a;传参2.1.3 工具描述方式2&#xff1a;文档字符串 2.2 方法二&#xff1a;StructuredTool类2.2.1 StructuredTool创建自定…

【信息系统项目管理师-选择真题】2025上半年(第二批)综合知识答案和详解(回忆版)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…