导航:首页 > 编程语言 > javac特点

javac特点

发布时间:2022-07-25 07:47:21

⑴ 最近开始学java,大四的课,老师极度酱油。想自己学下。求学习方法。

基本要求:
1、 掌握Java语言的特点,实现机制和体系结构;
2、 掌握Java语言中的面向对象的特性;
3、 掌握Java语言提供的数据类型和结构;
4、 掌握Java语言编程的基本技术;
5、 会编写Java用户界面程序;
6、 会编写Java简单应用程序;
7、 会编写Java小应用程序(Applet);

考试内容:
一、Java语言的特点和实现机制
1. 特点:
简单性 去除了指针和多重继承等内容
网络特性
面向对象
平台无关性,可移植性
稳定性 又称鲁棒性 有自动回收机制和异常处理机制
安全性 符合网络安全协议的
多线程性
解释性 是java的一个缺点,因为解释执行的语言一般会比编译执行的语言的效率要低
2. 机制:
类:类是实例对象的模版,
接口:允许一个类实现多个接口
程序包:
多线程
取消指针
二、 Java体系结构
1. Java API;
i. 核心包java(熟练掌握一些重要的类,)
1. java.lang:
2. java.io
3. java.util
4. java.net
5. java.awt
6. java.awt.event
7. java.applet
8. java.sql
ii. 扩展功能包javax和org(分辨)
iii. 其他第三方的包(分辨)
2. JDK的下载,安装与使用
i. 了解sun公司的网址
ii. 设置环境变量path和classpath(掌握)
iii. Jdk的操作命令,掌握以下基本命令:
1. javac——编译命令 javac Test.java
2. java——运行命令 java Test
3. appletviewer ——Java Applet 浏览器 appletviewer Test.html
4. jar——java类文件归档命令
3. Java程序的编写和编译过程
i. 编写文件的三点注意:
1. 掌握Java程序的结构,即:源程序中的三部分要素必须以包的声明,引入类声明,类或接口的定义的顺序出现;
2. 掌握Java应用程序的入口main方法();
3. 一个源文件中只能有一个public class 类定义;且源文件的名字与public class 的类名相同(大小写也要一致),扩展名必须是.java
ii. 编译与运行:即javac和java命令的用法;

