java基础复习

image.png

三大特性

  • 封装是指类的信息隐藏起来,不能给外部直接访问(可以反射获取),但是提供了公有的方法来获取他。
  • 继承是指一个类继承另一个类,就会继承他的公有属性和方法,并可以进行扩展。java支持单继承,但是可以继承多个接口
  • 多态是可以表现出不同的形态,有引用多态和方法多态两种。引用多态就是父亲的引用可以指向本类的对象或者子类的对象。方法多态是子类可以用重写后的父亲方法或者继承父亲的方法。

泛型

泛型可以减少一些代码量,复用模板就好。泛型可以把运行时的类型检查提前到编译期间。
泛型通过类型擦除来实现,编译器会在编译时期擦除所有泛型类型相关的信息,所以在运行时不存在任何泛型类型相关的信息。
泛型擦除是在编译成字节码时先进行类型检查,然后类型擦除,如果类型擦除和多态性发生冲突就在子类中生成桥方法解决,然后如果调用泛型方法的返回类型被擦除就在调用时强制类型转换。
限定通配符:如果是<? extends E>,我的理解是可以向下兼容,即可以是E和E的子类。如果是<? super E>,我的理解是向上兼容,可以是E和E的父类。

反射

java反射机制是在运行状态中,对于任意一个类来说,我可以得到他的所有方法和属性。对于任意一个对象来说,我可以调用他的任意一个属性和方法。
原理是java编译后生成一个class文件,反射通过字节码文件找到其中的属性和方法。
优点:动态执行,在运行时候可以根据业务功能来执行方法,属性,比较灵活
缺点:效率肯定比直接执行java代码低。性能不好。

注解

注解应该算一种标签,一种注释,告诉你接下来这个东西是用来干什么的,可以在编译期用预编译期进行处理,也可以在运行期通过反射机制处理。

接口与抽象类

  • 接口方法默认实现是public,接口里面的所有方法都不能实现(可以有默认实现),抽象类可以有非抽象的方法。
  • 接口变量只能用static,final修饰,抽象类不限制
  • 一个类只能实现一个抽象类,但是可以实现好多个接口,一个接口可以继承好多个接口。
  • 接口方法默认public修饰,抽象类方法不能用private修饰
  • 接口是对行为的抽象,是行为规范。抽象类是对类的抽象,是模板设计。

异常

异常结构

所有异常都有一个祖先Throwable,然后分为异常和错误这两类,错误是系统不能被程序本身处理,只能避免。异常是可以被catch然后处理的。Exceptions可以分为受检查异常(必须处理)和不受检测的异常(可以不处理)。

equals与==

==比较的是两个对象的地址是否相等,也即是判断两个对象是否是同一个对象。(基本数据类型比较的就是值,引用数据类型比较的是地址)。
equals分为有没有重写
有被重写(如int,string):比较的是两个对象的值是否相等
没被重写:比较的是两个对象的地址是否相等。

重写equals为什么要重写hashcode方法

因为两个对象hashcode相等,对象不一定相等,但是如果两个对象相等,则hashcode一定相等。
hashcode是对堆上的对象产生一个独特值,如果没重写hashcode,两个对象无论如何都不能相等。

String,StringBuffer,StringBuilder

StringBuffer是线程安全的,速度会慢一点
StringBuilder是线程不安全的,速度快一点
String使用final来修饰,所以字符串不可变,每次改变都是生成一个新的对象,然后指针指向新的String对象,线程安全。

final

final可以修饰变量,类,方法
修饰变量的时候,如果是基本数据类型的,那么他的值就无法更改,如果是引用数据类型的,他就不能指向另一个对象。
修饰类的时候,这个类就不能被继承,同时这个类里面的成员方法都会被指定为final方法。
修饰方法的时候,把方法锁定,防止其他继承类去修改他的含义,类中所有的private方法都隐式的被指定为final

static关键字

static可以修饰变量,方法,类,代码块。可以在不实例化对象的时候,就获取被修饰的变量。在static方法内部不能调用非静态方法,但是非静态方法可以调用静态方法。

内部类与静态内部类的区别

内部类 静态内部类
内部类中的方法和属性不可以声明为静态 静态内部类可以声明为静态或者非静态
如果要实例化内部类要先实例化外部类如A.B b = new A().new B() 可以直接A.B b = new A.B()
内部类可以引用外部类的静态或者非静态属性及方法 静态内部类只能引用外部类的静态属性及方法

java的值传递

java程序设计总是采用按值去调用,一个方法得到的是他的参数的拷贝,方法不能修改传递给他的参数内容。比如说我写一个void swap(int a,int b)交换的是a和b的拷贝,a和b实际上没有被交换。

深拷贝与浅拷贝

浅拷贝:对基本数据类型进行值传递,引用数据类型进行引用传递般的拷贝
深拷贝:对基本数据类型进行值传递,对引用数据类型创建一个新对象进行复制。

IO

  • 从流的流向分析,分为输入流输出流
  • 从流的操作单元分析,分为字节流和字符流
  • 从流的角色分析,分为节点流和处理流
    IO流的类都是从四个基类衍生出来的,四个基类分别是
  • InputStream/Reader:输入流的基类,前者字节流,后者是字符流
  • outputStream/Writer:输出流的基类,前者字节流,后者字符流

既然有了字节流,为什么要字符流

不管是文件操作还是网络操作,最小单元都是字节,为什么还要提供字符流
不同语言(英语,汉字等)占据多少个字节不一样,不知道编码类型就容易发生乱码,所以直接提供了一个字符流,方便对字符进行操作,字符流一般用来处理txt这种纯文字,字节流用于网络操作和文件操作。

BIO,NIO,AIO区别

BIO(Blocking I/O):同步阻塞IO模型,数据的读取写入必须阻塞在一个线程内完成,不能太多连接。
NIO(NonBlocking I/O):非同步阻塞模型,可以多连接的完成输入输出,如果连接少,也支持阻塞模型来输入。
AIO(Asynchronous I/O):异步非阻塞模型,应用操作之后直接返回,当后台处理完成的时候,再去通知对应的线程去处理后续操作。

重载与重写

重载:一个类中有多个名字一样,参数或者返回值不同的方法,就是重载。发生在编译期。
重写:子类继承父类后,对父类的一个方法进行重写,参数不变,对里面的内容进行修改。发生在运行期。

transient

transient关键字来防止某些字段序列化。只能修饰变量,当对象被反序列化时,被transient修饰的变量不会持久化和恢复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容