并发编程中的一些基础知识 进程和线程进程进程是程序运行的基本单位。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,我们启动 main 函数时其实就是启动了一个 JVM 的线程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。 线程线程是比进程更小的程序执行单位,一个进程在其执行过程中可以产生多个线程。 同一个进程中的多个线程共享一个 堆 和 方法区,但每个线程有自己 独立 的 2025-03-12 Java > Java并发编程
浅谈 equals() 和 hashCode() equals() 和 ==== 可以用来判断基本数据类型和引用数据类型: 对于基本数据类型来说,== 比较的是值。 对于引用数据类型来说,== 比较的是对象的内存地址。 equals() 只能用来判断两个对象是否相等。 equals() 方法存在于 Object 类中,所以所有类都有 equals() 方法。 Object 类中 equals() 方法的实现: 123public boole 2025-03-12 Java > Java基础
Java代理模式 代理模式属于一种设计模式,简单来说就是我们实现一个代理对象,使其代替对真实对象的访问,这样就能够在不修改原对象的基础上来提供额外操作。代理对象的主要作用就是扩展目标对象的功能,比如在目标方法的执行前后添加一些自定义的操作。代理模式有 静态代理 和 动态代理 两种实现方式。 静态代理静态代理的几个特点: 一对一。每个目标类都要单独写一个代理类。 纯手动。对每个方法的增强都是手动完成的,一旦接口中添 2025-03-12 Java > Java基础
向上转型与向下转型 向上转型与向下转型是 Java 中关于父子对象转换的两个概念。 假如我们有如下代码: 12345678910111213141516171819202122232425262728293031323334// 父类public class Animals { public int age = 0; public void eat(){ System.o 2025-03-12 Java > Java基础
OOP:封装、继承、多态 OOP:封装、继承、多态封装封装就是把一个对象的状态信息隐藏在对象内部,不允许外部对象直接访问;但是可以对外提供一些方法来操作属性。其他对象只能通过已经授权的操作来和封装的对象进行操作,而无需了解其内部的实现细节。 继承不同类型的对象之间经常会有一些共同点,同时每一个对象中又定义了额外的特性使他们与众不同,我们通过继承就可以使得复用之前的代码非常容易。通过继承,我们可以直接使用父类的属性和方法,又 2025-03-12 Java > Java基础 #Java