1.继承
含义:继承是从已有的类中派生出新的类,新类可以吸收已有类的数据属性和行为,并能扩展新的能力。
继承的关键字:extends
java只支持单继承,不支持多继承,也就是说一个类只能有一个父类,同时一个类可实现多个接口。
多态
含义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助 文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发 生在不同的对象上会产生不同的结果。
重载:javajava允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载。
普通方法的重载:a).参数个数不同。 b).对应位置上的参数类型不同
注:不允许参数完全相同而只是返回值不同的情况。
重写:父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的 名称和参数 ,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新 编写相同的方法。但有时 子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用 方法的重写。方法重写又称方法覆盖。
2.数据类型、值传递和引用传递的区别,String属于什么传递(转载)
①总体而言,Java中的数据类型分为两大类,即原始类型的对象类型(或叫引用类型),后者是指由类生 成的对象的类型,我们将在下一节详解;Java中的原始类型有如下8种,如表所示。
类型称呼值域表示范围
byte字节型8 bits-128~127
int整型32 bits-2,147,483,648~ -2,147,483,647
short短整型18 bits-32,768~32,767
long长整型64 bits -9,223,372,036,854,775,808~ 9,223,372,036,854,775,807
char字符型16 bits (UNICODE) 0~65535
float浮点型32 bits IEEE 754-1985
double双精度64 bits IEEE 754-1985
boolean布尔型true/flase只有“真”或“假”两种结果
②JAVA中的参数传递全是以值传递的。是基本类型,就拷贝一个基本类型传进方法;是引用,就拷贝一个引用变量传进去方法。
关键是区分对象和引用。
对象是传引用,简单类型是传值。
“参数传递”就是调用对象和被调用对象之间数据传递的过程,它有两种方式:一种方式是将调用对象的数据(源数据)拷贝一份传递给被调用对象(作为新数据),这种方式叫做“值传递”,在这种方式下,被调用对象对新数据的改变不影响源数据的取值,如基本类型的传递;另一种方式是将调用对象的数据(源数据)的引用直接复制给被调用对象的引用(作为新数据的引用),这种方式叫做“引用传递”,在这种方式下,被调用对象新数据的改变影响源数据内容,因为新数据和源数据的引用虽然不同但却指向同一数据对象,如类型对象的传递。
总的来说,简单概括Java中进行方法调用的时候传递参数时,遵循值传递的原则:
1)基本数据类型,传递的是数据的拷贝
2)引用数据类型,传递的是传递的引用地址的拷贝,而不是该对象本身
//例1
void method1(){
int x=0;
this.change(x);
System.out.println(x);
}
void int change(int i){
i=1;
}
结果:x=0;
//例2
void method1(){
StringBuffer x=new StringBuffer("Hello");
this.change(x);
System.out.println(x);
}
void int change(StringBuffer i){
i.append(" world!");
}
结果:x=Hello world;
③String是一个比较特殊的数据类型,在Java中,String是一个类,但是他的传值却是采用“值传递”的方式。
首先String不属于8种基本数据类型,String是一个对象。
因为对象的默认值是null,所以String的默认值也是null;但它又是一种非凡的对象,有其它对象没有的一些特性。
new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
String str=”kvill”;
String str=new String (“kvill”);的区别。
在这里,引入常量池这个简单的概念。
常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
例1:
String s0=”kvill”;
String s1=”kvill”;
String s2=”kv” + “ill”;
System.out.println( s0==s1 );
System.out.println( s0==s2 );
结果为:
true
true
首先,我们要知结果为道Java会确保一个字符串常量只有一个拷贝。
因为例子中的s0和s1中的”kvill”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”kv”和”ill”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”kvill”的一个引用。
所以我们得出s0==s1==s2;
用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。
例2:
String s0=”kvill”;
String s1=new String(”kvill”);
String s2=”kv” + new String(“ill”);
System.out.println( s0==s1 );
System.out.println( s0==s2 );
System.out.println( s1==s2 );
结果为:
false
false
false
3.Set如何遍历,有哪些子类、List如何遍历,有哪些子类、Map如何遍历,有哪些子类
Map中是否可以放入null的key或Vlaue?Set,List呢?
1、Set是最简单的一种集合,它的对象不按特定方式排序,只是把对象加入集合。 具有无序性和不重复性(不同计算机操作的结果可能不同,但同一计算机多次操作结构是相同的)。
set的常用具体实现类:HashSet和TreeSet。可以通过使用迭代器输出所有的元素。
2 、list:具有线性,有序性,重复性,可以通过迭代器遍历数组。
常用实现类:Vector,ArrayList.
3 、map:map提供的是一种映射关系的集合数据结构存放两种对象,一种是key(键),一种是value(值)。它们是一对一的关系。
map中值可以重复,键不可以重复。可以迭代器输出所有元素
常用实现类:HashMap、Hashtable
5.递归与循环的区别?
递归是指函数在运行中不断的调用自己的一种现象。循环是程序的流程结构。递归都可转化成相应的循环结构。普遍认为循环的效率比递归高,可靠性好
7.线程:线程有几种创建方式?线程在程序中有几种状态?
java中创建线程有2种方法,第一种是继承Thread类,第二种是实现Runnable接口。两种方法的区别是,第一种的灵活性稍微差了点,因为java只能继承一个类。第二种就是可以继承别的类,而且可以实现多种接口。
线程有四种状态,任何一个线程肯定处于这四种状态中的一种:
1)产生:线程对象已经产生,但尚未启动,无法执行。通过new产生一个线程对象之后没对它调用start()函数之前
2)可执行:执行一个线程对象的start()方法后,线程处于可执行状态。
3)死亡:当一个线程正常结束,它便处于死亡状态。run方法执行完毕,线程死亡
4)停滞:处于停滞的线程重新回到可执行状态,它可能重新执行。
8.static用法与注意事项,==和equals的区别?
① static 方法称类方法,直接使用类名调用,而非 static 方法的调用必须通过创建该类的对象调用
② static 属性称类属性,可以不创建类的对象直接调用
③ 类的某一个对象的static属性值改变后,类中所有的对象的static属性值都会改变。
④ 定义代码块
⑤ 静态方法中不能使用非静态的属性和方法,也不能使用this,super
⑥ 编译时,先装载static 属性和方法,再运行主函数
equals 方法是String类从它的超类Object中继承来的。被用来检测两个对象的内容是否相等。equals 方法不能用在基本类型中,只能用在引用类型里。
==是运算符,用于比较引用和比较基本数据类型时具有不同的功能。比较基本数据类型,如果两个值相同,则结果为true;比较对象时如String,用==是比较两个变量是否指向同一个对象,而用equals才是比较两个String的内容是否相等。
9.链表、队列、栈的区别
1.链表是一种物理存储单元上非连续、非顺序的存储结构。链表有一系列的结点组成,结点可以在运行是动态生成。每一个结点包括两个部分:存储数据的数据域和存储下一个结点的指针域。在链表中实现数据的插入和删除比比队列和栈方便。
2.队列 :是一个容器,用来存储同一类型的数据容器。这容器是可以变大小的。数据是“先进先出”的,最基本的使用是能够实现数据的查找、插入、删除、合并、排序、统计以及简单计算等操作。
3.栈:是一个容器,“先进后出”。可以对数据进行排序,实现中缀表达式转换为后缀表达式
相关推荐
16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16.java总结.zip16....
java 总结练习题 总结的java 总结练习题 总结的java 总结练习题 总结的java 总结练习题 总结的java 总结练习题 总结的java 总结练习题 总结的java 总结练习题 总结的
在“李耀龙java总结汇报.zip”这个压缩包文件中,我们可以期待找到李耀龙关于Java编程语言的深入学习和实践经验的总结。由于没有具体的标签信息,我们将根据Java这一广泛的主题来探讨可能涵盖的知识点。 Java是一种...
Java的23种设计模式_疯狂Java总结
Java 详细总结(精辟版++) Java 概述 Java 是一种面向对象的编程语言,主要应用于桌面程序、控制台程序、企业级开发和嵌入式开发等领域。Java 分为三个主要分类:Java SE、Java EE 和 Java ME。Java SE 主要用于...
对于初学者,学习Java应注重记笔记和写总结,这有助于巩固知识并发现问题。观看教学视频时,同步记录文字笔记,并在每个知识点结束后尝试理解和编写代码,遇到错误时不要怕,错误可以帮助我们积累经验。同时,保持...
java总结,是对自己半个月学的java进行总结
【Java程序员年终总结】 作为一名Java程序员,我在2010年的经历让我深刻理解到学习的重要性。从初入职场的新鲜人,到能在公司独立完成项目的开发者,这段历程充满了挑战和成长。2010年,我有幸加入北京联合兴辰公司...
Java基础知识点总结 Java是一种广泛应用的编程语言,掌握Java基础知识点对于编程人员非常重要。本节将对Java基础知识点进行总结,涵盖变量、数据类型、运算符、控制流程、方法、数组、内部类、继承、多态、接口、...
java PPT教程
Java的23种设计模式(疯狂Java总结)
core-java总结.doc
Java的23种设计模式(疯狂Java总结)
java总结大全--包括所有java基础知识点.doc
Java的23种设计模式(疯狂Java总结).doc
Java的23种设计模式(疯狂Java总结)(1)
Java内容复习
java 数据结构总结的思维导图笔记,个人做的非常全,需要的自行下载
java总结,基础语法,面向对象,封装继承多态,异常
"java基础总结资料"涵盖了Java语言的核心概念,是学习和复习Java基础知识的重要资源。以下是一些主要的知识点: 1. **Java语法基础**:包括变量声明、数据类型(基本类型和引用类型)、运算符、流程控制(如if语句...