ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:182.79KB ,
资源ID:24710761      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24710761.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaSE知识点归纳总结.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JavaSE知识点归纳总结.docx

1、JavaSE知识点归纳总结JavaSE知识点1、继承,封装,多态1、分类我们可以把JAVA中的类分为以下三种:类:使用class定义且不含有抽象方法的类。抽象类:使用abstract class定义的类,它可以含有,也可以不含有抽象方法。接口:使用interface定义的类。在这三种类型之间存在下面的继承规律:1.类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。2.抽象类可以继承(extends)类,可以继承(extends)抽象类,可以继承(implements)接口。3.接口只能继承(extends)接口。2、继承(inheritan

2、ce) 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。继承是为了重用父类代码,同时为实现多态性作准备。构造方法在实例化的时候调用的,而子类既然继承了父类,那就具备了父类所有的属性以及方法,当子类实例化的时候就先调用父类的构造了,如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其它构造方法,则会默认先调用父类的无参构造方法。你想那么子类中从父类继承的字段,要谁来初始化呢?父类中有这些字段的初

3、始化方式,所以最好的选择就是用父类的构造方法。java创建对象的三个步骤就是,申请内存,调用构造方法,返回对象引用。3、封装(encapsulation) 类使得数据和对数据的操作集成在一起,从而对使用该类的其他人来说,可以不管它的实现方法,而只管用它的功能,从而实现所谓的信息隐藏。 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。4、多态(polymorphism)方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念对于多态,可以总结它为: 一、使用父类类型的引用指向子类的对象;该引用只能调用父类中定义的方法和变量; 二、如果子类中重

4、写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用) 三、变量不能被重写(覆盖),”重写“的概念只针对方法。 5、重写英文名是overriding,是指在继承情况下,子类中定义了与其基类中方法具有相同型构的新方法,就叫做子类把基类的方法重写了。这是实现多态必须的步骤。6、重载英文名是overloading,是指在同一个类中定义了一个以上具有相同名称,但是型构不同的方法。在同一个类中,是不允许定义多于一个的具有相同型构的方法的。7、接口与抽象类abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制。在abstr

5、act class方式中, 可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface方式的实现中, 只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract class。抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstra

6、ct 类的实例。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量,instanceof 运算符可以用来决定某对象的类是否实现了接口。java抽象类的构造方法和普通类的构造方法一样,都是用来初始化类,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法,可以这么理解吧 抽象类就是一个不能实例化的类不过如果方法加了abstract那么就必须在子类里面重写了2、Java存储JAVA的容器-Lis

7、t,Map,Set Collection List LinkedList ArrayList Vector Stack Set Map Hashtable HashMap WeakHashMap Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 所有实现Colle

8、ction接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个 Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。 如何遍历Collection中的每一个元素?不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下: Iterator it = collection.iterator();

