2020-11-15

21 篇文章 0 订阅
本文探讨了Java编程的相关概念,包括机器码与字节码的区别、面向对象与面向过程的对比、Java语言特点以及基本数据类型。还涉及反射、动态代理、编译和反编译的过程,并讲解了泛型的使用和意义。此外,提到了Object的几个关键方法以及DFS算法在面试中的应用。
摘要由CSDN通过智能技术生成

11/15
每天给自己一个目标,背十道面试题,然后做5-7的算法题,这是今天的面试题
机器码和字节码区别
.java文件(源代码)经过JDK中javac编译,编译成.class文件(jvm可以看懂的java代码),然后再经过jvm,变成机器可以执行的二进制机器码

面向对象和面向过程的区别
面向过程:性能更高,开销更大
面向对象:易复用,易维护,易扩展,降低系统的耦合度,更加灵活

Java 语言有哪些特点
1.平台无关性(jvm可以在任何平台运行)
2.面向对象:
封装:把类私有化,并且设置允许外界访问的方法
继承:可以复用以前的代码
多态:相同事务调用相同方法,即使参数一样,所做的行为也不一样

8种基本数据类型
byte(1字节)char(2字节)short(2字节)int(4字节)float(4字节)double(8字节)long(8字节)

JAVA反射,动态代理
class.forName();
java反射是通过jvm类加载获取类的信息,以及字段的属性和方法,从而可以动态地创建类的对象和调用类的方法,
反射效率很低,并且破坏java的封装性,使得原本私有化的方法可以被反射访问到。
动态代理比静态代理要好的地方是:
动态代理可以实现无侵入式的代码扩展,也就是方法的增强,更加灵活

动态代理的原理
1.通过代理类的接口来获取这个代理类的全限名、方法列表以及异常列表
2.根据步骤一的类全限名、方法列表以及异常列表来生成对应的class文件字节流,其中方法的调用最后
会使用到invoationHanlder的invoke方法
3.使用类加载器来加载这个字节流,创建动态代理类对象
4.使用创建生成的代理类对象

编译
编译分为前端编译和后端编译两个部分
前端编译:.java文件变成.class文件
后端编译:由jvm的解释器来解释执行这个class文件

反编译
反编译,顾名思义就是将.class文件转换成.java文件

泛型
泛型方法:在定义泛型方法的时候,必须在返回值前面加一个<>,来声明这个是一个泛型方法,还得要一个泛型类的参数
泛型类:在类名之后加一个<>

泛型的意义和作用:
类型的参数化,就是可以把类型像方法的参数一样传递
泛型可以使得编译器在编译的期间对类型进行检查以提高类型的安全减少运行时不必要的差错

T<?extend B>只能读不能插入
T<?super B>只能插入不能读

Object的九个方法
1.equal 2.hashcode 3.wait 4.notify 5.notifyall 6.toString 7.clone 8.getClass 9.finalize

今天的算法,主要是DFS类,回溯,leetcode的经典中等题型。
有全排列,二维平面组合,熬过这个DFS就好!加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值