三、Java简单数据类型及运算
1. 标识符和数据类型
i. Java的基本语法,了解语句,语句块,注释
ii. Java的标识符,能判断标识符是否合法,了解标识符的风格约定
iii. 关键字,能分别大部分关键字,
iv. 基本数据类型,掌握八大基本数据类型和字符串类型;
2. 表达式和语句
i. 变量,了解变量的声明及其作用域;
ii. 运算符,掌握算术运算符,关系运算符,逻辑运算符,位操作符,赋值运算符;掌握三元条件运算符,强制类型转换运算符,了解其他运算符;能分辨运算符的优先级顺序;
3. 程序流控制(此处需要掌握的地方都是出简单编程题的考点)
i. 掌握while和do while语句
ii. 掌握for语句
iii. 掌握if/else语句
iv. 掌握switch语句
v. 了解循环跳转语句
4. 数组
i. 掌握一维数组的声明,创建和初始化;
ii. 了解多维数组;
四、Java语言中面向对象的特性。
1. 了解面向对象编程的基本思想和他的基本特征:
i. 程序中的所有东西都是对象;
ii. 程序是一系列对象的组合;
iii. 每个对象都有自己的存储空间,可以容纳其他对象;
iv. 每个对象都有一种类型;
v. 同一类型的所有对象都能够接收相同的消息;
2. 掌握类的基本组成和使用。
i. 类的声明;
ii. 类体:成员变量,成员方法,构造函数;
iii. 类的修饰符,变量的修饰符,方法的修饰符;
iv. 类的继承关系:成员变量的隐藏和成员方法的重写,this和super关键字;
v. Object类;
3. 了解对象的生成、使用和删除。
i. 对象的创建;
ii. 对象的引用(域选择运算符“.”);
iii. 对象的删除(垃圾回收机制);
iv. 类中方法的引用;
4. 了解Java类库中常用类和接口。
i. 核心包中的System,Math,基础类型的封装类等;
ii. 字符串相关类(String,StringBuffer,StringTokenizer等);
iii. 集合相关类(Collection,List,Map等接口及其实现类);
五、Java的高级特性
1. static关键字,了解静态变量,静态方法和静态语句初始化;
2. final关键字,了解常量,最终方法和最终类;
3. 抽象类(abstract关键字),了解抽象方法和抽象类;
4. 了解接口
i. 接口的定义;
ii. 接口的实现与使用;
iii. 接口的继承;
5. 包与访问控制
i. 包的声明和引入;
ii. private,缺省,protected,public四种访问控制修饰符的控制范围;
六、 Java编程技术基础(此处要求掌握部分为可以出编程题或者编程填空题的考点);
1. 异常处理
i. 了解异常的概念;
ii. 掌握try,catch,finally语句块;
iii. 掌握throw,throws异常的抛出;
iv. 了解自定义异常;
2. 线程的要领和使用。
i. 了解多线程的含义
ii. 掌握线程的创建的两种方式:继承Thread类和实现Runnable接口
iii. 了解线程的调度(即优先级控制)和其他的基本控制
iv. 初步了解线程的同步,包括同步方法和同步语句块;
3. 网络程序设计
i. 了解网络的通信机制
ii. 了解URL的通信机制
iii. 掌握有连接的Socket通信机制,了解无连接的通信机制
4. 输入/输出
i. 了解字节流和字符流;
字节输入时:把String转换成byte类型的使用
String str=“大大的”
Byte b[]=str.getBytes();
把byte类型的转换成string的使用
New string(b);
ii. 掌握文件和文件的基本操作;
iii. 掌握文件流和缓存流等重要输入输出流;
iv. 了解随机存取文件,RandomAccessFile类的创建和操作;
七、 编写用户界面程序
1. 了解AWT的基本原理;
2. AWT的组件,容器,布局管理器等重要概念及其相关类;
i. 掌握所有AWT的基本组件及其相关类,包括按钮(Button),复选框(CheckBox),下拉框(Choice),标签(Lable),列表(List),文本区(TextArea),文本域(TextFiled)等
ii. 掌握重要容器:框架(Frame),面板(Panel),对话框(Dialog);
iii. 掌握流式布局管理器(FlowLayout)和边界布局管理器(BorderLayout),了解网格布局管理器(GridLayout)和卡片布局管理器(CardLayout)
3. 了解AWT的事件处理机制;
i. 事件处理模型中的三类对象:事件(Event)、事件源(Event source)以及时间处理器(Event handler);
ii. 了解监听器的定义,注册,以及事件适配器;
iii. 掌握以下重要事件,处理接口以及对应的方法:
1. 激活组件事件:ActionEvent,ActionListener,actionPerformed();
2. 条目状态改变:ItemEvent,ItemListener,itemStateChanged();
3. 鼠标单击事件:MouseEvent,MouseListener,mouseClicked();
4. 窗口关闭事件:WindowEvent,WindowListener,windowClosing();

八、 编写小应用程序(Applet)
1. 了解Applet的基本概念
i. 掌握Applet的生命周期;
ii. 了解Applet的类层次结构;
iii. 掌握Applet的关键方法:init(),start(),stop(),destroy(),paint(Graphics g);
iv. 了解Applet的显示:paint(),update(),repaint()三个方法;
2. 会编写Applet小程序和相关运行的HTML页面;
i. 掌握需要引入的包;
ii. Applet必须继承自java.applet.Applet类;
iii. 掌握HTML页面中的<Applet>标记及其重要属性;
3. 了解Applet的图形化用户界面;

⑵ 简述java语言的执行过程

1、java编译生成的字节码,在所有操作系统都是一样,故其有这样的特点:
write once, run anywhere.其意思:只需要一次编码,就可以在任何环境下运行。
2、不同的操作系统,其java 虚拟机是不一样的。虚拟机将java字节代码转换对应操作系统的
相关指令,保证其正常运行。
3、java 系统支持所有的硬件的平台,不存在你提及的问题,你可以放心使用。
4、解释器在java虚拟机中,编译器在JDK或JRE 中。
5、java虚拟机就是常说的java 运行环境,其缩写是 JRE,安装在操作系统下的一个目录中,
这个目录在安装时可以由你自行指定,就像你安装其它应用软件一样。JDK中包含了JRE,
还有开发环境,如编译器,帮助文档生成器,以及系统API的jar库文件等。

