学习笔记

JVM系列一(Java内存区域和对象创建).

阅读目录 一、JVM 内存区域 二、Java 对象创建 回到顶部 一、JVM 内存区域 堆 - Heap 线程共享,JVM中最大的一块内存,此内存的唯一目的就是存放对象实例,Java 堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”(Garbage Collected Heap),可以通过 -Xmx 和 -Xms 参数来控制该区域大小。 方法区 - Method Area 线程共享,它用来存储已被虚拟机加载的类信息(版本、字段、方法、接口等描述信息)、常量、静态变量、即时编译器编译后的代码等数据。 ...

[从今天开始修炼数据结构]栈、斐波那契数列、逆波兰四则运算的实现

一、栈的定义   栈是限定仅在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。栈又称后进先出的线性表,简称LIFO结构。   注意:首先它是一个线性表,也就是说栈元素有前驱后继关系。   栈的插入操作,叫做进栈,也称压栈、入栈   栈的删除操作,叫做出栈,也叫弹栈。   注意:最先入栈,不代表就要最后出栈。因为栈没有限制出栈的时间,例如可以先入栈两个元素,再出栈两个元素,后入栈其他元素。 二、栈的抽象数据类型    复制代码 ...

微服务 consul使用

前言 常见的注册中心有zookeeper 、eureka、consul、etcd。 从生态发展、便利性、语言无关性等角度来综合考量,选择consul,多数据中心支持,支持k-v能力,可扩展为配置中心。 github地址:https://github.com/hashicorp/consul consul官网:https://learn.hashicorp.com/consul consul特性 consul是分布式的、高可用、横向扩展的。consul提供的一些关键特性: service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。 ...

写自定义参数验证方式

 本次发表文章距上次发表已近有两月有余,原因是两月前离开了上家公司(离开原因可能会在年终终结叙述,本篇暂且忽略),来到了现在所在的京东集团,需要花时间熟悉环境和沉淀一下新的东西,因此写文章也暂时没那么勤奋了,不得不说这次是机遇也是对自己职业生涯的一次重要决定。...

单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?

实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效 性,因此要点也就以下两个:1、存储信任 ;2、服务器生产~验证信任 ; 3、拿到服务器再次验证。 单点登录的常见落地实现技术有哪些? 身份认证技术: 1. cas(单点登录) 2. Spring Security OAuth2(第三方登录授权:QQ登陆) 3. jwt (客户端token:原生) 安全控制框架: 1. spring-security 2. shiro: ...

Java并发之synchronized关键字深度解析(一)

 近期研读路神之绝世武学,徜徉于浩瀚无垠知识之海洋,偶有攫取吉光片羽,惶恐未领略其精髓即隐入岁月深处,遂急忙记录一二,顺备来日吹cow之谈资。本小系列为并发之亲儿子-独臂狂侠synchronized专场。...

enable_shared_from_this用法分析

一、背景 在为什么需要异步编程文章末尾提到,"为了使socket和缓冲区(read或write)在整个异步操作的生命周期一直保持活动,我们需要采取特殊的保护措施。你的连接类需要继承自enabled_shared_from_this,然后在内部保存它需要的缓冲区,而且每次异步调用都要传递一个智能指针给this操作"。本文就详细介绍为什么使用enabled_shared_from_this就能保证对象的生命周期,以及enabled_shared_from_this内部的具体实现分析。 二、为什么需要保证对象生命周期 ...

不止面试02-JVM内存模型面试题详解

第一部分:面试题 本篇文章我们将尝试回答以下问题: 描述一下jvm的内存结构 描述一下jvm的内存模型 谈一下你对常量池的理解 什么情况下会发生栈内存溢出?和内存溢出有什么不同? String str = new String(“abc”)创建了多少个实例? 第二部分:深入原理 ok,开始。怎们还是先讲原理,再说答案。如果时间不足,也可以直接跳到最后看答案。 本次分享我们主要围绕jvm内存结构展开,这也是java面试必考知识点之一。所以我们先来看看jvm内存结构到底是啥样子。 1. jvm内存模型 ...

Solr搜索引擎【索引提交、事务日志、原子更新】

 一.索引提交  当一个文档被添加到Solr中,但没有提交给索引之前,这个文档是无法被搜索的。换句话说,从查询的角度看,文档直到提交之后才是可见的。Solr有两种类型的提交:软提交和正常提交【也称硬提交】。...

cropperjs实践及中文文档(自译)

 cropperjs是一款非常强大却又简单的图片裁剪工具,它可以进行非常灵活的配置,支持手机端使用,支持包括IE9以上的现代浏览器。(关键是使用方法简单,几行代码就可以搞定) 实践效果图   如图,可以对指定的图片进行裁剪,可以自己选择裁剪的交互方式,如大小、纵横比等 还可以预览裁剪区域,确认裁剪后可以生成一个包含裁剪图的canvas对象,借助canvas的toDataURL方法可以生成一张Base64格式的图片。还有另外一种不使用canvas的方式,利用该工具丰富的api可以拿到裁剪区域相对于原图的各项数据,使用这些数据进行css绝对定位即可展示裁剪后的图,该方式可以保证图片不失真和完整。 ...

【前端】 在前端利用数学函数知识+box-shadow解波浪图形

序 今天正在刷数学函数相关题目,刷到了下面这篇文章,哇哦~有意思。 利用cos和sin实现复杂的曲线。传送门在下面。 CSS 技巧一则 -- 在 CSS 中使用三角函数绘制曲线图形及展示动画 正巧在复习一些数学知识,遂动手实践了一把使用 数学中的函数 使用css画连续曲线。 函数: 第一步 在数学中 函数 是指 ,一组定义域通过一组表达式, 映射到一组值域,也就是说 函数 f(x) = x^2 表示一个集合,每个输入x,固定通过x^2返回一个值y,由此定义可得: 当集合 X = {-2, -1, 0, 1, 2} 输入到函数f,得到的值域集合 Y = { y | y >= 0 }。 ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程