java
paulgeorge9527
泡椒:代码+篮球=人生
展开
-
递归导致栈溢出
递归在分析问题的时候很方便,但是在写实现的时候开销却很大,尤其是当递归层数太深的时候,内存就会溢出java里面JVM的机制在调用函数的时候任然是进栈和出栈,所以极易导致栈内存溢出,错误类型java.lang.StackOverflowError错误几天写的一段代码就出现了这个问题。大概结构是这样的:A(){if(){}//递归终止条件else(){for(){A();//这里进行了一个递归,当for循环次数过多,而且递归终止条件难以达成的时候,栈内存就会溢出}}}摸索了很久(确实是原创 2020-06-23 10:35:45 · 2114 阅读 · 0 评论 -
秒杀抢购
最近做了一个点餐的平台,其中涉及到一个很重要的问题,活动期间的秒杀系统的实现。抢购/秒杀是如今很常见的一个应用场景,是高并发编程的一个挑战,在网上也找了一些资料,大部分都是理论,关于java的实现也是很少,就算有也是很简单的demo,为此,决定将此次实现的秒杀系统整理一番,发布出来。架构思路Question1: 由于要承受高并发,mysql在高并发情况下的性能下降尤其严重,下图为Mysql性...转载 2019-05-16 06:26:20 · 664 阅读 · 0 评论 -
JVM总结
内存虚拟机规范中,将内存划分为六大部分,分别是PC寄存器(程序计数寄存器)、JAVA虚拟机栈、JAVA堆、方法区、运行时常量池以及本地方法栈。(由于运行时常量池是由方法区分配出来的区域。)内存管理对于内存管理可分为内存分配和内存释放这几个内存区域可以大致分为两部分,全局共享 和线程独有。对于线程独有这部分内存,有PC寄存器/JAVA虚拟机栈/本地方法栈。它们都是随着线程的启动而创建,随着...原创 2019-06-14 07:43:15 · 96 阅读 · 0 评论 -
java基础总结
1.1.排序:快排:选择排序:将第一个和后面每一个比较 最小的放前面。public static void sort( int[] arr){//外层循环的是轮数for( int j=0; j<arr.length-1 ;j++){//内层循环的是每一轮的比较for ( int i =j+1; i< arr.length ; i++){if( arr [j] <...原创 2019-06-14 07:53:01 · 568 阅读 · 0 评论