⑶ java/c跟c++可以同时学吗

还是从Java入门比较好,毕竟Java和C/C++关注比较紧密,语法上的关系点更多,推荐《Head First Java》。

可以适当钻钻Swing的坑,熟悉键盘,鼠标监听时间什么的,可以试试做个没有功能的QQ登陆界面,大概只要两百行。反正刚入门都是先熟悉运用语法,先不用管数据结构算法什么的。


javac 是java语言编程编译器。全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。

javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。

这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

⑷ java在编译时出现 javac:找不到文件 是怎么回事

原因一:当前的编译路径并非是java类的存放路径;

原因二:java类中没有定义或者定义的main方法有错误;

建议您切换到java类存放路径,或确认java类中的代码编写有没有出错。

(4)javac特点扩展阅读:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

参考资料:网络_java

⑸ java基础面试题有哪些

下面是10道java基础面试题,后附答案

1.什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?

Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件。

Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

2.“static”关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是static 的方法?

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java 中 static 方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而 static 方法是编译时静态绑定的。static 方法跟类的任何实例都不相关,所以概念上不适用。

3.JDK 和 JRE 的区别是什么?

Java 运行时环境(JRE)是将要执行 Java 程序的 Java 虚拟机。它同时也包含了执行 applet 需要的浏览器插件。Java 开发工具包 (JDK)是完整的 Java 软件开发包,包含了 JRE,编译器和其他的工具(比如:JavaDoc,Java 调试器),可以让开发者开发、编译、执行 Java 应用程序。

4.是否可以在 static 环境中访问非 static 变量?

static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5.Java 支持的数据类型有哪些?什么是自动拆装箱?

Java 语言支持的 8 中基本数据类型是:

byte

short

int

long

float

double

boolean

char

自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 double,等等。反之就是自动拆箱。

6.Java 支持多继承么?

不支持,Java 不支持多继承。每个类都只能继承一个类,但是可以实现多个接口。

7.Java 中,什么是构造函数?什么是构造函数重载?什么是复制构造函数?

当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java 编译器会为这个类创建一个默认的构造函数。

Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。

Java 不支持像 C++中那样的复制构造函数,这个不同点是因为如果你不自己写构造函数的情况下,Java 不会创建默认的复制构造函数。

8.Java 中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

Java 中的方法重载发生在同一个类里面两个或者是多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者可能不会限制它所覆盖的方法的访问。

9.接口和抽象类的区别是什么?

Java 提供和支持创建抽象类和接口。它们的实现有共同点,不同点在于:

接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。

类可以实现很多个接口,但是只能继承一个抽象类

类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

抽象类可以在不提供接口方法实现的情况下实现接口。

Java 接口中声明的变量默认都是 final 的。抽象类可以包含非 final 的变量。

Java 接口中的成员函数默认是 public 的。抽象类的成员函数可以是 private, protected 或者是 public。

接口是绝对抽象的,不可以被实例化。抽象类也不可以被实例化,但是,如果它包含 main 方法的话是可以被调用的。

10.什么是值传递和引用传递?

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。

对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有的对象上。

最后祝你面试顺利!

⑹ 什么是java

什么是JAVA?

提问者: nan7913 - 见习魔法师 二级

----------------------------

Java是SUN公司开发的一种面向对象的新一代网络编程语言,它可以在各种不同的机器、操作系统的网络环境中进行开发,具有解释型语言(如Basic语言)和编译型语言(如C语言)的特性。Java摒弃了C 中各种弊大于利的功能和许多很少用到的功能,用Java开发的程序可以在网络上传输,并运行于任何客户机上。

特点

1、简单性:

Java语言通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持大概有215KB左右。

2、面向对象:

Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

3、分布性:

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。

4、可靠性:

Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。

5、安全性:

用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。

6、体系结构中立:

Java解释器生成与体系结构无关的字节码指令,只要安装Java运行系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。

7、可移植性:

与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java 系统本身也具有可移植性。

8、解释执行:

Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。

9、高性能:

和其它解释执行的语言如BASIC、TCL不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。

10、多线程:

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

11、动态性:

Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

Java语言的特性使它可以最大限度地利用网络。Ap-plet是Java的小应用程序,它是动态、安全、跨平台的网络应用程序。JavaApplet嵌入HTML语言,通过主页发布到Internet。网络用户访问服务器的Applet时,这些Applet 从网络上进行传输,然后在支持Java的浏览器中运行。由于Java语言的安全机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。

