java之歌_【码歌】老薛带你编写第一个Java HelloWorld

2023-11-11

【码歌】老薛带你编写第一个Java HelloWorld

书接上文,这次主要分享如何编写第一个Java的Hello World程序,以及在编写过程当中会出现哪些问题和如何解决,以及最重要的错误整理。需要转载请注明出处:https://www.jianshu.com/p/ff6861870af3

1.1编写第一个Hello World 程序

在任意一个目录下新建一个后缀名是.java的文件。(注意文件的文件名首字母要大写)

在通过notepad++编写文件内容,下载地址;

public class Demo01{

public static void main(String[] args){

System.out.println("hello world");

}

}

PS: 在上述文件中的内容,要注意第一点,就是class后跟的是当前class的名称;注意Java中是以类为单位的,这里的class翻译为类。类的名称是Demo01,你会发现类名和你.java的文件名是保持一致的,必须这样,在后续内容中我会说明原因。

打开cmd,通过cd命令进入到当前.java文件的所在目录:

ff6861870af3

image

通过javac命令编译当前Demo01.java文件:

ff6861870af3

image

在code文件夹下就会多一个.class的文件,这个文件就是编译之后的字节码文件:

ff6861870af3

image

通过java命令执行当前Demeo01.class文件

ff6861870af3

image

这里要注意,java命令本身就是执行.class字节码文件,不需要编写后缀名称。在上一次的分享内容中已经强调过了。

1.2常见错误

1.2.1 文件名和类名不一致问题

1.2.1.1 报错信息:错误: 类Demo是公共的, 应在名为 Demo.java 的文件中声明

C:\Users\wawjy\Desktop\code>javac Demo01.java

Demo01.java:1: 错误: 类Demo是公共的, 应在名为 Demo.java 的文件中声明

public class Demo{

^

1 个错误

1.2.1.2报错阶段:编译阶段

1.2.1.3 解决办法:

改变class类的名称,将Demo改为Demo01,类名和.java文件的文件名保持一致。

改变.java文件的文件名称,将Demo01.java改为Demo,将文件名称和类名保持一致。

1.2.1.4 结论

在一个.java文件中,文件的名称要和编码中的类的名称保持一致,这里类必须要保证是public修饰的。我们在一个.java文件中将声明为public修饰的类,称之为主类,可以这样讲,叫一个.java文件的文件名称要和主类的类名保持一致。

1.2.2 一个.java文件中编写多个public修饰的类

1.2.2.1 代码案例

public class Demo{

public static void main(String[] args){

System.out.println("hello world");

}

}

public class T{

}

1.2.2.2 报错信息:错误: 类T是公共的, 应在名为 T.java 的文件中声明

>C:\Users\wawjy\Desktop\code>javac Demo.java

Demo.java:6: 错误: 类T是公共的, 应在名为 T.java 的文件中声明

public class T{

^

1 个错误

1.2.2.3 报错阶段:编译阶段

1.2.2.4 解决办法:

将class类T的修饰符public去掉。

1.2.2.5 结论

在一个.java文件中,只能存在一个public修饰的类。但是可以编写多个普通的class。总结上述两条,可以这样说:在一个.java文件中只能存在一个被public修饰的类,这个类称之为主类,主类的名称要和.java文件的文件名保持一致

1.2.3 没有定义完整的main方法

1.2.3.1 代码案例

C:\Users\wawjy\Desktop\code>javac Demo.java

C:\Users\wawjy\Desktop\code>java Demo

错误: 在类 Demo 中找不到 main 方法, 请将 main 方法定义为:

public static void main(String[] args)

否则 JavaFX 应用程序类必须扩展javafx.application.Application

1.2.3.3 报错阶段:执行阶段

1.2.3.4 解决办法:

将main方法定义为上面报错信息中一样的内容: public static void main(String[] args)

1.2.3.5 结论

在一个类中,我们将定义为public static void main(String[] args)这样格式的方法称之为主方法,主方法是程序的入口点,程序进入主方法之后依次执行里面的代码,在编译阶段,由于Demo中并没有语法错误,所以编译通过,但是在执行过程中,发现缺少程序的入口点,没有main方法,所以程序报错。注意,这里定义的方法中缺少static且main方法的名称也写错了。

1.2.4 编码中存在中文的标点符号

1.2.4.1 代码案例

public class Demo{

public void mian(String[] args){

//这里的双引号以及分号都是中文的

System.out.println(”hello world”);

}

}

1.2.4.2 报错信息:在类 Demo 中找不到 main 方法, 请将 main 方法定义为:

>javac Demo.java

Demo.java:3: 错误: 需要';'

System.out.println(鈥漢ello world鈥?)锛?

1.2.4.3 报错阶段:编译阶段

1.2.4.4 解决办法:

所有的标点符号都要编写为英文的符号,不然编译时期会报错。

1.2.4.5 结论

在整个Java中,所有的标点符号都需要编写英文的符号。

1.2.5:其它常见错误

案例

错误描述

解决办法

案例1,将String编写为string

编译错误

自己查看一些单词的拼写,大小写千万注意。

案例2,字符集合不统一

编译错误,出现错误: 非法字符: '\uff1b'

千万注意字符集合,一般情况下的我们的程序需要注意字符集合的地方: ①:.java文件的本身字符集合(可以通过文件另存为等方式进行更改) ②:cmd本身解码是使用的字符集合是GBK

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java之歌_【码歌】老薛带你编写第一个Java HelloWorld 的相关文章

