(1)JAVA语言的特点
1、简洁。JAVA是一种面向对象的程序设计语言,它省略了C++语言中所有的难以理解、容易混淆的特性,如头文件、指针、结构、单元、运算符重载和虚拟基础类等。
2、可移植性。JAVA语言具有很强的可移植性。JAVA编写的程序只需要做较少的修改甚至不需要进行修改就可以在不同平台上运行。
3、解释性。JAVA语言是一种解释性语言。相对于其他语言来说。JAVA的执行效率会低一些。 逻辑结构:描述的是数据元素之间的逻辑关系。
4、适合于分布式计算。JAVA语言具有强大的、易于使用的联网能力。非常适合开发分布式计算的程序。
注意:JAVA语言具有很强移植性的特点是靠虚拟机(JVM)实现的,JAVA程序首先经过编译生成中间代码,之后中间代码运行在不同平台上的虚拟机下,进而实现可移植性。
(2)JAVA程序的分类
JAVA程序可以分为两类,即Java Application和Java Applet程序。后者主要是在网页中嵌入的JAVA程序,基本上已经不再使用;而前者是指有main方法的JAVA程序。
(3)JAVA程序中class和public class的区别(仅仅限于单个文件中)
JAVA程序声明类的方式有上述两种,区别如下:
1、使用public class申明类时,类名称和文件名必须保持一致,否则程序无法进行编译。
2、使用class声明类时,类名称可以和文件名不一致,但是执行是必须执行生成的.class文件(仅仅在JDK开发环境下),一般包含有主方法的类声明为public,其他类声明为class,保证包含有主方法的类可以直接编译。
3、一个JAVA文件中可以有多个class类,但是只能由一个public class类。
可以分为两类,即Java Application和Java Applet程序。后者主要是在网页中嵌入的JAVA程序,基本上已经不再使用;而前者是指有main方法的JAVA程序。
注意:上述的描述在单个文件中成立,在包的概念中,如果一个类只在本包中被访问,不需要被外包访问,则直接声明成class即可;而如果一个类需要被外包访问,则必须声明为public class。
(4)JAVA数据类型的分类
JAVA数据类型可以分为两类,基本数据类型和引用数据类型。
基本数据类型在定义时就分配存储空间;而引用数据类型是以一种特殊的方式指向变量的实体,相当于C中的指针,这种变量在定义时不分配内存,必须进行开辟内存的操作。
(5)JAVA使用的字符集
JAVA使用UNICODE字符集,该字符集为每一个字符制订了一个唯一的数值。在任何的语言、平台和程序中都可以安全使用。
(6)JAVA的数据类型转换机制
在JAVA中,所有的数据类型均向String类转换,即其他数据类型遇到字符串类型之后,全部自动转换为字符串类型,此时要是这些数据再进行运算操作,则按照字符串运算的规则进行运算。这点要和C区别开来。
(7)JAVA中的逻辑运算符
在JAVA中,有&&和&、||和|等逻辑运算符,区别如下:
1、&表示与操作,既可以判断逻辑条件,也可以进行位与操作。判断逻辑条件时,对所有的逻辑条件均进行判断,并不进行逻辑运算的优化。
2、&&表示短路与操作,只能用来判断逻辑条件,在判断逻辑条件是,进行逻辑运算符的优化。
(8)JAVA中堆栈内存的解释
在JAVA中,栈内存中保存的永远是名称(地址),而实际的内容则保存在堆内存中,堆内存必须使用new关键字进行申请使用。
例如数组,数组名是保存在栈内存中的,而数组的内容是保存在堆内存中,堆内存的使用权交给了栈。在
(9)JAVA中数组的初始化
在JAVA中,数组的初始化分为动态初始化和静态初始化。
动态初始化:
int score[] = null ;
score = new int[3];
动态初始化:
int score[] = [1,2,3];
(10)JAVA中数组长度的获得
在JAVA中,数组的长度可以使用[数组名.length]来获得。如果数组为多维数组,则数组名.length获得的是行数,score[1].length获得的是列数,以此类推。
(11)JAVA中的方法
在JAVA中,方法相当于其他语言中的函数,在此要注意,JAVA中,直接被主方法调用的函数,前面一定要加上public static关键字修饰。如果函数是通过对象调用的,则不需要写static 关键字。
(12)JAVA中的setter和getter方法
在JAVA中,私有属性要使用setter和getter方法设置和访问,这样的话,JAVA的反射机制也会利用setter和getter设置和取得属性内容。
(13)匿名对象的使用
匿名对象只是在堆内存中开辟空间,在栈内存中不保留引用,所以对象只能使用一次后就等待被垃圾
收集机制回收。例如:”new Person(“张三”,30)”,该语句前面并没有赋值对象,即后面没有指针再次调用此对象,所以称之为匿名对象,匿名对象一般是作为其他类实例化对象的参数传递的。
(14)JAVA中的String类
常用的String方法:
1、比较字符串是否相等 str1.equals(str2);
2、字符串转换为字符数组 char c[] = CharArray();
3、从字符串中取出指定位置的字符 char c= str1.CharAt(3);
4、取得字符串长度 int num = str.length();
注意:和去的数组的长度不一样,数组的长度是a.length,属于取成员操作,而字符串的长度属于方法的调用,后面有括号。
5、按照指定的字符串拆分字符串 String s[] = str1.split(‘ ’);将字符串按照空格分割,然后返回一个字符串数组。
6、字符串的大小写转换 UpperCase() LowerCase()
JAVA中使用字符串要注意以下问题:
1、如果一个字符串已经被一个名称所引用,则以后再有相同的字符串声明时,就不会再重新开辟空间。例如:
String str1 = “hello”;
String str2 = “hello”;
String str3 = “hello”
此时,str1、str2、str3的值相等,并且都指向同一个存储堆内存空间。
2、JAVA中的字符串内容一旦声明,则不可以改变。平时所谓的改变,其实是通过内存地址的“断开‐链接”变化完成的,例如:
String str = “hello”;
Str = str + “world”;
此时,首先申请一个堆内存,存放hello,然后再申请堆内存存放world,然后再开辟堆内存存放hello world,之后将str指向hello的指针断开,然后指向hello world的内存空间。
JAVA中字符串池的概念:
在JAVA中使用字符串池保存字符串,这也被称为共享设计,这种设计思路是:在JAVA中形成一个对象池,在这个对象池中保存多个对象,新实例化的对象如果已经在池中定义了,则不再重新定义,而是从池中直接取出继续使用。
(15)JAVA中的代码块
普通代码块:就是在语句中或者是方法中定义的代码块,相当于函数块。
构造块:直接写在类中的代码快,就是类中的一段被括号括起来的代码。
静态代码块:使用static关键字声明的代码快
各代码快执行顺序如下:
静态代码快优先于主方法执行,而在类中定义的静态代码快会优于构造块执行,类中的构造块优于构造方法执行。构造块会和构造方法一样,每次创建对象时都会执行,静态代码快只执行一次。
(16)JAVA中的内部类
在类的内部再定义的类,成为内部类。内部类可以声明成public和private。其访问控制和成员的访问权限类似。
(17)JAVA中的类继承
在JAVA中,类继承的关键字是:extends。具体用法如下:
class person{}
class student extends person{}
注意:在JAVA中,类不允许多继承,但是可以允许多层继承。此外,和C++类似,子类在
初始化对象之前,必须要调用父类的构造方法,然后再调用子类的构造方法。
(18)JAVA中的访问权限
在JAVA中,类权限有四种“private、default、protect、public。
private:私有访问权限,一旦使用了该权限,则只能在本类中进行访问。
default:默认访问权限,默认的访问权限可以被本包中的其他类所访问,但是不能被其他包的类所访问
protect:保护访问权限,只能被本包中的类以及不同包中的子类访问
public:公有访问权限,可以被本包和不同包中的类访问。
(19)JAVA中的方法覆写
方法的覆写就是指:子类定义了与父类中同名的方法,在一定条件下,子类的方法会覆写父类的方法,但是要注意:被覆写的方法不能拥有更加严格的权限,覆写必须是扩大权限,比如:父类是public权限,子类是默认的default权限,则此时会出现编译错误。
(20)JAVA中super和this关键字
方法的覆写就是指:子类定义了与父类中同名的方法,在一定条件下,子类的方法会覆写父类的方法,但是要注意:被覆写的方法不能拥有更加严格的权限,覆写必须是扩大权限,比如:父类是public权限,子类是默认的default权限,则此时会出现编译错误。
属性访问:this访问的是本类的属性,而super访问的是父类中的属性
方法:this访问的是本类中的方法,如果本类中没有,则从父类中继续查,而super访问的是父类中的方法
调用构造:this调用本类构造,必须放在构造方法的首行,而super调用父类构造,必须放在子类构造方法的首行。
(21)JAVA中的final关键字
使用final关键字要注意一下几点:
1、使用final声明的类不能有子类
2、使用final声明的方法不能被子类所覆写
3、使用final声明的变量即成为常量,在后续过程中不可以修改
(22)JAVA中的抽象类
抽象类类似于模板,只是描述了一些共享的属性,而不给出具体的实现方法。JAVA中抽象类的方法被称为抽象方法,而在C++中被称为纯虚函数,注意:是纯虚函数,在C++中包含
纯虚函数的类才是抽象类。虚函数是用来实现动态多态的,而纯虚函数才是用来实现抽象类的。在JAVA中,使用抽象类要注意以下几点:实例化类和实例化对象
1、包含一个抽象方法的类必须是抽象类
2.抽象类和抽象方法都要使用abstract关键字声明,但是在C++中,只有虚函数前面加virtual,类前面不加。
3、抽象方法只需要声明,不需要实现
4、抽象类必须被子类继承,子类必须覆写抽象类中的方法
抽象类的声明:abstract class A{}
抽象方法的声明:权限 abstract 返回值类型 函数名;
注意:抽象类不可以使用final关键字进行声明,抽象方法不要使用private声明,否则无法进行方法的覆写
(23)JAVA中的接口
接口是JAVA中最重要的概念之一,它可以被理解为一种特殊的类,是由全局常量和公共的抽象方法所组成的。定义如下:
Interface 接口名称
{
全局常量;
抽象方法;
};
注意:在接口中的抽象方法必须定义为public访问权限,这是绝对不可改变的。由于默认的是public和抽象的,所以public和abstract关键字可以去掉,此时在接口类中的默认属性不再是default,而是public。
在JAVA中,接口是可以多继承的。
接口必须在后续的类中被实现,实现格式如下:
class X implements A,B{}
class 子类 extends 抽象类 implements 接口A,接口B
(24)JAVA中的对象多态
对象多态主要分为以下两种类型:
向上转型:子类对象—父类对象
向下转型:父类对象—子类对象
对于向上转型,程序会自动完成,而对于向下转型时,必须明确地指出要转型的子类的类型,具体转换格式如下:
向上转型:父类 父类对象=子类实例
对象向下转型:子类 子类对象=(子类)父类实例
注意:向下转型时,必须先发生向上转型,才能向下转型,否则转换异常。
(25)instanceof关键字
该关键字可以判断一个对象到底是哪个类的实例,格式如下:
对象 instanceof 类 返回布尔类型
要是属于该类,则返回true,要是不属于该类,则返回false
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论