javaorm的原理分析
我们在讨论ORM实现映射的时候,很多人对于映射的实际过程不是很了解,这就导致对于其原理的理解上一知半解。本篇会将对象之间的映射为大家带来完整的流程展示,帮助大家弄清楚ORM简化数据库操作的过程,并得出原理的结论,最后再带来一个orm的用法实例分享。1.ORM映射关系在实际开发中,程序...
2024-01-10jvm之栈、堆
1. Java Virtual Machine 人群当中,一位叫java的小伙子正向周围一众人群细数着自己取得的荣耀与辉煌。就在此时,c老头和c++老头缓步走来,看着被众人围住的java,c老头感叹地对着身旁的c++说道:“原以为你就可以挑起我的梁子一直走下去的。” c++笑着回应道:“江山代有才人出,这世界以后总会...
2024-01-10浅析js中mvvm模式实现的原理
以Vue.js框架为例子,使用的mvvm模式view指的是页面的html和css构成的视图。model指的是从后端取到的数据模型viewmodel 指的是前端开发人员组织生成和维护的视图数据层。这一层包含的是视图行为和数据。视图行为指的是如页面加载进来时请求什么,将指定的数据放到指定的元素上,点击某个元素触...
2024-01-10查看jvm的cg情况
1.查询java程序的pidps -ef|grep java 查询或者top 查询2.使用jstat查看gc情况jstat -gc pid 1000[间隔时间] 得到如下bash-4.4# jstat -gc 28 1000 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 34048.0 ...
2024-01-10类的加载过程(深入理解jvm)
1.1.通过类的全限定名找到二进制字节流1.2.将字节流中的静态存储结构转化为方法区中的动态存储结构1.3.在内存中生成一个java.lang.Class对象作为方法区这个类各种数据的访问入口2.验证:校验字节码文件是否符合规则,是否会破会虚拟机的安全性2.1.文件格式验证(是否符合class格式要求,可以被虚拟...
2024-01-10详解jvm中的标量替换
概述通常在java中创建一个对象,大家都认为是在堆中创建。 在jdk6开始有逃逸分析,标量替换等技术,关于在堆中创建对象不再绝对。关于标量替换,通过以下几点进行概述:逃逸分析标量替换是什么测试标量替换逃逸分析逃逸分析是一种分析技术,分析对象的动态作用域,供其他优化措施...
2024-01-10【JS】理解js中堆栈原理
回顾js数据类型有哪些?ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。复习一下两种数据类型各有哪些:基础类型(Undefined, Null, Boolean, Number, String, Symbol(ES6新添加的))一共6种引用类型(Obje...
2024-01-10浅谈jvm中的垃圾回收策略
java和C#中的内存的分配和释放都是由虚拟机自动管理的,此前我已经介绍了CLR中GC的对象回收方式,是基于代的内存回收策略,其实在java中,JVM的对象回收策略也是基于分代的思想。这样做的目的就是为了提高垃圾回收的性能,避免对堆中的所有对象进行检查时所带来的程序的响应的延迟,因为jvm执...
2024-01-107种jvm垃圾回收器,这次全部搞懂
前言之前我们讲解了jvm的组成结构与垃圾回收算法等知识点,今天我们来讲讲jvm最重要的堆内存是如何使用垃圾回收器进行垃圾回收,并且如何使用命令去配置使用这些垃圾回收器。堆内存详解上面这个图大家应该已经很明白了吧。大家就可以理解成一个房子被分成了几个房间,每个房间的作用不同...
2024-01-10JVM栈帧之操作数栈与局部变量表
前置知识阅读本文需要对以下知识有所了解: * 栈 * 汇编 * Java 基础 * 逆波兰表达式(有学过的同学阅读本文毫无障碍)引子基于寄存器的设计模式就我们所熟知的x86或arm指令集来说,其对数据的操作都是基于寄存器。例如,要对两个数执行加法操作则需要将这两个数分别送入两个寄存器再执行加法操...
2024-01-10再看 JVM(2)
文章太长了,分2篇写吧,上一篇:再看 JVM(1)堆内存想必大家对堆内存都是耳熟能详了,自己都去仔细研究过了,但是这里还是要重点说明,尽量力争全面,有些细节点的点还是有很多人不知道的 φ(≧ω≦*)♪堆内存特点几乎所有的对象实例都在堆空间分配内存方法结束后,堆中的对象不会马上...
2024-01-10JVM栈和栈帧
前情提要对于没有深度递归的函数来说,无需担心上篇文章中的算法。当知道正在处理数据集有限时,我会使用这种简单的基本递归形式。由于你并不知道在应用程序中会处理多少数据,因此确保你的递归算法是尾递归(tail-recursive)就变得十分重要,否则你将可能遇到讨厌的 StackOverflowError.举个例子,...
2024-01-10JVM
如果需要热部署,使用“双亲委派”是不行的,如何打破“双亲委派”呢~一. 源代码“双亲委派”源代码如下(ClassLoader.java):public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, false);}protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoun...
2024-01-10HiveonMR调优
当HiveQL跑不出来时,基本上是数据倾斜了,比如出现count(distinct),groupby,join等情况,理解 MR 底层原理,同时结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化。Hive on MR 调优主要从三个层面进行,分别是基于MapReduce优化、Hive架构层优化和HiveQL层优化。MapReduce调优...
2024-01-10JVM调优的基本思路
和Web应用程序一样,Tomcat作为一个Java程序也跑在JVM中,因此如果要对Tomcat进行调优,需要先了解JVM调优的原理。而对于JVM调优来说,主要是JVM垃圾收集的优化,一般来说是因为有问题才需要优化,所以对于JVM GC来说,如果观察到Tomcat进程的CPU使用率比较高,并且在GC日志中发现GC次数比较频繁、GC停顿...
2024-01-10面试中必问的jvm与性能优化
三个加载器各自完成自己的工作,但它们是如何协调工作呢?哪一个类该由哪个类加载器完成呢?为了解决这个问题,Java采用了委托模型机制。 委托模型机制的工作原理很简单:当类加载器需要加载类的时候,先请示其Parent(即上一层加载器)在其搜索路径载入,如果找不到,才在自己的搜索路径搜索...
2024-01-10vue的MVVM原理
参考vue的MVVM,模拟了数据劫持、数据代理、数据编译、发布订阅、数据更新视图、双向数据绑定、computed(计算属性) 、mounted(钩子函数)等功能。页面调用:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=dev...
2024-01-10vue介绍以及相关概念理解大全
1.什么是vue以官网的解释来说,vue是渐进式javascript框架。Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具...
2024-01-10vue中key的作用和工作原理
key值的作用key值大多情况下使用在循环语句中,从本质来讲主要作用大概有以下两点:主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes,相当于唯一标识ID。Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染, 因此使用key值可以提高渲染效率,同理,改变某一元素的k...
2024-01-10vue-ssr的实现原理连载(二)
在上一篇文章中,通过一个koa服务和vue-server-renderer创建了一个简单vue服务端渲染。这一片文章让我们来进一步填充,并在vue开发中使用ssr。这一节我们来继续实现vue的ssr,本节所有源码可以查看我的github: https://github.com/Jasonwang911/vue-ssr/tree/master/step2 ,欢迎star首先在上一篇代码中继续搭建一个简单的...
2024-01-10Vue2 响应式原理
我们经常用vue的双向绑定,改变data的某个属性值,vue就马上帮我们自动更新视图,下面我们看看原理。Object的响应式原理:可以看到,其实核心就是把object的所有属性都加上getter、setter,get时收集依赖,set时通知依赖,达到响应式更新的目的。但是显而易见的,这种方法无法监测到data增加属性和删...
2024-01-10Java NIO Buffer实现原理详解
目录1、Buffer的继承体系2、Buffer的操作API使用案例3、Buffer的基本原理4、allocate方法初始化一个指定容量大小的缓冲区5、slice方法缓冲区分片6、只读缓冲区7、直接缓冲区8、内存映射1、Buffer的继承体系如上图所示,对于Java中的所有基本类型,都会有一个具体的Buffer类型与之对应,一般我们最经常使用...
2024-01-10详解Vue响应式原理
摘要: 搞懂Vue响应式原理!作者:浪里行舟原文:深入浅出Vue响应式原理Fundebug经授权转载,版权归原作者所有。前言Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作...
2024-01-10vue常见知识点整理
什么是 mvvm?MVVM 是 Model-View-ViewModel 的缩写。mvvm 是一种设计思想。Model 层代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑;View 代表 UI 组件,它负责将数据模型转化成 UI 展现出来,ViewModel 是一个同步 View 和 Model 的对象。在 MVVM 架构下,View 和 Model 之间并没有直接的联系,而是通过 ...
2024-01-10Vue源码--解读vue响应式原理
原文链接:https://geniuspeng.github.io/2018/01/05/vue-reactivity/Vue的官方说明里有深入响应式原理这一节。在此官方也提到过:当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。Object.defineProperty 是 ES5 中一个无法 shim...
2024-01-10vue之数据代理详解
目录一、下面我讲的是前端人员在vue-cli中就可以完成的一种解决方式——数据代理二、上面的数据代理还是有以下缺陷的总结解决跨域的方式有多种,例如jsonp、cors但这两种都需要后台人员的帮助,一、下面我讲的是前端人员在vue-cli中就可以完成的一种解决方式——数据代理(1)首先需要在vue-cli官方...
2024-01-10