  • git patch 说明

    联网的模式下就不详述了 可以使用git fetch git pull git checkout git commit git push等操作同步 本文主要说一下离线模式下 不能使用上述命令的情况下 怎么同步版本 假设目前最新开发版本 git
  • H5当前页面选项卡切换,滚动顶部【记录】

    CSS样式中传入变量 鑫动了的主页 欢迎各位小伙伴 前端小白的成长之路 一起学习 一起成长 在H5中当前的页面难免会有多个选项卡切换的需求 在切换时 同一页面会记住相同位置 用户体验不是很好 我的需求就是切换选项卡 重回顶部 切记 targ
  • mongodb启动不了:child process failed, exited with error number 48

    问题 启动mongodb的时候 发现起不来 报错 child process failed exited with error number 48然后先去 var log mongo mongod log 查看启动的日志 可能原因 应该是没
  • excel表格上传

    一 员工页面跳转
  • 用户关闭浏览器事件

    一直以来用户非正常退出系统 即 用户按右上角的 X 按纽后 服务器端 session 无法销毁 一直要等到其过期时间到了才销毁 这样通过session进行在线人数统计就无法准确了 我今天试了才发现 其实关闭浏览器事件可以捕捉到的 那么我们就
  • Spring Cloud简介

    一 Spring Cloud简介 SpringCloud是微服务架构中的集成 将一系列优秀的组件进行了整合 基于SpringBoot构建 对熟希spring的程序员来说 表容易上手 通过简单的注解 就可以快速的在应用中配置一下常用模块并构建
  • java正则表达式-案例代码

    转载请注明出处 http blog csdn net droyon article details 8635735 jdk在线api http docs oracle com javase 7 docs api index html 选择j
  • 使用 Element 实现首页

    完成首页 使用 Container 布局容器 结构
  • 背景渐变,多层背景图

    背景渐变 多层背景图 一 线性渐变 linear gradient 二 径向渐变 三 背景大小 一 线性渐变 linear gradient 为了创建一个线性渐变 你必须至少定义两种颜色结点 颜色结点即你想要呈现平稳过渡的颜色 同时 你也可
  • Relying upon circular references is discouraged and they are prohibited by default.循环依赖bug解决

    Relying upon circular references is discouraged and they are prohibited by default 循环依赖bug解决 出现的bug大概意思是 不鼓励依赖循环引用 默认情况下
  • 肌电信号采集电路分析

    最近在开发肌电信号的采集 表面肌电信号是非常微弱的生物信号 正常人体表面肌电信号赋值为0 1 5mV 主要能量频段集中在10 150Hz 电路主要是根据原始信号 设计相应的放大电路 滤波电路 下面直接放原理图说明 一级放大电路 一级放大电路
  • Spring MVC使用注解实现账户注册与登陆

    涉及到的注解 Controller 控制器类 RequestMapping 映射路径 RequestParam 用于将指定的请求参数赋值给方法中的形参 定义域对象 User1 用来接受并封装前台传递的数据 package com wen d
  • Java基础(七)——eclipse、集合(容器)

