Java基础学习
weixin_46101560
这个作者很懒,什么都没留下…
展开
-
基于jdk的动态代理使用
文章目录什么是(jdk)动态代理?java动态代理类jdk动态代理使用 什么是(jdk)动态代理? 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。 而(jdk)动态代理是在反射基础上进行的动态实现的代理。(当然还有一些基于其他的: ASM(一个短小精悍的字节码操作框架)、cglib(基于 ASM)) java动态代理类 Java动态代理类位于java.lang.reflect包 //I原创 2022-05-09 19:29:51 · 335 阅读 · 0 评论 -
java基础——反射
反射机制简述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射 正常运行:导入所需要的包名(import—)——》通过new实例化——》取得实例原创 2022-03-06 11:24:43 · 242 阅读 · 0 评论 -
Java核心卷——为什么重写equals就必须重写hashCode
equals equals方法在Object类中是用来比对地址判断是不是同一个对象,等同于”==“。而在String等类中重写了方法,使其可以判断数据是否相同 //object public boolean equals(Object obj) { return (this == obj); } //String public boolean equals(Object anObject) { if (this == anObject) { retu原创 2022-01-15 22:09:40 · 146 阅读 · 0 评论 -
Java核心卷——抽象类和接口的联系和区别
抽象类 抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。 抽象类的特点 1、由abstract修饰的类叫做抽象类,也可以修饰抽象方法 2、abstract修饰的抽象方法可以不在抽象类当中实现,但一定要在子类当中重写,并实现 3、只有抽象类当中才能有抽象方法,普通类当中不能有抽象方法 4、抽象类当中不一定全是抽象方法,也可以使用普通方法,普通方法可以不用重写 5、抽象类不能被实例化,但是可以使用多态 6、final 不能和abstract同时使用,原创 2022-01-15 21:53:26 · 113 阅读 · 0 评论 -
Java核心卷——static关键字与初始化大乱斗
static 归类所有,只初始化一次,并且当类加载的时候才开始初始化 修饰变量 所有该类的对象共享一个静态变量 修饰方法 直接用类名调用即可 静态方法只能调用静态变量 class Test{ public int i=1; public static int j=2; public void print(){ System.out.println(j);//不报错 } public static void main(String[] args){ System.out.println(原创 2022-01-15 21:40:44 · 68 阅读 · 0 评论 -
Java核心卷——final关键字
final英文解释最终的,不可变的。 修饰类 该类不可被继承 final class A{ //A 是没有子孙的 } class B extends A{ //错误的, 无法从最终类A进行继承 //B类继承A类 相当于对A类功能进行扩展 //如果不希望别人对A类进行扩展,可以给A类加final关键字,如String类 } 修饰方法 不可以被重写(不能与abstract修饰一个方法) class C{ public final void doSome(){原创 2022-01-15 21:14:42 · 70 阅读 · 0 评论 -
Java核心卷——128陷阱
这是面试常见问题,也是一个坑 public class Test { public static void main(String[] args) { Integera = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(a==b);//true System.ou原创 2022-01-15 20:10:43 · 57 阅读 · 0 评论 -
Java核心卷——基本类型之间的转换
数值类型之间的合法转换 实线转化时没有数据精度损失,虚线是可能有数据精度损失 强制类型转换 必要时箭头可以逆向: double x = 9.997; int nx = (int) x;//9 double x = 9.997; int nx = (int)Math.round(x);//10 Java中的字符,字符串,数字之间的转换 //string 和int之间的转换 //string转换成int : Integer.valueOf("12"); //int转换成string : Strin原创 2022-01-15 19:49:48 · 84 阅读 · 0 评论 -
Java核心卷——基本类型的自动拆装箱
一、什么是装箱?什么是拆箱? 要讨论装箱拆箱就是先说基本类型及其对应的包装器类型: //在Java SE5以前生成1的Integer对象,需要用构造方法 Integer i =new Integer(1); //现在有自动装箱功能 Integer i=1;//会自动生成Integer对象,这就是装箱 //拆箱是将包装器类型转换为基本数据类型 Integer i=1;//装箱 int n=i;//拆箱 /** * int-Integert byte-Byte short-Short * long-Lon原创 2022-01-15 19:36:46 · 97 阅读 · 0 评论