专栏首页java学习1.3java的运行原理

1.3java的运行原理

java的运行原理

这里我们简单分析一下我们的第一个应用程序,其中涉及到很多没有接触过的概念,大家可先阅读以下,以后会详细讲解。重点是理解java的运行原理。

一、分析程序

1、符号 /* */ 指示中间的语句是该程序中的注释。多行注释以 /* 开始,以 */ 结束。单行注释以 // 开始,以行末结束

java文档注释使用/** */。

2、关键字 class 声明类的定义,还帮助编译器理解它是一个类的声明。

3、整个类及其所有成员都是在一对大括号中(即 { 和 } 之间)定义的。它们标志着类定义块的开始和结束。

4、程序从 main( ) 方法开始执行。

5、关键字 public 是一个访问说明符,控制类成员的可见度和作用域。

6、关键字 static 允许调用 main( ) 方法,而无需创建类的实例。

7、关键字 void 告诉编译器 main( ) 方法在执行时不返回任何值。

8、main( )方法是所有Java 应用程序的起始点。

9、args[ ]是String类型的数组。

10、println( )方法通过 System.out 显示作为参数传递给它的字符串。

二、运行原理

1、java虚拟机JVM。JVM是java语言最大的特点,java的优缺点也是缘于JVM技术。JVM是一个可运行Java字节码的虚拟计算机系统。它有一个解释器组件,可以实现Java字节码和计算机操作系统之间的通信。还包括一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行。这个也是java最大的特色跨平台性,也就是一处编写,处处运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。这就是java最受人批评的一个地方,运行在JVM上面当然没有直接运行在操作系统上快。所以有人总是说java的运行速度比不上C语言。

2、java程序的运行原理。

三、常见的问题

1、javac不是内部命令 或者可执行文件

在DOC命令下,可以运行Java命令,但是在编译源代码时却不能运行javac命令,并提示“javac不是内部命令 或者可执行文件”,出现这种情况一般是由于Path的环境变量的路径有问题。因为我们输入的任何命令,操作系统都会根据Path设定的路径去找这些命令,如果找不到就会出现这个错误,特别注意的是最后的分号要写上。

3、语法错误。例如:类名和文件名不一致,英文关键字的大小写问题没有注意。还得注意标点符号不能使用中文符等。

4、java命令不能运行class

javac能正常编译,但是在输入 java helloWorld运行是去报出了下面一行代码提示。

“Exception in thread "main" java.lang.NoClassDefFoundError: Hello World”提示

根据提示,意思是找不到class文件。这个问题应该就是是classpath环境变量配置不对,检查你的classpath的设置,注意一些特殊的符号。然后重启DOS再试一次。

发送你要查询的内容的编号给我!我将为你解答!例如发送:1.1

第一天、java开发环境的搭建和第一个java程序的运行:

1.1jdk的安装

1.2第一个java程序——hello world

1.3java的运行原理

1.4集成开发环境(IDE)介绍

第二天、变量、数据类型和运算符:

2.1变量的声明和数据类型

2.2基本数据类型的变量

2.3Java的表达式和运算符

2.4运算符的优先级别

第三天、程序流程控制:

3.1条件判断

3.2循环结构

3.3多重循环和break、continue语句

3.4数组

第四天、面向对象(1):

4.1面向对象的基本概念

4.2属性和普通方法

4.3构造方法

4.4包

第五天、面向对象(2):

5.1继承

5.2多态

5.3访问修饰符

5.4static和final修饰符

第六天、面向对象(3):

6.1abstract抽象类

6.2接口

6.3问题总结;值传参,对象作为参数时的值传参

第七天、字符串(String)对象和数学(Math)对象:

7.1String字符串

7.2StringBuffer和StringBuilder

7.3Math类

第八天、java的异常处理:

8.1异常的基本概念和处理流程

8.2各种常见的异常

8.3异常的嵌套和级联

8.4自定义异常和throw、throws的使用。

第九天、java的工具(Util)包(1):

9.1Date类

9.2Calendar类

9.3Random随机数类

9.4ArrayList

9.5LinkedList

第十天、java的工具(Util)包(2):

10.1Set接口,HashSet实现

10.2TreeSet介绍

10.3Map接口和HashMap实现

10.4properties属性文件

第十一天、java的输入/输出(IO)包(1):

11.1File文件的基本操作

11.2字节流

11.3字符流

第十二天、java的输入/输出(IO)包(2):

12.1带缓冲的流

12.2datainputstream和dataoutputstream

12.3randomaccessfile

第十三天、java的输入/输出(IO)包(3):

13.1serializable序列化

13.2压缩与解压(1)

13.3压缩与解压(2)

第十四天、线程:

14.1线程概念和两种实现方法

14.2线程示例和传参问题

14.3线程的同步

14.4死锁

第十五天、swing的简单介绍:

15.1swing的入门

15.2实例讲解

15.3控件、事件处理和布局介绍

15.4弹出框和多个窗口之间的切换

第十六天、网络编程——socket的认识:

16.1网络相关理论基础

16.2URL类统一资源定位和Inetaddress类简介

16.3socket的通讯

16.4使用多线程监听多客户端

第十七天、多人聊天系统:

17.1项目概述和界面设计

17.2服务器端的实现

17.3客户端实现

本文分享自微信公众号 - java学习(javaxxf),作者:许肖飞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-09-16

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么要学习java?

    大家好!这个网站的目标是为了方便大家更好的学习java&android编程。不管你是初学者还是一个经验丰富的程序员,相信这个网站对你都会有很大的帮助。只要大家每...

    Java学习
  • SSM框架原理,作用及使用方法

    注:本公众号纯属个人公益公众号!不存在任何收费项目!免费分享所有学习资料!只求大家多多支持!多多关注!!

    Java学习
  • 学习java需要会哪些知识才能够去应聘工作?

    按照我去培训机构的学习经历,给初学还有自学Java 的同学一个基本的学习脉络,希望对大家有帮助。 不建议找到一本书死啃,没啥用,不要有这一页看不明白我就不往下看...

    Java学习
  • SpringBoot开发案例从0到1构建分布式秒杀系统

    小柒2012
  • SpringBoot开发案例从0到1构建分布式秒杀系统

    最近,被推送了不少秒杀架构的文章,忙里偷闲自己也总结了一下互联网平台秒杀架构设计,当然也借鉴了不少同学的思路。俗话说,脱离案例讲架构都是耍流氓,最终使用Spri...

    小柒2012
  • java9导出运行springboot的精简版jre

    为了分发一个springboot项目,在不考虑目标机器是否有jre的情况下,携带一个jre环境是一个选择。本文就尝试从原生的jdk 9.0.1 精简一个jre供...

    pollyduan
  • 第43节:Java学前要点

    学习Java,有人推荐去培训,有人说没用,其实有钱的,不知道如何学,或者逼不得已去的就可以,也有人自己为了不花这些钱,而选择自学,我觉得也行。

    达达前端
  • 列举Java中常用的包、类和接口

      javax.servlet    org.apache.struts.action

    Kevin_Zhang
  • java学习需要具备什么技能

    很多人都想学习java编程技术,但是却不知道java学习需要具备什么技能,java本身就具备简单易学性和应用广泛性,下面一起看看java学习是需要具备什么技能。

    加米谷大数据
  • [有人@我]你的免费10G+Java课程还未领取

    java作为最热门的编程语言,它无处不在。目前全球有着数10亿的设备正在运行着java,全球80%的服务器程序都是用它编写,用以处理每天超过5000w+的数据。

    Java团长

扫码关注云+社区

领取腾讯云代金券