1 面向对象与面向过程有什么区别?
面向对象编程:既然面向的是对象,那么强调的自然就是——对象,那么对象多了,就会抽象出相应的类(对象是类的实例化),所以
· 程序是由类组成
· 程序运行的时候去调用创建对象、调用对象的方法。(类是对属性、方法的封装
面向过程编程:同上,既然强调的是处理过程,那么必然写的是一个个过程,什么是过程?过程就是一个个函数,所以
· 程序是由函数组成
· 程序运行过程是函数之间的不断调用。eg:C语言从main函数开始调用其他函数;
2 解释型编程语言和编译型编程语言有什么区别?
解释型语言:根据字面意思就是,他需要解释,即边解释边执行,因为运行时需要解释,所以速度会比较慢。既然他可以被解释,那么就可以适应不同的平台,根据平 台的不同,进行不同的解释,好处:跨平台性;
编译型语言:编译——形成可执行文件——运行的时候直接执行,因为直接编译后就直接执行,所以速度比较快。由于可执行文件依赖具体的平台,这样带来的结果就是,编译型语言不具有跨平台性。
3 Java属于编译型还是解释型语言?
Java代码先编译,再解释执行。
编译过程只是把源文件转换为字节码文件(class文件,注意前面说的编译时编译成的可执行文件,字节码文件与C语言的编译结果不同。
之后,通过java虚拟机(jvm)解释执行
4 Java语言的特点有哪些?哪个是最大特点?
由上题可以看见,Java有点“半编译半解释”,它是可以被解释,所以,“可以适应不同的平台,根据平台的不同,进行不同的解释”,因此Java语言最大的特点就是:跨平台性
5 Java的3个版本是什么?
Java的三个版本都是可以根据字面缩写来翻译的:
Java SE 标准版(Standard Edition):主要针对的是桌面开发,做application。
Java EE 企业级(Enterprise Edition): 以java SE为基础,定义了面向不同领域的API,eg:jsp+servlet面向的web应用, EJB(为分布式应用提供公共的组件),JPA(为应用提供数据访问服务),web service(为不同类型的应用之间的交互提供了方便),JAXB(能够完成java类与XML文档之间的转换),javaMail能够在java程序中收发邮件。
Java ME 微型版(嵌入版)(Micro Edition): 主要用于嵌入式设备应用的开发,设备的CPU和内存都会有一些约束,所以使用基本语法还是javaSE,但是有些不能用,另外会使用设备相关的一些API。
6 使用JDK编写和运行Java程序的基本过程是什么?
编写源文件:任何文本编译工具;源文件后缀名:.java
编译:javac命令编译,编译后的文件是.class文件(前面说过,Java先编译,编译后成为Java字节码即为.class文件
运行:使用java命令运行。(注意这里是java命令,上面的是javac
7 使用JDK编译Java文件的命令是?
上面说的基本过程中可以知道,编译Java文件用的命令式javac
用一个小例子来解释说明:
Javac hello.java
Javac *.java
Javac –d . hello.java(在当前位置生产包文件)
8 使用JDK运行Java程序的命令是什么?
上面说的基本过程中可以知道,编译Java文件用的命令式javac
依旧来一个小例子:
Java ch1.hello
Java –classpath . ch1.hello
9 使用JDK生成Java帮助文档的命令是什么?
javadoc
(一般文档就是doc,所以Java的文档就是javadoc
10 JDK和JRE的区别是什么?
由缩写可得
JRE:Java Runtime Environment,Java执行环境,是一种软件——负责java程序的运行;
JDK:Java Development Kit ,java开发工具集,包含jre,另外提供了一些工具,例如编译工具,打包工具。
11 配置环境变量path的目的是什么?
能够在命令行中使用java、javac等命令。命令行程序会在path中找相应的命令。需要把javac和java所在的文件配置到path中。
12 配置环境变量classpath的目的是什么?
Java命令在执行的时候会在classpath中查找类,通常会配置:tools.jar、dt.jar、当前位置(.),把这些东西添加到classpath。
13Eclipse是运行环境还是开发环境?
集成开发环境(IDE)
14 Java的跨平台性是如何实现的?
参考3t,前面说过,Java语言是经过编译之后,就要解释,而解释性语言的优势就是跨平台。所以
在不同的平台上有不同的Java虚拟机(JVM),编译后的字节码文件能够被虚拟机解释为对应平台的机器码。
15 Java中注释的方式有哪些?
// /* */ /** */