    集合 1 集合框架 l 所谓的框架就是一个类库的集合 集合框架就是一个用来表示和操作集合的统一的架构 它包含了实现集合的接口和类 l 集合框架中不同的集合类有各自不同的数据结构 所以在使用中要根据应用的性能要求来选择不用的集合类 l 集合类
  • C语言指针初阶

    思维导图 目录 编辑 1 指针与内存 1 1内存中的门牌号 地址 是如何编号的 1 2一个指针的大小 在32位平台上 1 3内存总空间大小 2 指针的使用 2 1指针的构成 2 2指针类型的作用 1 决定指针访问的权限的大小 2 决定指针走
  • 在家带娃有没有什么副业可以做?在家带娃的副业有哪些?

    很多朋友在有了自己的孩子之后 为了给孩子一个良好的成长环境 就会辞去工作专心在家带孩子 不过 考虑生活开销的支出问题 还是会想要做点副业赚钱 那在家带孩子可以做什么副业呢 1 数据录入 这是一个大行业 几乎所有人都可以做 需要的仅仅是一台能
  • Oracle TNS简述

    什么是TNS TNS是Oracle Net的一部分 专门用来管理和配置Oracle数据库和客户端连接的一个工具 在大多数情况下客户端和数据库要通讯 必须配置TNS 当然在少数情况下 不用配置TNS也可以连接Oracle数据库 比如通过JDB
  • java使用xfire创建和调用webservices

    1 创建工程 File gt New gt Web Service Project 弹出Web Service Project窗口 需要填写Project Name 例子是Demo 选择XFire 然后一路next 直到完成 创建完成后 打
  • 如何让Element UI的Message消息提示每次只弹出一个

    Element UI的Message消息提示是点击一次触发一次的 在开发的时候经常会作为一些校验提示 但是公司的测试人员在进行测试时会一直点 然后就会出现如下图的情况 虽然客户使用的时候一般来说不会出现这种情况 毕竟客户不会闲着没事一直点点
  • 用 visio 2013反转图形或镜像图形

    软件版本 visio 2013 选择待反转图形 依次点击 开始 位置 旋转形状 即可根据需求进行图形反转 若需要进行图形镜像操作 可提前将图形复制出一份 将复制出来的图形进行垂直反转或水平反转

随机推荐

  • 2020年tensorflow定制训练模型笔记(3)——开始训练

    现在 我们开始训练文件 这里 我将用一些训练好的模型来做迁移训练 这里简单介绍一下迁移训练 迁移训练就是在别人训练的模型基础上继续训练 这样我们的模型训练就不是从零开始 加快速度以及提高准确率 我讲的比较简单 参考网址在这 https bl
  • 华为OD题目:快递投放问题

    华为OD题目 快递投放问题 有N个快递站点用字符串标识 某些站点之间有道路连接 每个站点有一些包裹要运输 每个站点间的包裹不重复 路上有检查站会导致部分货物无法通行 计算哪些货物无法正常投递 输入描述 1 第一行输入M N M个包裹N个道路
  • python中的random和range

    random import random print random randint 1 10 产生 1 到 10 的一个整数型随机数 包括1和10 print random random 产生 0 到 1 之间的随机浮点数 print ra
  • 靶场 : upload-labs1-10

    搭建 用phpstudy搭建的 搭建很简单 下载源码 放置在phpstudy的根目录下 在phpstudy中创建 步骤 这里上传的文件内容是一句话木马 pass 1 上传一个php文件试一试 传不上的 使用的白名单过滤的 我们考虑一下是什么
  • 12个超好用的配色网站

    每次做海报做ppt的时候总是为配色发愁 到底怎样才能调出好看的配色方案呢 调着调着感觉自己已经是个色盲了 今天小编就给你们带来了福利 12个超好用的配色网站推荐 01 Material Palette 网站地址 http www mater
  • 【SpringCloud】四、Spring Cloud Config

    Spring Cloud Config 前言 一 什么是配置中心 1 为什么需要分布式配置中心 2 常用分布式配置中心框架 二 什么是Spring Cloud Config 1 Springcloud config 的工作原理 2 构建 S
  • truffle教程

    直接在geth的控制台通过solc进行编译部署的示例已经很多了 比如这篇博客 此处不再赘述 本文主要演示怎样通过truffle部署以太坊智能合约 truffle是一个以太坊智能合约开发框架 它会帮你做很多琐碎的事情 安装使用都很简单 1 安
  • element-ui页面加载正确,页码错误

