当前位置: 首页 > news >正文

新手初步学习Java——从c语言到Java

新手初步学习Java——从C语言到Java

作为一个从C语言的学习突然转向Java的学习的大一新生,C语言与Java二者之间的区别确实让我在开始学习Java的一段时间难以接受。但在经历三周时间的学习,我开始由一开始使用Java时对其使用的要求的不明所以到现在的初步了解。虽然仍然对Java的理解仍然不深,甚至可能有误,但是我还是想分享我作为一个Java小白在学习Java时的一个小小感悟。如有错误,还望大佬在评论区指正。

C语言与Java程序运行的入口

在C语言中main函数为C语言程序的入口,一个项目中只能有一个main函数。

#include<stdio.h>#include<stdlib.h>intmain(){printf("Hello world!\n");return0;}

而在Java中public static void main(String[] args)为Java程序的人口,jar包中只能指定一个主类,但项目中每个类都可以有自己的main方法。

publicclassMain{publicstaticvoidmain(String[]args){System.out.printf("Hello and welcome!");for(inti=1;i<=5;i++){System.out.println("i = "+i);}}}

在一开始Java的学习当中,我曾把上述示例代码写成这样:

publicclassMain{publicstaticvoidmain(){System.out.printf("Hello and welcome!");for(inti=1;i<=5;i++){System.out.println("i = "+i);}}}

我一开始觉得public static void main(String[] args)只是传入一个可有可无的字符串数组便将其删掉,却直接让编译器中的文件不可执行。在查找资料的过程中我才发现Java与C语言的区别:C语言main的调用者为操作系统,在编译后为机器码并直接在CPU上跑;Java的调用者为Java虚拟机(JVM),在初次编译后将其编译为机器码,再通过操作系统在CPU上运行。JVM从public static void main(String[] args)处开始运行程序,String[] args为JVM设计之初约定的固定写法用来接受命令行参数,public让JVM可以调用,static是因为JVM启动时还没有对象,JVM只认void返回值和main。

对于Java程序入口的认识让我了解到了Java的JVM对其的重要性,也是我学习Java的开始。如有其他见解,欢迎评论区交流。

http://www.jsqmd.com/news/674454/

相关文章:

  • QQ空间说说备份神器:GetQzonehistory完整使用指南
  • CSS如何创建三角箭头图标_通过border透明技巧实现
  • 【CTF那些事儿】ascii.txt
  • ARM地址转换与分支记录缓冲区(BRB)机制详解
  • GitX智能版本控制助手:告别Git命令行,让版本控制更高效
  • 3、IoT物理极限架构最佳实践:一文讲透端边双主(可分可合,非传统高可用)
  • HTML函数在旧版Windows跑得动吗_系统版本与硬件协同影响【指南】
  • HTML5中Canvas模拟物理重力与碰撞反弹的逻辑
  • 因漏洞数量激增,NIST 已停止对低优先级漏洞的评分
  • 摄影入门 | 从光到电:数码相机的成像核心
  • 【CTF那些事儿】b64steg.txt
  • Vite现代化的前端构建工具详解
  • c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
  • 别再让LaTeX表格乱跑了!用[h]和[htbp]参数精准控制表格位置(附Overleaf实战)
  • 3步快速掌握Winhance中文版:让Windows系统焕然一新的终极工具
  • RAG检索增强生成:让大模型拥有最新知识
  • GitHub Actions 工作流深入解析:从核心概念到高级实践
  • C# .NET 11 AI模型推理加速失败全复盘(2024生产环境117例报错日志深度溯源)
  • 你以为开题报告是在写作文?好写作AI告诉你,它其实是一次“决策”
  • 西门子S7-1500暖通空调冷水机组PLC程序案例, 硬件采用西门子1500CPU+ET200...
  • Go语言的sync.RWMutex中的策略性能优化
  • 短信验证码接口被刷如何防范?
  • 一篇吃透:Python 数据清洗与预处理企业级实战
  • Gerrit智能通知跑马灯插件:打造100%触达的开发者通知系统
  • 【CTF那些事儿】diff_Morse.txt
  • 孤能子视角:AI智能原理,“所有智能,都是茧房里的耦合“,以及人的主场
  • ssm校园失物招领信息系统小程序(文档+源码)_kaic
  • 亚马逊 5 月 20 日停旧款 Kindle 支持,旧设备何去何从?
  • c++ intel sgx编程 c++如何编写在enclave中运行的安全代码
  • Linux服务器新手入门:不懂命令行也能管理服务器的完整指南