java入门

一、java的运行机制

高级语言的运行机制主要有编译型和解释型两种。 C/C++属于编译型语言,由专门的编译器针对特定的操作系统平台进行翻译,生成可执行代码,特定是效率高,但是不利于跨平台开发。python属于解释型语言,使用专门的解释器对源文件逐行成特定操作系统平台的机器码,并立即执行(解释型语言没有编译器,但可以认为每次执行解释型源码都进行一次编译、链接、执行)这使得解释型语言的源码可以跨平台使用(只需不同平台安装不同解释器),但是效率较低。而java的运行机制与以上两种都有不同,java需要编译但是编译生成的不是特定平台的机器码,而是生成与平台无关的字节码,然后由java解释器进行解释执行。java之所以能这样操作是因为引入了java虚拟机(JVM)的概念,每种平台都有自己的JVM,而不同的JVM具有相同的面向java编译器的接口,这样编写的java源码就可以直接用编译器生成不同环境都能解释运行的字节码了。

二、写第一个java程序

1、安装JKD并配置环境变量,这部分参照上一篇博客 Android开发环境的搭建

2、使用记事本或其他文本工具写程序

1 public class helloworld
2 {
3     public static void main(String[] args)
4    {
5         System.out.println("hello world");
6     }
7 }

保存成helloworld.java

然后在命令行里切换到源程序目录,javac是编译java程序的指令 ,java是解释执行java的指令

这里使用Editplus代替命令行

先配置以上两个命令,选择工具-配置自定义工具,然后完成javac和java命令的配置

然后就可以“工具”中就多出了编译java程序和运行java程序两个东西了,分别点一遍,hello world出现了。

三、java的基本规则

1、任何代码必须以类的形式出现

2、java程序的入口程序必须写成

public static void main(String[] args)
{
}

3、如果java源程序里定了public类,那么主文件名必须与该类名相同。(java程序中最多只能定义一个public类)

4、一个java源文件只定义一个类,不同类定义在不同源文件中

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

python3--协程,greenlet模块,gevent模块

之前学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知...

2733
来自专栏极客编程

Python超级明星WEB开发框架Flask简明教程

和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模板引擎Jinja:

1392
来自专栏大前端_Web

NodeJS学习二CommonJS规范

Node程序由许多个模块组成,每个模块就是一个文件。Node模块采用了CommonJS规范。

1442
来自专栏chenssy

【死磕Java并发】—–J.U.C之Condition

在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE...

3514
来自专栏电光石火

给博客添加节日雪花

二话不说先上效果图: ? 需要的朋友请看下面的说明,对JQ比较了解的朋友可以直接下载。 下载地址:jQuery圣诞下雪花.rar 注意事项 ...

2297
来自专栏小程序·云开发专栏

云函数之间互相调用实现邮件发送

很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻...

7.6K2
来自专栏我就是马云飞

设计模式二十四章经之命令模式

862
来自专栏乐百川的学习频道

Python学习笔记 模块介绍

模块 导入模块 Python官方教程让我们在Python解释器中练习。但是当我们结束解释器,所有的代码都消失了。如果我们希望让代码永久保存的话,就需要将它们保存...

1856
来自专栏LanceToBigData

JavaWeb(一)Servlet中乱码解决与转发和重定向的区别

前言   前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一、request请求参数出现乱码问题 1.1、ge...

30810
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET - 插件接口IModule

  我们知道,要基于平台(容器)+插件的这种模式进行开发,我们必须定义一组契约,用于约束模块插件开发,也就是说,模块插件需要遵守一定的标准进行开发,才能正常被容...

2387

扫码关注云+社区

领取腾讯云代金券