Java基础核心考点归纳

一个毕业一年的计科学生做的部分考点总结
摘要由CSDN通过智能技术生成

Java

什么是面向对象

面向过程注意函数内部细节的细节,每一步的步骤和顺序、每一步逻辑是具体怎么实现的。
面向对象是一种相对于面向过程,更注重参与者(对象),各自需要做什么 的设计方式。特点是封装,继承和多态。
面向过程更加直接高效,面向对象更加易于维护,复用和拓展。
封装的特点:内部细节对外部调用隐身,外部调用不需要关心内部逻辑怎么实现的。
比如JavaBean的属性私有,提供get set方法对外访问。属性的获取和修改只能由JavaBean本身决定,不能由外部修改
再比如ORM框架,操作数据库,我们不需要关心sql是如何执行的,只需要引入Mybatits,调用方法既可、
,不需要知道框架具体做了什么。

继承的特点: 继承父类的方法和属性,做出自己的改变或拓展,不需要再定义父类的方法或属性。一个类只能直接继承一个父类。

多态的特点:父类引用指向子类对象,外部对同一个方法的调用,基于对象所属类的不同,实际执行的逻辑也不同。多态定义一个对象时,使用变量名.方法名()调用子类的方法(即调用等号右边真实类型,new什么就是什么类的方法),无法调用子类特有方法。成员变量不具备多态性,系统总是试图访问子类编译类型定义的成员变量(即等号左边)。

内部类是什么?

内部类是Java中类的一种定义方式,内部类有四种:分别是成员内部类,静态内部类,匿名内部类和局部内部类
多线程是什么?

多线程是指在同一程序中有多个顺序流在执行

多线程的三种创建方式

继承Thread并且重写run方法,实现Runnable接口,实现Callable接口
Thread1 a=new Thread1();
a.start();

MyRunnable myRunnabble=new MyRunnable();
Thread a=new Thread(myRunnabble);
a.start();

MyCallable 实现callble接口,创建FutureTask,参数放入mycallable,futuretask有俩方法isdone()和get();
前者不会阻塞,用来判断是否结束;后者会阻塞 ,获得返回结果

Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞主线程直到获取‘将来’结果;当不调用此方法时,主线程不会阻塞

说说==和queals的区别

==:

比较的是变量(栈)内存中存放对象的(堆)内存地址,用来判断两个对象地址是否相同,即是否是同一个对象

equals:

Object类中默认使用 ==,可以重写。
String类中被重写为 比较两个对象中字符串的内容是否相等

HashCode作用:

hashCode()作用是获取哈希码,也称散列码,(字符串key通过一个函数(可能是补码集)变成数字累加跟数组size取余)根据对象的内存地址返回一个Int整数。作用是确定该对象在hash表中的索引位置。

HashSet如何检查重复来说明HashCode作用

Java的集合有两类,一类是List,还有一类是Set。前者有序可重复(可以放任意Null),后者无序不可重复(一个Null),前者可以get,itertor,后者不可,只能itertor.
以上是附加分:

当一个对象加入HashSet时,会调用这个对象的Hashcode()得到一个值,通过这个值找到一个物理地址,这个物理地址上如果有其他元素,则进行equals比对,相同就不存了,不同就散列到其他地址,如果没有,直接存储在这个物理地址位置上。
这是备用说法

List和Set区别

前者有序可重复(可以放任意Null),后者无序不可重复(一个Null),前者可以get,itertor,后者不可,只能itertor.

什么是散列表

根据key值进行直接访问的数据结构,由数组和链表组成。

instanceof关键字作用

用来检测一个对象是否是一个类的实例,用法为:
boolean result=obj instanceof Class
obj为一个对象,Class为一个类

什么是字节码

我们编写的.java文件,经过编译后,生成.class字节码文件,虚拟机将字节码解释执行。好处是字节码具有与平台无关性,字节码不针对某种机器而针对虚

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值