    期望效果 进入详情前第二页 从详情返回后还在第二页 先说我之前的误区 哈哈 之前想的是路由跳转时传参到详情页 详情页跳回时再传回来 绕了一圈 并不是最好的解决方案 解决办法 sessionStorage或localStorage 本质上最正
  • 深入理解 ES6 Promise

    https segmentfault com a 1190000020934044 引语 最近一段时间在重温ES6 Promise应该是是ES6新特性中非常重要的一部分内容 其实Promise在我日常开发中已经用得比较多 但大多数时候只是知
  • 智能优化算法之粒子群算法(PSO)的实现(Python附源码)

    一 粒子群算法的实现思路 粒子群算法 Particle Swarm Optimization PSO 是于1995年被Kennedy等人提出的一种模拟自然界中鸟群进行觅食过程的一种群智能优化算法 该算法将待求解问题的每一个候选解视作鸟群中的
  • 不得不会的代码注释工具——doxygen

    不得不会的代码注释工具 doxygen 下载 官网下载二进制或者直接用yum或apt工具下载 使用流程 进入项目目录生成doxygen配置文件 doxygen g 修改doxygen配置文件 程序文档输出目录 OUTPUT DIRECTOR
  • 获取List中的数据的实现方法

    大家都知道List是很好的存储数据的集合类 但是获取读取list中数据的方法你知道几种呢 一下是我知道的方法分享给大家 List
  • 黑客帝国全集故事情节解析

    黑客帝国全集故事情节解析 转载自 http www cnitblog com CreatorChen archive 2007 09 27 34083 html 一 前言 从 Matrix I 到 Matrix III 整整四年 一对名叫沃
  • 使用JMeter模拟多IP发送请求(IP欺骗)

    文章目录 一 IP欺骗的使用场景 二 JMeter如何设置IP欺骗 1 获取可用IP 2 配置IP 3 JMeter中配置IP欺骗 三 注意 前言 如果精通LoadRunner 可以直接使用LoadRunner进行IP欺骗 这里介绍如何使用
  • CTF练题(6)棋盘密码解密

    借一道题引出棋盘解密 题目详情如下 题目来自 青少年CTF训练平台 原中学生CTF平台 青少年CTF qsnctf com 题目给予的密文如下 解题 1 使用棋盘密码解码网站进行解密 网站如下 棋盘密码在线加密解密 千千秀字 qqxiuzi
  • 图像分类:Pytorch图像分类之--LetNet模型

    文章目录 前言 LetNet简介 程序的实现 model py的实现 LetNet模型操作流程 经过Conv卷积后输出尺寸的计算公式如下 Conv2d 函数介绍 MaxPool2d 函数介绍 Tensor的展平 view train py
  • oracle 关联加索引,给left join关联关系字段加索引

    给left join关联关系字段加索引 2018 07 04 left join是相当耗资源的操作 如果关联的字段没有索引的话 速度是很慢的 所以如果有left join的话 最好用索引字段取关联 创建索引会消耗大量资源 会导致数据库死锁
  • MySQL 联表查询重复数据并删除(子查询删除记录) SQL优化

    1 业务逻辑及表介绍 数据库表介绍 table a 主表 小表 表数据不可重复 table b 流水表 大表 记录审核流水数据 注 两表表结构大致一致 流水表增加一个审核状态的字段 业务逻辑 主表保存唯一数据 流水表记录审核流水数据 用于后
  • CSDN高校俱乐部“名师高校行”——贵州遵义站

    高校俱乐部简介 CSDN高校俱乐部是由CSDN发起 大学生自发加入的IT技术学习型组织 俱乐部至今已收到数百所高校成立技术社团的申请 已在全国100多所高校建立技术社团 俱乐部由此搭建起行业与校园之间的桥梁 为各高校社团提供大咖直播 线下巡
  • java之歌_【码歌】老薛带你编写第一个Java HelloWorld

    码歌 老薛带你编写第一个Java HelloWorld 书接上文 这次主要分享如何编写第一个Java的Hello World程序 以及在编写过程当中会出现哪些问题和如何解决 以及最重要的错误整理 需要转载请注明出处 https www ji