1、数据删除
- 物理删除 直接发送delete语句 就是物理删除 这种删除 删除之后不可恢复
- 逻辑删除 本质是更新 0 表示不可用 1 可用状态
update emp set is_active where id= ?
2、数据更新
1 显示所有数据
2. 点击修改按钮
此时 应该执行的动作-查询该用户信息 目的是将当前用户的数据显示出来(数据回显)
接下来 在当前数据的基础之上去修改数据
修改完成之后 点击修改(提交按钮),才是去执行真正的修改(update)
提交之后 数据是否修改成功。所以需要再次显示数据列表
case 3:
// 查询数据列表
controller.customerListShow();
//选择要修改的数据
System.out.println("请输入你要修改的客户的id:");
int id = sc.nextInt();
// 数据回显
Customer c1 = controller.customer(id);
// 修改数据 提交修改请求 执行update
System.out.println("请输入该客户的新的名称:");
String name = sc.next();
c1.setCname(name);
controller.updateCustomer(c1);
// 再次展示修改后的数据列表
controller.customerListShow();
break;
3、ORM映射(Object Release Mapper)
- DO (data object) 指的是与数据库进行交互的 需要保存到数据库的对象的封装
- PO(pojo)(plain object) 原生Java对象 是和数据库表对应的映射过来的实体
- VO(View object) 视图对象 需要在前端展示给客户的这种数据的封装对象
4、.Java虚拟机垃圾回收机制
垃圾回收发生的区域
程序计数器 本地方法栈 虚拟机栈这三个区域是与线程共存亡。
堆区和方法区是动态的,在分配和回收方面带有不确定性,所以这一部分是垃圾回收的重点区域
算法
Java虚拟机的垃圾回收机制是自动管理内存的重要机制,它负责回收不再使用的对象,以避免内存泄漏和内存溢出等问题。JVM的垃圾回收机制主要有以下几种:
-
标记-清除算法(Mark and Sweep):该算法将内存分为已使用和未使用两个部分,当垃圾回收器发现某个对象不再被引用时,会将其标记为垃圾,然后在未使用的内存中寻找足够的空间存放这些垃圾对象。该算法的缺点是会产生大量的内存碎片,影响程序的运行效率。
-
复制算法(Copying):该算法将内存分为两个相等的部分,每次只使用其中一个部分。当垃圾回收器发现某个对象不再被引用时,它会将存活的对象复制到另一个内存区域中,然后清空原来的内存区域。该算法的缺点是需要消耗一半的内存空间。
-
标记-整理算法(Mark and Compact):该算法将内存分为已使用和未使用两个部分,当垃圾回收器发现某个对象不再被引用时,它会将其标记为垃圾,并将存活的对象向内存一端移动,然后清空另一端的内存。该算法的缺点是需要整理内存空间,影响程序的运行效率。
-
分代算法(Generational):该算法将内存分为新生代和老年代两个部分,新生代中的对象生命周期较短,老年代中的对象生命周期较长。当垃圾回收器发现新生代中的对象不再被引用时,它会使用复制算法来回收内存,当老年代中的对象不再被引用时,它会使用标记-整理算法来回收内存。该算法的优点是能够根据对象的生命周期来选择不同的回收算法,提高回收效率。
以上是Java虚拟机的主要垃圾回收算法,不同的算法适用于不同的场景,选择合适的算法可以提高程序的性能和稳定性。
JVM堆区的垃圾回收机制主要包括以下几个步骤:
-
标记:垃圾回收器会遍历堆区中的所有对象,标记所有被引用的对象,标记完成后,所有被标记的对象都被认为是存活的对象。
-
清除:垃圾回收器会清除所有未被标记的对象,这些对象都被认为是垃圾对象。
-
压缩:在清除完垃圾对象后,垃圾回收器会将所有存活的对象移到堆区的一端,以便堆区的空间能够被更好地利用。
-
分配:在压缩完成后,垃圾回收器会将新的对象分配到堆区的剩余空间中。
需要注意的是,JVM堆区的垃圾回收机制并不是实时进行的。当堆区中的内存空间不足时,垃圾回收器会被触发,对堆区进行垃圾回收。堆区的垃圾回收机制会对程序的性能产生一定的影响,因此在设计程序时,需要注意对象的创建和销毁,以减少垃圾回收的频率和影响。
回收方法区
主要回收两部分:废弃的常量和不可使用的类型
判定一个类型是垃圾的三个条件:
1 该类的所有实例都已经被回收。
2 加载该类的加载器已经被回收
3 该类对应的class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法
分代收集理论
弱分代假说:认为绝大多是的对象都是朝生夕灭
强分代假说:熬过多次垃圾回收过程的对象就越难消灭
标记-清除算法
算法为标记和清除两个阶段。
标记可达或不可达对象 ,进行清除
有两个缺点:
执行效率不稳定
内存空间的碎片化问题严重
标记-复制算法
标记-整理算法
虚拟机使用的算法:平时采用标记清除算法,直到内存空间碎片化称帝大到影响对象分配时,在采用标记-整
理算法收集一次,获得规整的内存空间。