- 博客(21)
- 收藏
- 关注
原创 JVM思维导图
JVM有三个类加载器,分别是启动类加载器、扩展类加载器和应用程序类加载器。类加载器的作用是将编写好的Java源代码转换为能够在JVM上运行的Java类文件。其中方法区存储着类信息、常量等,堆则存储着所有的对象实例,栈则用于存放方法的局部变量表、操作数栈、方法出口等信息。最后,JVM提供了本地方法接口,在需要访问底层系统资源时,通过本地方法接口可以直接调用底层C或C++代码。│ └─应用程序类加载器。│ ├─启动类加载器。│ ├─扩展类加载器。│ ├─方法区。
2023-05-02 14:17:36
164
原创 Oracle数据库数据分组后字符串拼接SQL
WM_CONCAT:1. 支持DISTINCT2. 返回值分隔符恒为,3. 在PLSQL环境中,WM_CONCAT使用distinct会报错4. 没法排序5. 官方并不推荐使用WM_CONCAT函数,因此尽量少用LISTAGG:1. 不支持DISTINCT解决方法:①.先distinct,结果再listagg②.自定义聚合函数来取代listagg函数3. 返回值的分隔符可以自定义4. 返回值类型是VARCHAR2。
2023-04-25 14:08:52
3392
原创 设计模式-单例模式(JAVA实现)
这种方式基于 classloder 机制避免了多线程的同步问题,不过,instance 在类装载时就实例化,在单例模式中大多数都是调用 getInstance 方法,但是导致类装载的原因有很多种,因此不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化 instance 就没有达到 lazy loading 的效果。这种方式和上面的方式其实类似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块中的代码,初始化类的实例。优缺点和上面是一样的。避免了线程同步问题。
2023-04-25 00:30:00
102
原创 JAVA排序实现总结
希尔排序实质上是采用分组插入的方法,先将整个待排序记录序列分成几组,从而减少参与直接插入排序的数据量,对每组分别进行直接插入排序,然后增加每组的数据量,重新分组,这样经过几次分组后,整个序列基本有序,在对全体进行插入排序,希尔排序记录的分组,不是简单的逐段分组,而是将相隔某个记录增量的记录分成一组。(1)设待排序的记录存放在数组r[n]中,第一趟从r[1]开始,通过n-1次比较,从n个记录中选取最小的记录,记为r[k],交换r[1]和r[k]
2023-04-11 22:15:19
216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人