ICode9

精准搜索请尝试: 精确搜索
  • 记录一下动态代理2020-12-07 18:32:02

    静态代理 说动态代理之前咱看看静态代理是啥吧,毕竟各个关于动态代理的文章都会提到静态代理。 我理解的静态代理就是: 比如我有一个类A,然后现在需要给A添加一些操作,但是又不想去修改A本来的代码,那么咱可以写一个A的代理类AProxy,在代理类中注入A的对象,再对A的操作进行维护。 听上

  • js值类型引用类型和深浅拷贝2020-12-02 17:58:21

    JS中的堆栈 堆和栈都是运行时内存分配的一个数据区 堆(heap) 堆(heap)用于复杂数据类型(引用类型)分配空间,例如数组对象、object对象; 它是运行时动态分配内存的,因此存取速度较慢 栈(stack) 栈(stack)中主要存放一些基本类型的变量和对象的引用,(包含池,池存放常量), 其优势是存取速度比

  • JS对象合并方法2020-11-26 15:02:32

         let obj1={ name:'关羽', sex:'male', skill(){ console.log('看尔乃插标卖首'); } }; let obj2={ house:'赤兔', do(){

  • 对象的深复制与浅复制2020-09-25 11:34:21

    对象深拷贝与浅拷贝 深拷贝: 拷贝前后的两个数据互不影响.深拷贝不仅拷贝了指针,也将指针指向的内容进行了拷贝.相当于重新开辟了一个内存单元.后面拷贝过来的对象无论怎么改变,对之前的对象没有影响. 浅拷贝: 顾名思义与深拷贝相反,浅拷贝拷贝的是地址也就是指针,但是没有拷贝内

  • 关于JS的深拷贝与浅拷贝问题处理2020-09-14 12:33:13

    1 let obj1 = { 2 a: 0, 3 b: 0 4 } 5 let obj2 = '' 6 7 // obj2 = obj1 8 // obj2.a = 10 9 // console.log(obj1, obj2); //{ a: 10, b: 0 } { a: 10, b: 0 } 可以看到,将obj1赋给obj2,我们改变的是obj2,而obj1也跟着改变了,这样肯定是不行的。 为什么会出现这种情况呢

  • JVM垃圾回收相关算法2020-07-21 15:33:07

    垃圾标记阶段 对象存活判断:在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。 那么在JVM中

  • 关于String类型是否是引用类型2020-06-29 11:08:07

    在学习原型模式的时候,需要实现ICloneable时,调用object的MemberwiseClone(浅表副本)方式时发现一个问题: MemberwiseClone方法只会将值类型完全Clone,引用类型在Clone时只复制引用。 在我的实验中发现string类型的对象在MemberwiseClone之后地址发生了变化。 class PrototypePatte

  • ES6对象扩展——扩展运算符2020-06-25 23:53:21

    1、复制对象:使用扩展运算符复制对象时是浅拷贝 //复制对象:使用扩展运算符复制对象时是浅拷贝 const obj1 = { a:1, b:2, d:{ aa:1, bb:2 }

  • 线程死锁-死锁产生演练2020-06-02 12:02:48

    线程死锁 代码演练demo: package cn.yb.thread; public class DeadLockRunnable implements Runnable { private int flag;//决定线程走向的标记 private static Object obj1 = new Object();//锁对象1 private static Object obj2 = new Object();//锁对象2

  • JS的对象2020-05-30 17:01:57

    面向对象:可以创建自定义的类型,很好的支持继承和多态。 面向对象的特征:封装、继承、多态 对象的概念:         JS中,对象是一组无序的相关属性和方法的集合。         对象的作用:封装信息         对象具有特征(属性)和行为(方法)。 为什么需要对象?    保存

  • c++4.1小测2020-05-26 15:07:04

    运算符重载   已完成 1.[单选题]   下列运算符不能重载为友元函数的是?   A. = () [] ->   B.+ - ++ -- C. > < >= <= D. += -= *= /= 我的答案:A 2.[单选题]   下列运算符中,哪个运算符在C++中不能重载?   A.?: B.[] C.new D.&& 我的答案:A 3.[单选题] 如果表达式++a中

  • 关于ES6延展符操作2020-05-16 14:54:15

    之前在vue组件通信事件中添加循环参数,比如这样:    不能直接将循环列表的值传入组件自定义方法中,会覆盖原本返回值,这里使用了es6的延展符操作。更改为 bindChange(...arguments,item) 这样便可以获取到额外添加的参数;另外延展符也可用于拼接对象、数组,比如: let arr1 = [1,2,3

  • Object.assign ( ) 合并对象2020-04-26 15:55:48

    let params = Object.assign({},obj,obj1) //花括号{ }叫目标对象,后面的obj、obj1是源对象。对象合并是指:将源对象里面的属性添加到目标对象中去,若两者的属性名有冲突,后面的将会覆盖前面的 var obj1 = { test1: 1 } var obj2 = { test12: 1 } var params = Object.assign({},

  • Python——面向对象2020-04-08 11:56:42

      面向对象特点:   1. class 后首写字母必须大写   2. self为实例化对象的内存指向,每个方法默认必须有。必须要注意每一个self的内存对象指的是哪一个,还有就是在哪个方法内使用的。 基础格式: class Foo(object): #class + 类名称(首字母大写)(object为生成内存地址使用,py3不写

  • ES6 对象扩展2020-03-25 22:00:12

    //ES5 对象 const getInfo=(id=1)=>{ //ajax... const name="cyy"; const age=18; return { name:name, age:age, say:function(){ console.log(this.nam

  • 前端学习(26)~js学习(四):基本数据类型vs引用数据类型2020-03-01 23:53:24

    在上一篇文章中,我们介绍过,变量有以下数据类型: 基本数据类型(值类型):String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。 引用数据类型(引用类型):Object 对象。 本文,我们针对这两种类型,做进一步介绍。我们先来看个例子。 基本数据类型举例: var a =

  • let obj1=obj;和let obj1={...obj}的区别2020-02-28 22:57:59

    let obj={ name:"吴小明", age:24, love:{ pingpang:true } } let obj1=obj; obj.name="孙艺珍"; obj.love.pingpang=false; console.log(obj) console.log(obj1) 输出结果为: {name: &qu

  • Unity模型切割插件EzySlice学习记录2020-02-21 19:39:18

    项目需要实现模型切割,GitHub下载到插件和示例工程。发现示例工程在做单个模型多次切割时报错 后在B站Unity斩击效果看到效果如图 根据作者提供的地址连斩源码地址下载到工程,发现和自己的脚本大同小异: `using System.Collections; using System.Collections.Generic; using

  • js相关--浅拷贝和深拷贝2020-01-27 10:51:21

    1、js的数据类型 基本概述:js的数据类型分为两种,分别为基本数据类型和引用数据类型,它们俩的区别在于基本数据类型采用值传递,引用数据类型采用指针形式传递。 如下所示:引用类型通过简单的=进行复制,会影响到原本的变量的值,因为引用的为指针,复制过去也是指针,指向同一个地址。 <scr

  • js 对象2020-01-26 21:05:33

    对象 1、简介 创建对象,key有两种展示方式:key为变量、key为字符 var a=3; var obj={ [a]:10, // 创建对象时,如果key是一个变量,就需要写在 [ ] 里 a:20 // 这个a是一个字符Key }; 描述对象下的属性 console.log(obj); // {3: 10, a: 20} key为变量时,创建时与创建完

  • python(保存后台数据)2020-01-08 23:00:49

    pickle模块例子 1 import pickle 2 3 obj = 123, "abcdef", ["ac", 123], {"key": "value", "key1": "value1"} 4 print(obj) 5 6 # 序列化到文件 7 with open(r"data1.pk", "wb") as f: 8

  • js合并两个对象的方法2020-01-08 12:00:32

    1.1 $.extend() var obj1= {'a': 1}; var obj2= {'b': 1}; var c = $.extend(obj1, obj2); console.log(obj1); // {a: 1, b: 1} obj1已被修改 //或者 var obj3 = $.extend({}, obj1, obj2) console.log(obj3);//{a: 1, b: 1} 不会改变obj1,obj21.2 遍历赋值   1.2 遍历

  • 深拷贝 与浅拷贝理解与实现2020-01-04 19:01:36

    在js中对象与数组之间的拷贝分为深拷贝与浅拷贝,浅拷贝即是单层的拷贝,将一个对象或者数组拷贝到另一个变量中,此时都指向同一个数组,话不多说,我们来看例子: let obj1 = {a:3,b:4,z:{x:5,t:6}} // 将此对象赋值给另一个对象,浅拷贝的方法实现   let obj2 = Object.assign({},obj1

  • 动态合并table单元格的行列(转)2020-01-02 09:56:59

    //动态合并单元格function uniteTable(tableId,colLength) {//表格ID,表格列数 var tb=document.getElementById(tableId); tb.style.display=''; var i = 0; var j = 0; var rowCount = tb.rows.length; // 行数 var colCount = tb.rows[0].cells.length; // 列

  • ES5给object扩展的一些静态方法2019-12-08 13:02:00

    1. Object.create(prototype[, descriptors]) : 创建一个新的对象 1). 以指定对象为原型创建新的对象 2). 指定新的属性, 并对属性进行描述 value : 指定值 writable : 标识当前属性值是否是可修改的, 默认为true get : 用来得到当前属性值的回调函数 set : 用来监视当前属性值变

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有