Java的开发工具。

1、 UltraEdit

UltraEdit是共享软件,最新版本是V10.20b。其官方网址是:[url]www.ultraedit.com[/url] 。它是一个功能强大的文本、HTML、程序源代码编辑器。作为源代码编辑器,它的默认配置可以对C/C , VB, HTML, Java和 Perl进行语法着色。用它设计Java程序时,可以对Java的关键词进行识别并着色,方便了Java程序设计。它具有完备的复制、粘贴、剪切、查找、替换、格式控制等编辑功能。可以在Advanced菜单的Tool Configuration 菜单项配置好Java的编译器Javac和解释器Java,直接编译运行Java程序。

配置Javac:在Command Line里输入:D:jspj2sdkinJavac %f,这里Javac的路径要根据JDK的实际安装路径来指定,%f是指当前活动文档的全文件名。在Menu Item Name 里输入Javac ,让其显示在Advanced菜单里,这样就可以直接执行它进行编译了。选中Output To List Box和Capture Output ,这样就可以在源代码下面的输出窗口里看到编译时的错误信息了。

配置不带参数运行的解释器Java:在Command Line里输入:D:jspj2sdkinJava %n,在Menu Item Name 里输入: Java filename,选中Output To List Box和Capture Output ,运行结果显示在输出窗口里。

配置带参数运行的解释器Java:在Command Line里输入:d:jspj2sdkinJava %n%modify%,在Menu Item Name 里输入:Java filename parameter,这样当执行这个菜单项的时候,会显示一个要求输入参数的对话框。

2、 Editplus

EditPlus也是共享软件,最新版本是EditPlus 2.12。其官方网址是:[url]www.editplus.com[/url]。EditPlus也是功能很全面的文本、HTML、程序源代码编辑器。默认的支持HTML、CSS、PHP、ASP、Perl、C/C 、Java、JavaScript和VBScript的语法着色。通过定制语法文件还可以扩展到其他程序语言。可以在Tools菜单的Configure User Tools菜单项配置用户工具,类似于UltraEdit的配置,配置好Java的编译器Javac和解释器Java后,通过EditPlus的菜单可以直接编译执行Java程序。

3、Jcreator

Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能。官方网址是:[url]www.jcreator.com[/url] 。当前最新版本是Jcreator 3.10,它又分为LE和Pro版本。LE版本功能上受到一些限制,是免费版本。Pro版本功能最全,但这个版本是一个共享软件。这个软件比较小巧,对硬件要求不是很高,完全用C 写的,速度快、效率高。具有语法着色、代码自动完成、代码参数提示、工程向导、类向导等功能。第一次启动时提示设置Java JDK主目录及JDK JavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDK Help。但目前这个版本对中文支持性不好。

4、Eclipse

Eclipse是一个开放可扩展的集成开发环境(IDE)。它不仅可以用于Java的开发,通过开发插件,还可以构建其他的开发工具。Eclipse是开放源代码的项目,并可以免费下载。它的官方网址是:[url]www.eclipse.org[/url],提供Releases、Stable Builds、Integration Builds和Nightly Builds下载。建议使用Releases或Stable Builds版本。

Releases版本是Eclipse开发团队发布的主要发行版本,是经过测试的稳定的版本,适合要求稳定而不需要最新改进功能的使用者选择。目前最新的Release版本是Eclipse 3.0。Stable Builds版本对大多数使用者而言已足够稳定,由开发团队用比较稳定的Integration Build版本提升到Stable Build而来,适合想使用Eclipse新功能的使用者选择。对于Releases版本2.1.x,在Eclipse的官方网站上有一个语言包可以下载,这样Eclipse及其帮助都有简体中文版。Eclipse用于Java开发,与UltraEdit、Editplus两种编辑器和Jcreator IDE比较,Eclipse更专业,功能更强大。

总之,Java语言提供一种强有力的工具支援程序设计员。Java让程序设计变得更容易,因为它属于面向对象语言,而且提供了自动的内存垃圾收集功能。再者,由于Java码具备结构中立性,因此其应用程序成为非同质性运算环境 (例如Internet)的理想方案。

⑺ 简述javac命令的用法

