1.Java语言简述
1991年Sun公司(Stanford University Network,斯坦福大学网络公司)的James Gosling等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1995年将Oak语言更名为Java,2009年甲骨文公司宣布收购Sun。
开源:免费+源代码公开+修改
2.Java5.0之后的三大技术框架
J2EE(Java 2 Platform Enterprise Edition)企业版该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发。
J2SE(Java 2 Platform Standard Edition)标准版
完成桌面应用程序的开发,是其它两者的基础.
J2ME(Java 2 Platform Micro Edition)小型版
开发电子消费产品和嵌入式设备,如手机中的程序。
3.什么是跨平台性?原理是什么?JVM
Java语言的跨平台性,是通过虚拟机 JVM(JavaVirtual Machine Java)来实现的,所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。总结:Java 程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,Java 程序是通过java 虚拟机在系统平台上运行的,只要该系统可以安装对应平台的java虚拟机,该系统就可以运行java程序。
注意: Java 虚拟机是不跨平台的,关键是该平台是否能安装相应的虚拟机。
4.Jre 和Jdk 的区别
JRE:(Java Runtime Environment)Java程序的运行环境。 包含java运行的所需的核心类库+JVM(java虚拟机),如果想要运行一个开发好的Java程序,计算机中只需要安装JRE 即可。
JDK:(Java Development Kit Java)Java开发工具包。JDK是提供给Java开发人员使用的,其中 包含java的开发工具和JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe),运行工具(java.exe),打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
5.Java 程序运行机制
编译: javac 文件名.文件后缀名
运行: java 类名
java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分。会启动jvm.加载运行时所需的类库,并对class文件进行执行。一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数。
6.配置环境变量
让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量path配置:
1.永久配置方式:JAVA_HOME=%安装路径%\Java\jdk
path=%JAVA_HOME%\bin
2.临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin
特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
classpath的配置:
让指定的class文件在任意目录都可以被访问。
注意:在定义classpath环境变量时,需要注意的情况。如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
还会在当前目录找吗?两种情况:
1.classpath的值结尾处有分号,在classpath配置路径中没有找到运行的类,会在当前目录再找一次。
2.如果classpath的值结果出没有分号,在classpath配置路径中没有找到运行的类,不会再当前目录找;即使当前目录下有,也不会运行。
一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。
技巧:在最左边配置一个.
这样做的好处就是能够先在当前目录下查找并执行。
7.代码注释:单行//,多行/* */,文档注释/** */
1.单行注释////后到本行结束的所有字符会被编译器忽略;
2.多行注释/* */
/* */之间的所有字符会被编译器忽略
3.文档注释/** */
在/** */之间的所有字符会被编译器忽略,java特有的(用于生成文档);
总结:多行和文档注释都不能嵌套使用。
8.Java 中的标识符
可简单理解为在Java程序中为了增强阅读性自定义起的名字。比如:类名,方法名,变量名等。
注意:此处的字母还可以是中文,日文等
2.严格区分大小写
3.不能以数字开头,不能使用java中的关键字和保留字
包名:多单词组成时所有字母都小写。例:xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。例:XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。例:xxxYyyZzz
常量名:所有字母都大写,多单词组成时每个单词用下划线连接。例:XXX_YYY_ZZZ
9.Java 中的常量和变量
常量:在程序的运行过程中,其值是不可以发生改变的量;常量可以直接被输出。分为两大类:字面常量,自定义常量。
变量的概念:程序的运行过程中,在指定范围内发生改变的量。在内存中占据着某一个存储区域空间,用于存储常量数据;只要是数据不确定的时候,就定义变量。
作用:方便于运算,因为有些数据不确定,所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
格式:数据类型 变量名 = 初始化值;
作用域:作用域从变量定义的位置开始,到该变量所在的那对大括号结束。
生命周期:变量从定义的位置开始就在内存中活了,变量到达它所在的作用域的时候就在内存中消失了。
10. 方法(函数)
方法(函数):方法是一组为了实现特定功能的代码块的集合。方法特点:1.它可以实现独立的功能
2.必须定义在类里面
3.它只有被调用才会执行
4.它可以被重复使用
5.方法结束后方法里的对象失去引用
方法的作用:1.用于定义功能,结构化代码
2.用于封装代码提高代码的复用性,减少代码重复
方法的定义格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){
执行语句;
return 返回值;
}
当函数没有具体的返回值时,返回的返回值类型用void关键字表示。
如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数,结束功能。
方法其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:
1.明确该功能运算后的结果.明确返回值类型。
2.明确在实现该功能过程中是否有未知内容参与运算,确定参数列表。
注意:函数中只能调用函数,不能定义函数。
重载的定义:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了;重载只看参数列表,和返回值类型没关系。
方法在书写时要注意两点:
1.逻辑严谨:方法实现的一个完整的功能,所以在书写时要考虑到各种可能的情况,并对每种情况做出恰当的处理。
2.通用性强(可重复利用):方法实现的是一种功能,在实际实现时,可以根据需要,使方法具备一定的通用性,除非必要,否则不要写专用的方法。在Java语言中,恰当的使用方法,将使程序更加优雅,便于阅读和使用。
11.数组初始化的两种方式
静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度。格式:元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};
简化语法:元素类型[] 变量名 = {元素1,元素2...};
动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值。
格式:元素类型[] 变量名 = new 元素类型[元素的个数];
总结:不能静态和动态初始化同时使用,也就是说不能同时指定数组的长度和元素。