- 博客(5)
- 收藏
- 关注
原创 Java八股文(基础-下)
设计目的:抽象类通常用于部分实现共同行为的类层次结构,而接口用于定义公共行为契约。继承和实现:类只能继承一个抽象类,但可以实现多个接口。方法的实现:抽象类可以包含抽象方法和非抽象方法,而接口传统上只包含抽象方法,但在JDK 8之后可以包含默认方法和静态方法。状态和行为:抽象类可以包含具体的状态和行为,而接口通常只定义行为(尽管JDK 8之后可以通过默认方法包含行为)。在选择使用抽象类还是接口时,需要考虑类的继承结构、功能的复杂度以及系统设计的灵活性需求。
2024-04-28 14:34:40
1496
原创 Java八股文(基础-上)详版
在编程语言中,“按值调用”(call by value)和"按引用调用"(call by reference)是两种不同的参数传递机制。然而,Java实际上采用的是一种混合机制,通常被称为"按共享对象调用"(call by sharing)。按值调用(Call by Value)在按值调用中,函数接收的是参数值的一个副本。在函数内部对参数的任何操作都不会影响到原始参数,因为它们是两个完全独立的变量。Java中的基本数据类型(如int、float、char等)就是按值调用的。
2024-04-26 15:00:32
1345
1
原创 Java八股文(基础-上)简略版
注解是一种标记,使类或接口附加额外信息,帮助编译器和 JVM 完成一些特定功能,例如@Override标识一个方法是重写方法。元注解@Target:约束作用位置,值是 ElementType 枚举常量,包括 METHOD 方法、VARIABLE 变量、TYPE 类/接口、PARAMETER 方法参数、CONSTRUCTORS 构造方法和 LOACL_VARIABLE 局部变量等。
2024-04-26 14:59:22
701
2
原创 Java八股文(线程-下)
在Java中,死锁是指两个或多个线程永久地被阻塞,它们都在等待对方释放锁。这通常发生在每个线程持有一些资源并且等待获取其他线程持有的资源时,如果没有外力干预,这些线程都无法继续执行。例如,假设有两个线程:线程1和线程2,以及两个锁:锁A和锁B。如果线程1持有锁A并且尝试获取锁B,同时线程2持有锁B并且尝试获取锁A,那么这两个线程就会相互等待,导致死锁。避免嵌套锁:尽量避免一个线程同时获取多个锁。如果确实需要,确保总是以相同的顺序获取锁。使用超时:可以使用tryLock()方法(在。
2024-04-25 14:57:16
2089
1
原创 Java八股文(线程-上)
线程池就是提前创建若干个线程,如果有任务需要处理,线程池里的线程就会处理任务,处理完之后线程并不会被销毁,而是等待下一个任务。由于创建和销毁线程都是消耗系统资源的,所以当你想要频繁地创建和销毁线程的时候就可以考虑使用线程池来提升系统的性能。降低资源消耗:通过复用已存在的线程,减少线程创建和销毁的性能开销。提高相应速度:任务到达时,无需等待线程创建即可立即执行。提高线程的可管理性:线程池可以统一管理线程,例如,设置线程的最大数量、线程的优先级等。
2024-04-25 14:21:27
943
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人