javac命令是用来编译java程序的。。进入doc命令。要编译java程序时,需确保当前的路径就是你要编译的java程序的路径,例如,我的桌面有一个Test.java的程序,要编译它时,进入到当前桌面路径,运行命令:javacTest.java(当然,这些前提都得是你已经正确安装了JDK。)如图:

⑻ 为什么Java可以跨平台呢为什么,什么是虚拟机阿

一般我们所谓的执行档
内容是一堆人类看不懂得机械码 是拿来给机器看的
因为他要直接指挥计算机去做事情 所以得写成机器可以执行的语言
问题是
每一台机器有自己的语言 每一个平台也有自己的语言
所以在不同的机器上 我们要用不同的执行档

那 Java 怎么达成一个程序 跨平台执行的呢~~

其实, Java 是在各种平台之上建立起他自己的平台
也就是所谓的 JVM (Java 虚拟机器)
再用 JVM 来执行他的类别档
因为不管在甚么平台上 实际执行类别档的都是 JVM
所以就可以达到 跨平台的目的

123456
类别档程式
______________________________|_________________________________
| | | |
Windows95/98版JVM WindowsNT系列JVM Linux版JVM Unix版JVM
| | | |
Windows95/98 WindowsNT/2000 Linux Unix

所以要执行 Java 的程序 就必须先在机器上启动 JVM 才行
而启动 JVM 的程序 就是所谓的 JRE

Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。

1.为什么要使用Java虚拟机

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

2.谁需要了解Java虚拟机

Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。

⑼ 4. 下列关于JAVA语言特点的叙述中,错误的是( )AJava是面向过程的编程语言BJav

咨询记录 · 回答于2021-10-17

⑽ java语法基础,具体内容

Java基础——Java开发前奏

Java的特点

Java最主要的特点是:一次编译,到处运行(WriteOnce,RunAnywhere.)。

原理:Java源程序经编译后生成.class字节码文件,.class文件由Java虚拟机(JVM)解释执行。不同的操作系统下,只要有相应的Java字节码解释程序,.class文件就能够运行,这是Java跨平台性的根本。c和java编程与执行的过程如下图所示:

Java的内涵

1、是一种编程语言

2、是一套开发工具

3、是一个运行环境

Java应用平台

1、J2EE()——用于企业级应用程序的开发

2、J2SE(Java2PlatformStandardEdition)——用于普通标准应用程序的开发

3、J2ME(Java2PlatformMicroEdition)——用于小型消费类电子产品或嵌入式系统的开发

J2SE包括4部分——JVM、JRE、JDK与Java语言。

环境变量的设置

环境变量——在操作系统中定义的变量,可供操作系统上所有的应用程序使用。

1、查看环境变量

a.命令提示行:环境变量的命令——set(环境变量名)

b.窗口方式:我的电脑->属性->高级->环境变量

2、设置path环境变量

path环境变量的作用:设置操作系统寻找和执行应用程序的路径。

JAVA_HOME:C:ProgramFilesJavajdk1.6.0_14

path:%JAVA_HOME%in;%JAVA_HOME%jrein

3、设置classpath环境变量

classpath环境变量的作用:让Java执行环境找到指定的java程序(.class文件)。

classpath:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar

注意:a.%JAVA_HOME%前面有“.;”,“.”表示当前目录,两个路径之间用“;”隔开。

b.设置classpath的路径中不能有空格,也不能有中文字符。

JVM的运行过程

Java反编译工具——JAD、FrontEnd

Java开发工具

1、记事本

注意保存时文件名应为*.java。

2、UltraEdit、EditPlus

使用EditPlus编辑和编译Java程序,需要进行相应配置。选择“工具”->“参数选择”->“工具”->“用户工具”->“添加工具”->“应用程序”。首先设置“javac”的参数,具体如下图,其中“命令”为javac.exe文件的地址。

然后设置“java”的参数,如下图所示,其中“命令”为java.exe文件的路径。

设置好后默认“javac”工具的快捷键为Ctrl+1,“java”工具的快捷键为Ctrl+2。当编辑好Java源程序后,使用Ctrl+1即可对其进行编译,然后按Ctrl+2运行程序。如下图所示:

3、集成开发环境——Eclipse、MyEclipse、JBuilder等。