9、 / 获得一个迭代子 while(it.hasNext() Object obj = it.next(); / 得到下一个元素 由Collection接口派生的两个接口是List和Set。List接口 List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。 和下面要提到的Set不同,List允许有相同的元素。 除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个 ListIterator接

10、口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。 实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。 Sort()对list接口进行排序LinkedList类 LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。 注意LinkedList没有同步方

11、法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List: List list = Collections.synchronizedList(new LinkedList(.);ArrayList类 ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。 size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这

12、个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。 和LinkedList一样,ArrayList也是非同步的(unsynchronized)。实现长度可变的数组,采用和数组相同的存储方式,被称为动态数组,可以添加任何类型的数据,可以存储不唯一有序的对象Vector类 Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的 Iterator是同一接口,但是,因为Vector是同步的,当一个

13、Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。Stack 类 Stack继承自Vector,实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop 方法,还有peek方法得到栈顶的元素,empty方法测试堆栈是否为空,search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。Set接口 Set是一种不包含重复的元素的Collection,即任意的两个

14、元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。 很明显,Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。 请注意:必须小心操作可变对象(Mutable Object)。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true将导致一些问题。 Hashset 不能保存重复的对象,特点是存储的元素可以是无序排列,集合元素可以是空Map接口 请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 va

15、lue。Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射。 Hashtable类 Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 添加数据使用put(key, value),取出数据使用get(key),这两个基本操作的时间开销为常数。 Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节

16、省空间但相应的查找时间将增大,这会影响像get和put这样的操作。 使用Hashtable的简单示例如下,将1,2,3放到Hashtable中,他们的key分别是”one”,”two”,”three”: Hashtable numbers = new Hashtable(); numbers.put(“one”, new Integer(1); numbers.put(“two”, new Integer(2); numbers.put(“three”, new Integer(3); 要取出一个数,比如2,用相应的key:map的public Set keySet()返回所包含键的 set集

17、合,因为map中键是不能重复的,所以使用了set集合的不可重复的特性来做返回值类型.循环key for (String key : map.keySet() collections 与collection区别Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。CompareTo()比较同类的两对象顺序大小Sort()对list接口进行排序Fill()对集合元素进行替换3、遍历Iterator接口hasnext()是否存在课访问元素next()返回要访问

18、的下一个元素For(元素类型 元素名 :遍历的对象或者方法)引用了变量名的java语句4、常用类的用法1.StringBuffer类和StringBuilder类的区别所谓的线程安全问题就是同时有多个线程访问同一个资源时引起的数据混乱问题。StringBuffer是线程安全的,所以当它作为成员变量时不存在线程安全问题。StringBuilder是线程不安全的,在作为成员变量时有可能出现线程不安全问题。如果在方法内部使用一个这样的变量,用StringBuilder效率会更高,因为首先StringBuilder没有加锁,其次方法内部不存在线程安全问题。2.Math.random()与java.ut

19、il.random()的区别直接调用Math.random()是产生一个0,1)之间的随机数,如果用java.util.Random random=new Random();random.nextInt()这样产生一个长整型的随机数并且与上一次是一样的,如果过一会再产生就不会一样了,例如: for (int i = 0; i 10; i+) Random random=new Random(); Thread.sleep(100); System.out.print(int)random.nextInt(100)+ ); 就是产生不同的随机Long数了如果想用java.util.Random(

20、)产生指定范围的随机数就需要进行求模运算,进行一些处理。 同样 可以random.nextInt(100)产生100以内的随机数。一般最好用nextInt(范围)的,如果不是大量的运算的话,就可以用Math.random了,(因为他可以运算起来慢一些,浮点之后再取整)(int)(Math.random()*100)3.数据类型的包装类Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类,有些地方也翻译为外覆类或数据类型类。

21、int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 而实际的对象是在存储堆内存中 即 int i = 5;/直接在栈中分配空间 Integer i = new Integr(5);/对象是在堆内存中,而i(引用变量)是在栈内存中 在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理. 包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:基本数据类型(原始类型)包装类( 封装类)byteByteboolean

22、BooleanshortShortcharCharacterintIntegerlongLongfloatFloatdoubleDouble 在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。 对于包装类说,这些类的用途主要包含两种: a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。 b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。4.int 和 Integer 的区别java 提供两种不同的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Primitiv

23、e)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的 数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。5.Enum枚举在JDK1.5 之前,我们定义常量都是: public static fianl. 。,有了枚举,可以把相关的常量分组到一个枚举类型里6.日期时间类Date:用来

24、表示日期和时间SimpleData类格式化时间的类Calendar类用来操作时间的 类,是抽象类用getInstance获取其对象7.String1.字符串转换成字节数组 String s .getBytes()2.int three = Integer.parseInt(String.valueOf(zuo.charAt(2);/ 取数字字符串的第三个数3.contains(tuipiao)是否包含String类的构造方法/String类的构造方法/方法一:String();/方法二:String(byte bytes)/方法三:String (byte bytes,int index,in

25、t length)/方法四:String(char value)/方法五:String(char value,int index,int length)/方法六:String(String str).1、byte 转 stringbyte srtbyte;/声明一个byte字节数组String res = new String(srtbyte);/使用构造函数转换成字符串System.out.println(res);2、string 转 byteString str = Hello;/声明一个字符串byte srtbyte = str.getBytes();/使用string类的getByt

26、es方法进行转换也可以将byte转换的时候,设定编码方式相互转换,如下代码:String str = hello;byte srtbyte = null;srtbyte = str.getBytes(UTF-8);/设定转换的编码格式String res = new String(srtbyte,UTF-8);System.out.println(res);java中substring的用法strstr.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str;strstr.substring(int beginIn

27、dex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; 5、Java输入输出(IO流)结构图常用的1.文件Filejava io的开始:File流的本质也是对文件的处理,我们循序渐进一步一步从文件讲到流。java 处理文件的类 File,java提供了十分详细的文件处理方法,举了其中几个例子import java.io.*;public class FileExample public static void main(String args) throws IOException createFile(); /* *

28、文件处理示例 * author liuyd */ public static void createFile() try File f = new File(C:/刘彦登测试.txt); / 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 f.createNewFile(); / 返回由此抽象路径名表示的文件或目录的名称。 System.out.println(该分区大小 + f.getTotalSpace()/ (1024 * 1024 * 1024) + G); / 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 f.mkdirs(); / f.d

29、elete();/删除此抽象路径名表示的文件或目录 / 返回由此抽象路径名表示的文件或目录的名称。 System.out.println(文件名: + f.getName(); / 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。 System.out.println(文件父目录字符串: + f.getParent(); catch (IOException e) e.printStackTrace(); 2.字节流构造方法:public FileOutputStream(String name):创建一个具有指定名称的文件中写入数据的输出文件流public

30、FileOutputStream(String name,boolean append):创建一个向具有指定name的文件中写入数据的输出文件流。如果第二个参数为true,则将字节写入文件末尾处,而不是写入文件开始处public FileOutputStream(File file):创建一个向指定File对象表示的文件中写入数据的文件输出流public FileOutputStream(File file,boolean appended):创建一个向指定File对象表示的文件中写入数据的文件文件输出流。如果第二个参数为true,则将字节写入文件末尾处,而不是写入文件开始处。 总结:1、Fi

31、leInputStream是InputStream类(字节流输入)的子类,以字节流方式读取文件;FileInputStream的构造函数参数可以是File文件,也可以是字符串,但实际上使用File文件会更加规范。2、类似的,FileOutputStream是OutputStream类的子类,以字节流方式写入文件。如果进行写操作的文件不存在,责自动创建该文件。如果文件所在的路径也不存在则报错。3、与File类不同(File类关注的是文件在磁盘上的存储),FileInputStream,FileOutputStream关注是的文件的内容4.采用BufferOutputStream 类将FileOutputStream作为参数新建一个对象便可

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1