java知识点集合2.doc

上传人:公**** 文档编号:557465072 上传时间:2023-05-09 格式:DOC 页数:24 大小:686.50KB
返回 下载 相关 举报
java知识点集合2.doc_第1页
第1页 / 共24页
java知识点集合2.doc_第2页
第2页 / 共24页
java知识点集合2.doc_第3页
第3页 / 共24页
java知识点集合2.doc_第4页
第4页 / 共24页
java知识点集合2.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《java知识点集合2.doc》由会员分享,可在线阅读,更多相关《java知识点集合2.doc(24页珍藏版)》请在金锄头文库上搜索。

1、1.java术语强类型还是弱类型语言?为什么?Java 是强类语言,在使用变量时有如下规则: 变量必须声明,并且初始化以后才能使用。 变量必须有明确的类型(type)。 变量不能重复定义。javascript是一种弱类型语言,即变量在声明时,不能明确声明其类型 变量的类型是在运行时确定的,并且可以随时改变2.JAVA的数据类型有哪些?基本数据类型(八种):整型: byte 1字节, short 2字节, int 4字节, long 8字节浮点型: float 4字节, double 8字节【float 类型共 32位(不 int相同),其中 1位为符号位, 指数 8 位, 尾数23 位。】【d

2、ouble 类型能表示64位,其中1 位符号位,11位指数,52位尾数】【浮点数的字面量默认是double】字符型: char 2字节【unicode编码值】boolean型: boolean 1字节 【值只有true和false】隐式类型转换:正方向: charintlongfloatdouble负方向:byteshort intlongfloatdouble 引用类型(自定义类型):比如String3.JAVA中成员变量和局部变量的区别?成员变量:是在类范围内定义的(也叫成员属性) 类属性:使用static修饰的就是类属性。作用域: 类属性的作用域与这个类的生存范围相同,它作为类的一个成员

3、,与类共存亡。只要类存在,程序就可以访问该类的类属性。实例属性:不被static修饰的就是实例属性。作用域: 实例属性则从这个类的实例(对象)被创建开始存在,直到系统完全销毁这个实例,它作为实例(对象)的一个成员,与实例(对象)共存亡。只要实例存在,程序就可以访问该实例的实例属性。局部变量:在一个方法内定义的变量。(包括方法的形式参数)1.形参:作用域是整个方法体2.方法局部变量:一个代码块中3.代码块局部变量:一个代码块中注意:局部变量除了形式参数外,都必须显示初使化(必须显示指定初使值)。否则不可以访问它们。形式参数不须显示初使化,它在被调用时由系统完成。4.前+和后+的区别?i+, 后+

4、, 先将 i 的值作为整个表达的值, 然后将i 增加 1。 +i, 先+, 先将 i 增加1, 然后将 i 的值作为整个表达的值。5. 短路运算符和非短路运算符的区别?短路运算符条件1 & 条件 2,如果条件1不成立,则条件2不执行;非短路运算符条件1 & 条件 2,两个条件都会执行。6.怎样取得数组的长度?arr.length7. 实现数组拷贝(复制)的2种方法?System.arraycopy(src , srcPos, dest , destPos , length) ; src - 源数组。 srcPos - 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据

5、中的起始位置。 length - 要复制的数组元素的数量。 Arrays.copyOf(src , length):是 JDK1.6 版本提供的方法,比起System.arraycopy()使用更简便.8.java中的4种访问制权限有哪些?分别作用范围是什么?(1).public:最大访问控制权限,对所有的类都可见。(2).protect:修饰的,在类内部、同一个包、子类中能访问(3).default:包访问权限,即同一个包中的类可以可见。默认不显式指定访问控制权限时就是default包访问控制权限。(4).private:最严格的访问控制权限,仅该类本身可见。9.JAVA5的新特性有哪些?(

6、1)循环(For-each循环)for (type variable : array) bodyfor (type variable : arrayList)body而1.4必须是:for (int i = 0; i array.length; i+) type variable = arrayi;bodyfor (int i = 0; i arrayList.size(); i+)type variable = (type) arrayList.get(i); body(2)泛型以ArrayList为例,包括创建一个容器对象和取得容器内对象操作:1.5 ArrayList arrayList

7、 =new ArrayList(); arrayList.get(i)1.4 ArrayList arrayList =new ArrayList();(Type) arrayList.get(i)(3) 自动装箱拆箱在JDK5.0以前,在原始类型与相应的包装类之间的转化是不能自动完成的。要完成这种转化,需要手动调用包装类的构造函数,在JDK5.0环境中,可以自动转化:1.5 Integer wrapper = n;int n = wrapper;1.4 Integer wrapper = new Integer(n);int n = wrapper.intValue();自动装包/拆包大大方