关于Eclipse和MyEclipse,刚用的时候感觉二者差不多,查了资料才知道Eclipse是基础,如同操作系统;而MyEclipse是在Eclipse上面运行的程序,不过进行了增强并提供了新功能。

以前用过Microsoft的VisualStudio2005,个人感觉VS2005是一个功能非常强大的集成开发环境,不过.NET和Java毕竟不是一家人,学Java还是要用Eclipse的。

JDK中的常用包

1、java.lang——包含一些Java语言的核心类,如String、Math、Thread、System、Integer类等。

2、java.awt——包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面(GUI)。

3、java.applet——包含applet运行所需的一些类。

4、java.net——包含执行与网络相关操作的类。

5、java.io——包含能提供多种输入/输出功能的类。

6、java.util——包含一些实用工具类。

Java的命名习惯

1、包名中的字母一律小写。如:xxxyyyzzz。

2、类名、接口名应使用名词,每个单词的首字母大写。如:XxxYyyZzz。

3、方法名,第一个单词小写,后面每个单词的首字母大写。如:xxxYyyZzz。

4、变量名,第一个单词小写,后面每个单词的首字母大写。

5、常量名中的每个字母一律大写。如:XXXYYYZZZ。

Java基础——Java语法基础(1)

Java代码基本格式

Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符。格式如下:

修饰符class类名

{

程序代码

}

注:

1、Java是严格区分大小写的。

2、Java程序中一句连续的字符串不能分开在两行中写。

Java程序的注释

Java里的注释有三种类型:

1、单行注释

在注释内容前面加“//”,格式为:

代码;//注释内容

2、多行注释

以斜杠加星号开头,以星号加斜杠结尾。

3、文档注释

以斜杠加两个星号开头,以一个星号加斜杠结束。

用这种方法注释的内容会被解释成程序的正式文档,并能包含进诸如javadoc之类的工具程序生成的文档里,用以说明该程序的层次结构及其方法。

补充:

1、多行注释中可以嵌套“//”注释,但不能嵌套多行注释符号。

2、程序注释一般占程序代码总量的20%-50%,“可读性第一,效率第二”。

Java中的标识符

Java中的包、类、方法、参数、变量的名字,可以由任意顺序的大小写字母、数字、下划线(_)、美元符号($)组成,但不能以数字开头,不能是Java中的保留关键字。

Java的关键字

1、用于类和接口的声明:class,extends,implements,interface

2、包引入和包声明:import,package

3、数据类型:byte,boolean,char,double,int,long,float,short

4、某些数据类型的可选值:flase,ture,null

5、流程控制:break,case,continue,default,do,else,for,if,return,switch,while

6、异常处理:catch,finally,throw,throws,try

7、修饰符:abstract,final,native,private,protected,public,static,synchronilzed,transient,volatitle

8、操作符:instanceof

9、创建对象:new

10、引用:this,supper

11、方法返回类型:void

12、保留字:const,goto

Java中的常量

1、整形常量

十进制

十六进制——以0x或0X开头

八进制——以0开头

长整形——以L(l)结尾

2、浮点数常量

单精度浮点数——后面加f(F)

双精度浮点数——后面加d(D)

注:

a.小数常量的默认类型是double型,所以float类型常量后一定要加f(F)。

b.浮点数常量可以用指数形式表示,如5.022e+23f

3、布尔常量

true或false

4、字符常量

由英文字母、数字、转义序列、特殊字符等的字符所表示,如'a'、' '等。

Java中的字符占两个字节,是用Unicode码表示的,也可以使用'u'加Unicode码值来表示对应字符,如'u0027'。

常用的转义字符有:

——表示接受键盘输入,相当于按了一下回车键

——表示换行

——表示制表符,相当于Tab键

——表示退格键,相当于BackSpace键

'——表示单引号

”——表示双引号

\——表示反斜杠“”

5、字符串常量

字符串常量用双引号括起来。

6、null常量

null常量表示对象的引用为空。

Java的变量类型

基本数据类型之间的转换

1、自动类型转换(隐式类型转换)

条件:

a.两种类型彼此兼容

b.目标类型的取值范围要大于源类型

2、强制类型转换(显示类型转换)

格式:目标类型常量=(目标类型)值

注:字符串可以使用加号“+”同其他的数据类型相连而形成一个新的字符串。

变量的作用域

