Java基础语法

来源:互联网 发布:两个数据库数据同步 编辑:程序博客网 时间:2024/06/07 20:14

1、变量及其作用范围

Java变量可以分为:静态变量、成员变量和局部变量3种。

静态变量:在类中用static修饰的变量,它的生存周期是由类来决定的。

成员变量:在类中没有用static修饰的变量,它的生存周期由对象来决定。

局部变量:定义在方法里的变量、方法的参数或代码块里定义的变量,它们的作用范围用大括号{}来界定。

2、Java的变量分哪两种大的数据类

Java的变量分为基本数据类型和引用数据类型。它们最大的区别在于,引用数据类型存放的是数据所在的地址,而基本数据类型则是直接存放数据的值。

其他知识点:引用数据类型的变量存的值是一个内存地址。对象一般是通过new语句创建出来的,它保存在堆空间中,可以被多个引用类型的变量所引用。当引用a修改了对象的数据以后,其他的引用也是可以看到这些改变的。

3、Java包含哪些基本数据类型及其包装类

Java一共有8种基本数据类型,分别是byte、short、 int、 long 、float 、double、 boolean、

char;存储的数据量比较小,用二进制保存。其馐类分别是:Byte、Short、Integer、Float、Double、Boolean、Character。

Eg. Integer itg=new Integer.valueOf(100);

Itg.intValue();

4、如何理解Java中的装箱和拆箱

从Java 5.0开始,有一种自动装箱和拆箱的功能,就可以不必显式的进行类型转换,系统会自动的按照需要进行数据类型的转换。

Java中的装箱和拆箱指的是基本数据类型和包装类型的自动相互的转换。

装箱:基本数据类型——>包装类型

拆箱:包装类型——>基本数据类型

5、Java中equal和==的区别是什么

“==”运用在基本数据类型的时候,通过比较它们实际的值来判定是否相同;而用于比较引用类型的时候,则是比较两个引用的地址是否相等,也就是是否指向同一个对象。

Equal方法是java.lang.Object的方法,也就是所有的Java类都会有的方法。它可以被程序员覆盖重写,通过自定义的方式来判定两个对象是否相等。对于字符串java.lang.String类来说,它的equal方法用来比较字符串的字符序列是否相等。

6、Java中的注释有哪些

行注释://

块注释:/* */ ,这种注释不会出现在HTML文档中。

文档注释:/** / ,它的注释信息可以进入到javadoc文档中。注释文档将用来生成HTML

格式的代码API报告,还可以用@开头的关键字进行注释,以达到说明方法参数、返回

值、异常等各种详细信息。

Annotation:它会进入到编译层,并对程序结果产生影响。它最变通的作用就是用来替代

XML提供一些配置信息,例如,JPA、Spring等框架的配置信息就可以通过Annotation

来提供。

7、Java的引用和C++的指针有什么区别

Java的引用和C++的指针本质上,它们两者都是想通过一个叫做引用或者指针的东西,找到要操作的目标,方便在程序中操作。所不同的是Java的办法更安全、方便,但失去了C++的灵活,也算是对指针的一种包装和改进。

主要区别是:


对象和类型

1、 类和对象有什么区别

类是一种抽象,而对象是类的实现。

Java的类通过class关键字进行定义,它代表了一种抽象的集合。在它的里面可以定义各种属性和方法,它们代表了每个类实例的特定的数据和动作。Java虚拟机对类只加载一次,对它的静态成员也只加载一次。

对象,指的是某一个特定抽象的实例,它属于某一种类型,也就是对象是通过类来创建的。它必须从属于某一个类,通过new关键字进行创建,它代表一个特定类型的实例,对象可以被多次创建。

2、 Java中如何使用继承来重用代码

Java采用的是单继承制,使用extends关键字。通过继承之后,子类就拥有了父类除开私有成员以外的所有成员,从而达到代码重用的目的。在继承过程中,可以通过方法的覆盖来实现多态,让子类拥用自己独特的方法实现方式。

方法的覆盖(或重写)和重载是两个不同的概念。重载是创建一个方法名相同,但参数列表不同的方法;而方法覆盖则是子类对父类方法的覆盖和重写,定义一个名字、参数、返回值一样的方法即可。

3、 简述Java中的多态

多态是建立在继承的基础之上的。

“多态”的本质是,发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。

4、Java中静态成员的特点

类的静态成员是通过static关键字修饰的成员,主要包括:静态成员变量、静态方法和静态代码块,它们具有以下一些特点:1、在类加载的时候,就进行创建和初始化或执行代码。2、它们对于一个类来说,都只有一份。3、类的所有实例都可以访问到它们。

静态代码块先执行。

5、 Java派生类中的构造方法如何为父类传递参数

在Java中,使用super()的形式来为父类的构造方法提供参数,通过参数的数目和类型来决定调用哪一个构造方法。如果调用的是父类的默认的无参数构造方法,则可以不必显式地使用super()。super()的使用必须放在子类构造方法的第一行,否则编译时会有语法错误。

6、 接口和抽象类的区别

包含抽象(abstract)方法的类,就是抽象类。抽象类不能够实例化。Abstract class

接口所有的方法都是抽象的,它可以包含静态的变量,这些变量的值不能修改。interface

抽象类是一种功能不全的类,接口只是一个抽象方法声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在Java语言中,抽象类表示一种继承关系,一个类吸能继承一个抽象类,而一个类却可以实现多个接口。

Class A extends B implements C,D { }

7、 简述一下内部类的实质


包和访问控制

1、 包应该如何被创建及使用

包是Java程序中关于命名空间的一种手段,它可以有效的解决类重名的问题。当需要把一个类定义在某个包下的时候,需要使用package关键字进行定义;当需要使用其他包下的类的时候,则需要使用import关键字进行导入。

2、 说明private 、protected 、public、 default(friendly)的区别


转载自:https://zhuanlan.zhihu.com/p/28423180