8、便了基本类型数据和它们包装类地使用。自动装包:基本类型自动转为包装类.(int Integer);自动拆包:包装类自动转为基本类型.(Integer int); (4)静态导入静态导入功能对于JDK 5.0以前的版本是不支持的。import static java.lang.Math;import static java.lang.System;.1.5 out.println(sqrt(PI);1.4 System.out.println(Math.sqrt(Math.PI);(5) 可变参数(Varargs)可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中

9、的最后一个参数。在JDK1.5之前,可以用重载来实现,但是这样就需要写很多的重载函数。line1 public void write(Object. objs) line2 for (Object obj: objs)line3 System.out.println(obj);line4 10.面向对象编程中两种对象组合方式is-a 和 has-a:(1).is-a组合:一个类继承具有相似功能的另一个类,根据需要在所继承的类基础上进行扩展。优点:具有共同属性和方法的类可以将共享信息抽象到父类中,增强代码复用性,同时也是多态的基础。缺点:子类中扩展的部分对父类不可见,另外如果共性比较少的时候使用

10、继承会增加冗余代码。(2).has-a组合:has-a组合是在一个类中引用另一个类作为其成员变量。优点:可扩展性和灵活性高。在对象组合关系中应优先考虑has-a组合关系。缺点:具有共性的类之间看不到派生关系。 (3).use-a组合:是一个类中使用到了另外一个类,依赖关系11.构造方法(构造器)特点? Java 中的构造器(构造方法)声明在类内部。 方法名与类名一致的方法叫构造方法 构造方法不能声明返回值类型。 构造方法可以包含参数,参数一般是创建对象实例必须依赖的条件(前提条件)。子类默认调用父类的无参构造器,如果父类没有无参构造器,那么子类必需显示的去调用父类的有参构造器如果一个类没有提供

11、无参构造器,那么编译器将会自动提供一个无参构造器。12.JAVA中属性和方法的静态绑定和动态绑定?静态绑定:Java 根据引用变量类型查找属性动态绑定:java 根据实际的对象查找方法13. JavaBean 规范?1) 必须有包(package) 2) Java 类,具有无参数构造器 3) 有用 getXxx() 和 setXxx() 声明的Bean属性 n 如:getName() 和 setName(String n) 声明的 Bean属性为:name, 不是否有实例变量 name 无关 n boolean类型的get方法可以有两种形式:getMarried() 戒者 isMarried(

12、) 4) 必须实现序列化接口(注:在学习IO 的时候具体学习)14.static关键字的特点?static 静态关键字修饰:属性、方法、内部类、代码块static 修饰的资源属于类级别,是全体对象实例共享的资源static 变量在类加载期间初始化静态代码块是在类加载期间运行的代码块,由于类只加载一次,所以静态代码块只执行一次!15.final关键字的特点?final可以修饰类,方法,变量final 修饰的类,不能再被继承final修饰的方法,不能覆盖final 方法final 修饰的变量 final的局部变量,只能初始化不能改final的方法参数,不能改 final 的引用,引用指向不能改,但

13、是对象的属性可以改16.常见的final类有哪些?Java 的 String 就是 final类,不能被继承!(Math 是final类,不能被继承!Integer 、Long、Character 等包装类是 final类,不能被继承!17.抽象类和接口的区别?抽象类-不具体的类 1 抽象方法,只有行为的概念,没有具体的行为实现。 使用:abstract 关键字修饰,并且没有方法体。 2 包含抽象方法的类,就一定是抽象类。 使用: abstract 关键字修饰,包含抽象方法。 如:平面图形一定可以计算面积。 public abstract class CRMSystem public abst

14、ract Client addClient( String name, String qq); 3 抽象方法和抽象类非常适合作为系统的分析和设计的工具。 4 抽象类不能直接创建实例。可以定义引用变量。 5 抽象类只能被继承,一个具体类继承一个抽象类,必须实 现所有抽象方法。接口 1. 接口:全部的方法都是抽象方法,全部的属性都是常量。 接口用来表示纯抽象概念,没有任何具体的方法和属性。 2 .不能实例化,可以定义变量。 3 .接口变量可以引用具体实现类的实例。 4 .接口只能被实现,一个具体类实现接口,必须使用全部的 抽象方法。 5 .接口之间可以继承。 6 .一个具体类可以实现多个接口,实现多继承现象,表示: 一个概念即是XXX也是XXX. 7 .接口中的属性,默认是常量 public static final 8 .接中的方法一定是:public abstract 9 .实现一个接口,使用关键字implements, 实现实际上是 一种继承关系。接口和实现类是父子类型的关系18.重载和重写的区别?重载:方法名相同,参数不同(参数类型或者长度) 重载和修饰符和返回类型无关。一是方法的参数列表必须改变,包括参数的类型,参数的个数多少,参数顺序。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号