JAVA—为什么递归太深会导致栈溢出

  • Post author:
  • Post category:java

一、思考 对于这个问题,我是这样想的: 我们知道栈大小是可以通过参数(-Xss)设置的,栈是线程私有的,线程内部的每个方法调用会创建一个栈帧,所以如果“ 栈帧的数量*每个栈帧的大小>栈大小 ”时便会发生“栈溢出”。 这样的设想基于: -Xss设置的参数是针对每一个栈的,而非JVM所有线程栈内存总大小。 每个方法的调用将创建一个栈帧。 SUM(每个栈帧大小)>栈大小 发生栈溢出。 接下来…

继续阅读 JAVA—为什么递归太深会导致栈溢出

JAVA I/O 、NIO 文件读写性能对比

  • Post author:
  • Post category:java

NIO将文件映射到内存进行读写的性能会比普通的IO读写快很多! 下面就写个测试的demo,代码如下: package utils.nio; import java.io.*; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.FileChannel; /** * 文件名称: FileRe…

继续阅读 JAVA I/O 、NIO 文件读写性能对比

读写者问题-java实现

  • Post author:
  • Post category:java

读者—写者问题(Readers-Writers problem)也是一个经典的并发程序设计问题,是经常出现的一种同步问题。计算机系统中的数据(文件、记录)常被多个进程共享,但其中某些进程可能只要求读数据(称为读者Reader);另一些进程则要求修改数据(称为写者Writer)。就共享数据而言,Reader和Writer是两组并发进程共享一组数据区,要求: (1)允许多个读者同时执行读操作; (2)…

继续阅读 读写者问题-java实现

Java开发基础入门之Java代码是如何在机器上运行的

  • Post author:
  • Post category:java

计算机能识别的是机器指令码,简称机器码。机器码是二进制的,计算机可以直接识别,但与人类的语言差别太大,不容易被人理解和记忆。后来,就诞生了各种高级语言,人们用高级语言编写程序,然后通过把程序解释或编译成机器码。 比如python,就是一种解释型语言。Python程序源码不需要编译,可以直接从源代码运行程序。Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM…

继续阅读 Java开发基础入门之Java代码是如何在机器上运行的

Java 数字处理

  • Post author:
  • Post category:java

前段时间系统需要对大部分的数字进行处理,于是写了一个封装类。下面是参考网上资料进行的总结。 Java中对数字处理一般有3种方法。 1,数字的格式化一般用DecimalFormat DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够分析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数…

继续阅读 Java 数字处理

【深度挖掘Java底层源码】「底层技术原理体系」带你零基础认识和分析学习相关的异步任务提交机制FutureTask的底层原理

  • Post author:
  • Post category:java

」带你零基础认识和分析学习相关的异步任务提交机制FutureTask的底层原理 FutureTask的基本介绍 FutureTask的特点用法 FutureTask的执行流程 任务提交 AbstractExecutorService的主要特点和用法 对象模型转换传递流程 submit方法提交任务 RunnableFuture任务模型 FutureTask RunnableAdapter适配器模型 …

继续阅读 【深度挖掘Java底层源码】「底层技术原理体系」带你零基础认识和分析学习相关的异步任务提交机制FutureTask的底层原理

Java获取登录用户的IP地址

  • Post author:
  • Post category:java

package com.audaque.util; import java.net.InetAddress; import java.net.UnknownHostException; import javax.servlet.http.HttpServletRequest; public class GetIp { public String getIpAddr(HttpServletReque…

继续阅读 Java获取登录用户的IP地址

JavaScript继承之prototype 与 _ proto _关系

  • Post author:
  • Post category:java

__ proto__(隐式原型)与prototype(显式原型) 隐式原型指向创建这个对象的函数(constructor)的prototype 显式原型 每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象 隐式原型 JavaScript中任意对象都有一个内置属性[[prototype]],在ES5之前没有标准的方法访问这个内置属性,但是大多数浏览器都支持通过_…

继续阅读 JavaScript继承之prototype 与 _ proto _关系

Error:(1110, 48) java: 不兼容的类型: java.util.List<java.lang.String>无法转换为java.lang.String

  • Post author:
  • Post category:java

1.错误代码 2.根据提示,修改后的正确代码 版权声明:本文为qq_40756936原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/qq_40756936/article/details/120545050

继续阅读 Error:(1110, 48) java: 不兼容的类型: java.util.List<java.lang.String>无法转换为java.lang.String

数据结构(Java)—栈

  • Post author:
  • Post category:java

1.简介 栈是一种只能在一端进行插入(入栈)或删除(出栈)的线性表,表中运行进行插入,删除的一端为栈顶,另一端为栈底。 栈的特点是 先进后出 ,每次后进栈的元素先出栈,每次进栈的数据元素都放在栈顶充当新的栈顶元素,栈也被称为后进先出表。栈也分为顺序栈和链栈。 2.顺序栈 2.1简介 顺序栈主要是采用顺序存储结构来存储数据,和线性表一样,线性表也分为顺序表和链表,而栈也有顺序栈,通常使用数组来实现。…

继续阅读 数据结构(Java)—栈