- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 算法与数据结构
/交换两个不满足条件的元素。数组:使用连续的内存空间地址去存放数据,插入和删除数据不方便。链表:使用多个不连续的内存空间去存数据,可以节省内存资源。//满足小于基准的条件,指针右移。//满足大于基准的条件,指针左移。1.数组和链表的区别?
2023-12-15 09:30:17
340
原创 (六)spring
AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;大家看到了吧,由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第三方”了,全部对象的控制权全部上缴给“第三方”IOC容器,所以,IOC容器成了整个系统的关键核心,它起到了一种类似“粘合剂”的作用,把系统中的所有对象粘合在一起发挥作用,如果没有这个“粘合剂”,对象与对象之间会彼此失去联系,这就是有人把IOC容器比喻成“粘合剂”的由来。
2023-12-14 16:32:56
1362
1
原创 (七)hibernate
不过,如果你的持久化类实现了一个接口而且在该接口中声明了所有定义于实体类中的所有public的方法轮到话,你就能够避免出现前面所说的不利后果。getCurrentSession ,从字面上可以看得出来,是获取当前上下文一个session对象,当第一次使用此方法时,会自动产生一个session对象,并且连续使用多次时,得到的session都是同一个对象,这就是与openSession的区别之一,简单而言,getCurrentSession 就是:如果有已经使用的,用旧的,如果没有,建新的。
2023-12-14 15:48:20
1543
1
原创 (五)多线程
这时此线程是处于就绪状态, 并没有运行。然后通过此Thread类调用方法run()来完成其运行状态, 这里方法run()称为线程体,它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止。创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程。创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求增加时,则可以自动添加新线程,线程池的规模不存在任何限制。
2023-12-14 10:21:03
1330
1
原创 基础(三)
String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。不一样,因为内存的分配方式不一样。JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。
2023-12-13 15:17:04
320
原创 容器(二)
最明显的区别是 ArrrayList底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。3.jdk1.8以后,提升了性能,当链表中的节点超过8个以后,链表会转为红黑树以提高查询效率,由o(n)变为 log(n)
2023-12-13 14:33:32
275
原创 (一)mysql
数据库的乐观锁需要自己实现,在表里面添加一个 version 字段,每次修改成功值加 1,这样每次修改的时候先对比一下,自己拥有的 version 和数据库现在的 version 是否一致,如果不一致就不修改,这样就实现了乐观锁。具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。左连接是左边的表全部显示出来,右边的表显示出符合条件的数据;
2023-12-13 13:31:03
766
27_多线程_第2天(线程安全、线程同步、等待唤醒机制、单例设计模式)_讲义.doc
2019-12-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人