![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
和我抢昵称啊
想成为大佬呀
展开
-
JVM的五种引用方式
1、强引用 只有GC root对象都不通过[强引用]引用该对象时,该对象才可以被垃圾回收。 2、软引用 仅有软引用引用该对象时(没有强引用引用该对象),在垃圾回收后,内存依然不足的情况下,会再次触发垃圾回收,此时会回收软引用引用的对象。 可以配合引用队列来释放引用本身 public class TestPerson { public static final int _4MB = 4 * 1024*1024; public static void main(String[] args原创 2021-10-30 20:31:30 · 397 阅读 · 0 评论 -
public class 与class区别
类有两种修饰权限,public和没有修饰符,对与一个java文件,如果其定义有public修饰的类,那么此时文件名必须与其保持一致,且不能再定义其他用public 修饰的类,但可以定义多个没有修饰符的类 如果一个java文件有public修饰的类,那么程序入口main方法一定在其中,如果时多个class类,没有public修饰的类,那么main方法放在与文件名保持一致的类中 ...原创 2021-10-23 18:56:15 · 210 阅读 · 0 评论 -
java反射机制及动态代理
java反射机制(1) java反射机制(2) java反射机制(3) java反射机制(4)原创 2021-06-27 17:35:10 · 93 阅读 · 0 评论 -
内部类的相关问题
内部类的分类 成员静态内部类 成员内部类 局部内部类 匿名内部类 成员静态内部类 使用static修饰类,访问权限可以是public,private,protected,缺省值,相当于静态成员变量。静态内部类可以直接访问外部类的静态变量,静态方法,但是不能直接访问外部类的成员变量和成员方法,只能通过[对象.变量或者方法]的方式访问。 public class OuterClass { private static String s1 = "静态变量"; private String s2原创 2021-06-17 10:22:27 · 80 阅读 · 0 评论 -
接口和抽象类的区别
修饰关键词不同,接口使用interface,抽象类使用abstract 接口是完全抽象的,成员变量默认被public static final修饰,方法默认被public abstract修饰,而抽象类可以使用不同的修饰符修饰成员变量,也可以有实现过的方法。 类可以实现多个接口,但是只能继承一个抽象类。 接口和抽象类都没有构造方法,均不能被实例化 jdk1.8之后接口中被default修饰的方法可以在抽象类中实现。 ...原创 2021-06-17 08:57:44 · 70 阅读 · 0 评论 -
java中的final关键字
(1)final 可以修饰类、方法、成员变量和局部变量,当其修饰类时,该类不能够被继承,当其修饰方法时,该方法无法被覆盖(可以重载),而当其修饰成员变量和局部变量时,必须显示的进行初始化。 (2)final修饰的成员变量一般不与static连用,static修饰变量时有更改的需求,但是final修饰的变量不能更改。 (3)final修饰引用类型时,该引用不能再指向其他对象,但是该对象内部的属性是可以修改的。 (4)抽象类和抽象方法不能被final修饰,抽象类需要被继承,而抽象方法需要被实现,而被final修原创 2021-06-17 08:43:03 · 69 阅读 · 0 评论 -
java中static关键字
修饰成员变量 成员变量被static关键字修饰,那么这个变量不再属于对象本身所有,而是属于所在的类,多个对象共享同一份数据。 修饰成员方法 如果成员方法被static修饰,那么该方法就变成了静态方法,静态方法不属于对象,而是属于类,调用方式【类名.静态方法名】 注意事项 静态只能访问静态,不能访问非静态,这是因为内存中先有静态内容,后有非静态内容。 静态方法不能使用this,因为this指向的是当前对象,而静态方法中是不需要对象。 内存图 静态代码块 用途:用于初始化静态成员变量。 ...原创 2021-05-20 16:08:04 · 61 阅读 · 0 评论 -
java中的String
概念 String代表字符串,java语言中所有双引号的字符串都是String的对象,不管是否是new出来的对象。 特点 String类由于被final修饰,因此字符串的内容一旦被初始化就不能够改变,只能重新创建。 字符串由于不能被改变,因此其能共享使用。 字符串底层使用char[]数组存储。 创建方式3+1 三种构造方式: public String():创建空字符串对象 public String(char[] array):使用char数组创建字符串 public String(byte[] a原创 2021-05-19 22:26:03 · 138 阅读 · 3 评论 -
java基础
java语言的特点 java语言的优点 跨平台,一次编写,到处运行。 提供了内存管理机制,自动分配和回收内存。 对指针进行了封装。 取消了多重继承,仅支持单继承,但可以实现多个接口。 为啥一个文件内只能有一个public修饰的类名? 一个.java文件的名称必须和public修饰的类名相同,因此一个文件中只能有一个public修饰的类名。 命名规则 java中的关键字 语法错误和语义错误 语法错误:不符合编程语言的规定,这类错误不能通过编译器编译。 语义错误:能通过编译器,但是执行结果不正确。原创 2021-05-19 10:25:02 · 59 阅读 · 0 评论 -
java,javase,javaee区别
Java:是一门编程语言 javase和javaee是java开发平台的三个版本,是一种开发技术。 javase:Java Standard Edition,Java标准版,就是一般Java程序的开发就可以(如桌面程序),可以看作是JavaEE的子集。 Javaee:是指Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等。也叫J2EE。 下图是它们之间的关系 ...原创 2021-05-18 21:20:50 · 1145 阅读 · 0 评论 -
java继承的相关总结
子类继承父类: 子类拥有父类的所有属性和方法,包含父类的私有方法和属性,但是不能使用父类的父类的私有属性和方法。 在内存中:一个子类被创建的时候首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类对象。 子类继承父类可以这样理解: 子类对象确实拥有了父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问到的,只是拥有,但是如果父类中的私有属性有get方法,子类可以调用get方法访问父类的私有属性。 子类对父类方法的重写的原创 2021-04-13 15:53:09 · 105 阅读 · 0 评论 -
java重载和重写的区别
区别 重载 重写 类 本类 父类与子类 方法名称 必须一致 必须一致 参数列表 可以修改 必须一致 返回类型 可以修改 必须一致 异常 可以减少和删除,但是不能扩展,即子类方法抛出的异常不能大于父类 可以修改 重载(Overloading) 重载发生在本类,方法名相同, 区分不同重载方法只和参数列表,参数个数,参数类型有关,与返回值无关。 重载(Overload):首先是位于..原创 2021-02-03 17:53:39 · 412 阅读 · 0 评论 -
java实例化对象的四种方式
java实例化对象的4种方式 用new 语句创建对象,这是最常用的创建对象方法。 package test; public class Father { public void print() { System.out.println("我是father"); } public static void main(String[] args) { Father f = new Fa...原创 2020-01-02 21:19:50 · 3503 阅读 · 1 评论 -
java中继承的相关问题
关于继承问题子类实例化 原理: 如果一个类继承了其他类,那么在初始化的时候,super默认先调用父类的无参构造,(这个是java自己调用,不需要显式的写出来)或者super调用有参构造,(这种必须自己显式的调用,因为java不知道你要调用父类的那个有参构造方法),之后调用子类的构造器实例化子类的属性。 注意:如果 要显式的调用父类的构造方法,super必须位于子类构造器的第一行。 关于th...原创 2020-01-02 20:35:57 · 775 阅读 · 0 评论