你准备好学习java了吗?了解一下开发java的基本过程以及java的基本特性。与C++做些简单的比较,熟悉两种语言的共性和区别,关于一些java知识体系。
Java的主要特性:
1、Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java是面向对象的,具有类,接口等原语;
3、Java是解释型的语言,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
解释型语言:,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。如果想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。
Java开发工具及环境、开发包
Java主要分为三大体系:
JavaSE(J2SE)(Java2PlatformStandardEdition,java平台标准版)
JavaEE(J2EE)(Java2Platform,EnterpriseEdition,java平台企业版)
JavaME(J2ME)(Java2PlatformMicroEdition,java平台微型版)
2005年6月,JavaOne大会召开,SUN公司公开JavaSE6。此时,Java的各种版本已经更名以取消其中的数字”2”:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
说明:
StandardEdition(标准版)J2SE包含那些构成Java语言核心的类
比如:数据库连接、接口定义、输入/输出、网络编程
EnterpriseEdition(企业版)J2EE包含J2SE中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
MicroEdition(微缩版)J2ME包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒
他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类,应用场合,API的覆盖范围各不相同。
上面的每个版本都分别对应不同的JDK(javadevelopmentkit),可以根据应用不同下载不同的JDK安装。对于初学者,先学习JavaSE,有了一定基础之后,可以考虑深入学习JavaEE,或者转战Android也行。
JDK中包含了java开发需要的各种类和接口,以及运行java程序所需要的环境JRE,若是只想在各种系统平台上运行java程序而不进行开发,则可以直接下载JRE包即可。有些系统是自带JRE的,但不包括windows,因此要想在windows上运行java程序,需要在系统上安装JRE。
JRE中包含了JVM(Java虚拟机):它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
2、工具
Java开发需要一些较好的开发工具,比较好的一个IDE就是Eclipse;eclipse、idea等IDE有自己的编译器而不是用JDKbin目录中自带的,所以在安装时你会发现他们只要求你选中jre路径就ok了;而且用eclipse的话不需要设置系统环境变量,它会自动找到安装的JRE地址。
3、开发环境
Java可以下windows和linux等系统下进行开发,这里仅介绍在windows下开发需要设置的环境参数,在安相应版本JDK之后,进行变量设置。
变量设置
变量名:JAVA_HOME
变量值:C:\ProgramFiles\Java\jdk1.7.0
//这里是你JDK的安装路径,可以更换
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;//记得前面有个"."
变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
1、”开始”->;”运行”,键入”cmd”;
2、键入命令”java-version”,”java”,”javac”几个命令,出现相关画面,说明环境变量配置成功;
Java基础语法
1、基本语法规则
编写Java程序时,应注意以下几点:
大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirstJavaClass。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的Java程序由publicstaticvoidmain(Stringargs)方法开始执行。
另外:java中没有头文件,它是以import的方法从外面导入.class文件的;java中的main函数是包含在一个类中的,与C++是不一样的,在C++中没有定义类也是一个程序。
2、源文件声明规则
当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。
一个源文件中只能有一个public类
一个源文件可以有多个非public类
源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
如果一个类定义在某个包中,那么package语句应该在源文件的首行。
如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。
3、Java包:
包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。(即包中包含很多种类的类和接口)
当编译一个.java文件(即一个编译单元)时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。如果你真的想学习java你可以来这个群前面是四九一,中间是八九七后面是一五八这里有技术大牛亲自指导帮助你还有免费的直播课程学。因此在编译少量.java文件之后,会得到大量的.class文件。每一个.java文件编译以后都会有一个public类,以及任意数量的非public类。因此每个.java文件都是一个构件,如果希望许许多多的这样的构件从属于同一个群组,就可以在每一个.java文件中使用关键字package。而这个群组就是一个类库。
如果使用package语句,它必须是.java文件中除注释以外的第一句程序代码。
4、权限修饰符
Java中有四种权限修饰符,这些修饰符控制对类,类的成员方法,类的成员变量的访问;其作用范围如下:
public:所有的类都可以访问。
private:只有在同一个类中才可以访问。
protected:同一个类中、同一个包中、子类中都可以访问,其他包不可以。
包类型的,即默认类型同一个类中、同一个包中可以访问到,其他包和子类不可以。
5、数据类型
byte:Java数据类型和c/c++基本类似,但Java中有byte类型,表示8位2进制的整数,相当于c/c++中的char.
常量:Java中常量用final表示,相当于const,final中的值是可以改变的;
-包装类:在开发过程中,有时候需要使用对象,而不是内置数据类型,因此java为每个内置数据类型提供了对应的包装类所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类,对于字符也有相应的Character类。每个类具有相应的函数。
数组:java数组是对象,与c++不同,语法上与c++类似,java数组具有一个属性length可以获取数组的长度。(数组a,a.length为数组长度),Array类具有一些函数可以对数组进运算。
Java高级特性1、Java中的接口
Java中类继承只允许一个父类,当需要进行多个继承时,需要使用接口。接口类似于类,定义时用interface替代类定义中的class,但里面的方法只有定义没有实现。接口文件的文件名必须与接口名相同。继承接口的关键字为implement,与类的继承extends相似,可以进行多继承。接口继承必须实现接口中的所有方法。
接口是规范,规定某个实现类里必须有那些方法,只要事先定义好接口,当大家一起合作的时候就不用特别麻烦的交互,而是每个人写好自己的接口实现类,最后拼接到一起就可以了比如数据库连接类,接口规定好有哪些方法、方法的功能,然后每个数据库厂商根据接口去实现具体的类,达到统一的目的,要不每个数据库厂商自己实现一套,那么你编程的时候就要根据不同驱动使用不同的方法,造成不必要的麻烦。
2、Java中的抽象类
只声明方法的存在而不具体实现的类,抽象类不能实例化(不能创建相应对象)定义方式:在class前加上abstract,ex:
abstractclass类名{;;;}
抽象类中定义的没有实际意义的,必须在子类重写的方法为抽象方法,定义时前面加abstract:abstracttypename(agrs)。
一般方法定义与在正常类中定义一样。
java对象创建一般方式:ClassNameobj=newClassName;
Java的主要特性:
1、Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
2、Java是面向对象的,具有类,接口等原语;
3、Java是解释型的语言,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。
解释型语言:,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等。如果想学习java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。
Java开发工具及环境、开发包
Java主要分为三大体系:
JavaSE(J2SE)(Java2PlatformStandardEdition,java平台标准版)
JavaEE(J2EE)(Java2Platform,EnterpriseEdition,java平台企业版)
JavaME(J2ME)(Java2PlatformMicroEdition,java平台微型版)
2005年6月,JavaOne大会召开,SUN公司公开JavaSE6。此时,Java的各种版本已经更名以取消其中的数字”2”:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
说明:
StandardEdition(标准版)J2SE包含那些构成Java语言核心的类
比如:数据库连接、接口定义、输入/输出、网络编程
EnterpriseEdition(企业版)J2EE包含J2SE中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
MicroEdition(微缩版)J2ME包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒
他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类,应用场合,API的覆盖范围各不相同。
上面的每个版本都分别对应不同的JDK(javadevelopmentkit),可以根据应用不同下载不同的JDK安装。对于初学者,先学习JavaSE,有了一定基础之后,可以考虑深入学习JavaEE,或者转战Android也行。
JDK中包含了java开发需要的各种类和接口,以及运行java程序所需要的环境JRE,若是只想在各种系统平台上运行java程序而不进行开发,则可以直接下载JRE包即可。有些系统是自带JRE的,但不包括windows,因此要想在windows上运行java程序,需要在系统上安装JRE。
JRE中包含了JVM(Java虚拟机):它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
2、工具
Java开发需要一些较好的开发工具,比较好的一个IDE就是Eclipse;eclipse、idea等IDE有自己的编译器而不是用JDKbin目录中自带的,所以在安装时你会发现他们只要求你选中jre路径就ok了;而且用eclipse的话不需要设置系统环境变量,它会自动找到安装的JRE地址。
3、开发环境
Java可以下windows和linux等系统下进行开发,这里仅介绍在windows下开发需要设置的环境参数,在安相应版本JDK之后,进行变量设置。
变量设置
变量名:JAVA_HOME
变量值:C:\ProgramFiles\Java\jdk1.7.0
//这里是你JDK的安装路径,可以更换
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;//记得前面有个"."
变量名:Path
变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
1、”开始”->;”运行”,键入”cmd”;
2、键入命令”java-version”,”java”,”javac”几个命令,出现相关画面,说明环境变量配置成功;
Java基础语法
1、基本语法规则
编写Java程序时,应注意以下几点:
大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirstJavaClass。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的Java程序由publicstaticvoidmain(Stringargs)方法开始执行。
另外:java中没有头文件,它是以import的方法从外面导入.class文件的;java中的main函数是包含在一个类中的,与C++是不一样的,在C++中没有定义类也是一个程序。
2、源文件声明规则
当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。
一个源文件中只能有一个public类
一个源文件可以有多个非public类
源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
如果一个类定义在某个包中,那么package语句应该在源文件的首行。
如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。
3、Java包:
包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。(即包中包含很多种类的类和接口)
当编译一个.java文件(即一个编译单元)时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀名.class。如果你真的想学习java你可以来这个群前面是四九一,中间是八九七后面是一五八这里有技术大牛亲自指导帮助你还有免费的直播课程学。因此在编译少量.java文件之后,会得到大量的.class文件。每一个.java文件编译以后都会有一个public类,以及任意数量的非public类。因此每个.java文件都是一个构件,如果希望许许多多的这样的构件从属于同一个群组,就可以在每一个.java文件中使用关键字package。而这个群组就是一个类库。
如果使用package语句,它必须是.java文件中除注释以外的第一句程序代码。
4、权限修饰符
Java中有四种权限修饰符,这些修饰符控制对类,类的成员方法,类的成员变量的访问;其作用范围如下:
public:所有的类都可以访问。
private:只有在同一个类中才可以访问。
protected:同一个类中、同一个包中、子类中都可以访问,其他包不可以。
包类型的,即默认类型同一个类中、同一个包中可以访问到,其他包和子类不可以。
5、数据类型
byte:Java数据类型和c/c++基本类似,但Java中有byte类型,表示8位2进制的整数,相当于c/c++中的char.
常量:Java中常量用final表示,相当于const,final中的值是可以改变的;
-包装类:在开发过程中,有时候需要使用对象,而不是内置数据类型,因此java为每个内置数据类型提供了对应的包装类所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类,对于字符也有相应的Character类。每个类具有相应的函数。
数组:java数组是对象,与c++不同,语法上与c++类似,java数组具有一个属性length可以获取数组的长度。(数组a,a.length为数组长度),Array类具有一些函数可以对数组进运算。
Java高级特性1、Java中的接口
Java中类继承只允许一个父类,当需要进行多个继承时,需要使用接口。接口类似于类,定义时用interface替代类定义中的class,但里面的方法只有定义没有实现。接口文件的文件名必须与接口名相同。继承接口的关键字为implement,与类的继承extends相似,可以进行多继承。接口继承必须实现接口中的所有方法。
接口是规范,规定某个实现类里必须有那些方法,只要事先定义好接口,当大家一起合作的时候就不用特别麻烦的交互,而是每个人写好自己的接口实现类,最后拼接到一起就可以了比如数据库连接类,接口规定好有哪些方法、方法的功能,然后每个数据库厂商根据接口去实现具体的类,达到统一的目的,要不每个数据库厂商自己实现一套,那么你编程的时候就要根据不同驱动使用不同的方法,造成不必要的麻烦。
2、Java中的抽象类
只声明方法的存在而不具体实现的类,抽象类不能实例化(不能创建相应对象)定义方式:在class前加上abstract,ex:
abstractclass类名{;;;}
抽象类中定义的没有实际意义的,必须在子类重写的方法为抽象方法,定义时前面加abstract:abstracttypename(agrs)。
一般方法定义与在正常类中定义一样。
java对象创建一般方式:ClassNameobj=newClassName;