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-10深入理解vue
一 理解vue的核心理念使用vue会让人感到身心愉悦,它同时具备angular和react的优点,轻量级,api简单,文档齐全,简单强大,麻雀虽小五脏俱全.倘若用一句话来概括vue,那么我首先想到的便是官方文档中的一句话:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。这句话可能大家并不陌生,...
2024-01-10Vue响应式系统的原理详解
目录vue响应式系统的基本原理1.回顾一下Object.defineProperty的用法2.实战1:使用 Object.defineProperty 对 person的age属性 进行监听3.数据代理4.vue中实现响应式思路总结1.Vue中的数据代理:2.Vue中数据代理的好处:3.基本原理:4.vue中实现响应式思路vue响应式系统的基本原理我们使用vue时,对数据进行操作,就能...
2024-01-10Vue 进阶系列之响应式原理及实现
需求现在有一个需求,有a和b两个变量,要求b一直是a的10倍,怎么做?简单尝试1:let a = 3;let b = a * 10;console.log(b); // 30乍一看好像满足要求,但此时b的值是固定的,不管怎么修改a,b并不会跟着一起改变。也就是说b并没有和a保持数据上的同步。只有在a变化之后重新定义b的值,b才会变化。a = 4;consol...
2024-01-10vue整理知识点
一、对于MVVM的理解?MVVM 是 Model-View-ViewModel 的缩写。Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。View 代表UI 组件,它负责将数据模型转化成UI 展现出来。ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。...
2024-01-10vue运行原理
本文能帮你做什么?1、了解vue的双向数据绑定原理以及核心代码模块2、缓解好奇心的同时了解如何实现双向绑定为了便于说明原理与实现,本文相关代码主要摘自vue源码, 并进行了简化改造,相对较简陋,并未考虑到数组的处理、数据的循环依赖等,也难免存在一些问题,欢迎大家指正。不过这些...
2024-01-10Vue解读之响应式原理源码剖析
目录初始化initState()initProps()initData()observe()ObserverdefineReactive()依赖收集DepWatcher依赖收集过程移除订阅派发更新notify()update()queueWatcher()flushSchedulerQueue()updated()defineProperty 缺陷及处理Vue.set()重写数组方法总结先看张图,了解一下大体流程和要做的事初始化在 new Vue 初始化的时候,会对我们组件的数据 prop...
2024-01-10vue数据代理报错404
最近开始学习vue,按照官方给的例子执行,但是找不到路径。404错误。为什么?哪里写的漏掉了楼下朋友说相对路径,改了以后还是不行{ "result":[ { "id":1, "name":"Web Development", "price":300, "active":true },...
2024-03-07详解Vue的异步更新实现原理
最近面试总是会被问到这么一个问题:在使用vue的时候,将for循环中声明的变量i从1增加到100,然后将i展示到页面上,页面上的i是从1跳到100,还是会怎样?答案当然是只会显示100,并不会有跳转的过程。怎么可以让页面上有从1到100显示的过程呢,就是用setTimeout或者Promise.then等方法去模拟。讲道理,...
2024-01-10vue数据处理的问题
如何根据数组长度对数组对象内的某个属性按照顺序赋值比如把现在的数组的number按照顺序赋值分别变成0,1,2,3,只更改number的值,应该如何处理,感谢各位大佬let arr = [ { "id": "数据1", "parentId": "91453e7d-11bc-443e-a2eb-c1695c4aed3f", "number": ...
2024-03-05vue管理接口形式
项目开发中,总会涉及很多的数据渲染的问题,涉及很多的接口操作。前端通过调用接口获取后台真实数据渲染在页面中。 在中大型项目中往往需要很多的接口调用的操作。如果将这些接口封装在一个文件中,暴露出来,在页面需要的地方调用这个暴露的方法,这样就更容易管理,方便后面需...
2024-01-10