代码块决定了变量的作用域,作用域决定了变量的可见性和存在时间。

局部变量

在一个函数或函数里面的代码块中定义的变量称为局部变量。

局部变量在进行取值操作前必须被初始化或进行过赋值操作。

函数

1、定义函数的格式

返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...)

{

程序代码

return返回值;

}

2、函数的重载

函数的重载就是在一个类中可以同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。

Java基础——Java语法基础(2)——运算符

Java中的运算符

1、算术运算符

a.字符串+其他类型=字符串

b.如果对负数求余,可以把除数负号忽略不计,如5%-1=1。但如果被除数是负数就另当别论了。

2、赋值运算符

a.在Java中,可以把赋值语句连在一起,如:x=y=z=5;

b.x+=y相当于x=x+y

3、比较运算符

a.要注意比较运算符“==”和赋值运算符“=”的区别,特别是布尔型变量进行比较时。

b.可以将比较运算的表达式写为“false==变量”的形式,以防止误写为赋值运算。

4、逻辑运算符

a.逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。

b.“&”和“&&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。“|”和“||”的区别与“&”和“&&”的区别一样。

5、位运算符

位运算——对数据按二进制位进行移位操作。

适用类型:byte,short,char,int,long

位运算包括:

&位与

|位或

^位异或

<<左移,左移n位相当于乘以2的n次方

>>右移,右移n位相当于除以2的n次方

>>>无符号右移

注:

a.位运算符也可以与“=”赋值运算符组合产生新的赋值运算符,如:&=,<<=等。

b.移位不会改变变量本身的值,如a>>1在一行语句中单独存在毫无意义。

c.对低于int型的操作数将先自动转换为int型再移位;对int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数;对于long型整数移位时则是先将移位位数对64取模。

运算符的优先级

编程技巧:

1、不要在一行中编写太复杂的表达式,可以将其分解为几条语句。

2、多用括号。

Java基础——Java语法基础(3)

程序控制流程

1、顺序结构

按顺序执行

2、if条件语句

a.if...

b.if...else...

可简写为:变量=布尔表达式?语句1:语句2;

c.if...elseif...else...

3、switch选择语句

switch(表达式)

{

case取值1:

语句块1;

break;

...

case取值n:

语句块n;

break;

default:

语句块n+1;

break;

}

4、while循环语句

while(条件表达式)

{

执行语句

}

5、dowhile循环语句

do

{

执行语句

}while(条件表达式)

6、for循环语句

for(初始化表达式;循环条件表达式;循环后操作表达式)

{

执行语句

}

7、增强for循环

for(循环变量类型循环变量名称:要被遍历的对象)

{

执行语句

}

8、break与continue语句

a.一个无标号的break语句会把控制传回当前最内层循环(while,do,for,switch)的下一条语句。

b.无标号的continue语句的作用是跳过当前循环的剩余语句块,接着执行下一次循环。

数组

1、数组的定义

如:int[]x=newint[100];

或intx[]=newint[100];

2、数组的静态初始化

如:int[]aa=newint[]{3,4,5};

3、多维数据

如:

int[][]xx=newint[3][];

xx[0]=newint[3];

xx[1]=newint[2];

4、一些与数组相关的函数

a.System.array(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)复制数组,将源数组srcPos开始的length个元素从目标数组的destPos位置开始存储。

b.Array.sort()数组升序排序

阅读全文

与javac特点相关的资料

热点内容
程序员搞笑花名 浏览:501
dota2怎么设置国服服务器地址 浏览:212
单片机高电平驱动 浏览:115
ios多选文件夹 浏览:909
加强行车调度命令管理 浏览:243
服务器已禁用什么意思 浏览:150
部队命令回复 浏览:755
神奇宝贝服务器地图怎么设置 浏览:382
加密算法输出固定长度 浏览:862
程序员去重庆还是武汉 浏览:121
服务器如何撤销网页登录限制 浏览:980
微信公众平台php开发视频教程 浏览:628
怎么看苹果授权绑定的app 浏览:255
压缩机单级压缩比 浏览:380
linux测试php 浏览:971
什么时候梁旁边需要加密箍筋 浏览:40
微信清粉软件源码 浏览:717
matlabdoc命令 浏览:550
如何去ping服务器 浏览:75
ecshop安装php55 浏览:817