202109-09 深入理解Java new String()方法 问题一:这段代码创建了几个对象?Stringstr1=newString("aa");答案是两个“aa”对象和String对象其中有一项是常量池常量池在Class文件被加载的时候,会被加载进内存中的方法区中的运行时常量池,而运行时常量池里就包括字符串常量池,Class文件中的字符串在类加载时就会加载到字符串常量池中去不过在周志明老师在深入java虚拟机中有说到,到了JDK1.7时,字符串常量池就被移出了方法区,转移到了堆里了。Stringstr1=newStr... 继续阅读 >
202106-05 如何自己实现JavaScript的new操作符 构造函数在介绍new之前,必须要知道什么是构造函数。构造函数和普通函数在写法上没有任何区别,当一个函数通过newFun()调用时,就叫做构造函数,构造函数首字母通常大写。functionUser(name){this.name=name;}letu=newUser('leo');这里,User就是构造函数,当然你也可以直接调用User(),但是这样就起不到创建实例的作用,在非严格模式下,会把name属性挂在window上。new操作符那么new操作符到底做了什么事情呢,可以... 继续阅读 >
202103-24 IDEA 工程里 new不出来Vue文件的图文解决方案 IDEAnew不出来Vue我们期望的可能是这个样子下载之后你会发现这个图标可能不存在解决方案:•重启idea这样你再new的时候就有Vue了到此这篇关于IDEA工程里new不出来Vue文件的图文解决方案的文章就介绍到这了,更多相关ideanewvue文件内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!... 继续阅读 >
202102-26 面试官:Java中new Object()到底占用几个字节 前言我们来分析一下堆内布局以及Java对象在内存中的布局吧。对象的指向先来看一段代码:packagecom.zwx.jvm;publicclassHeapMemory{privateObjectobj1=newObject();publicstaticvoidmain(String[]args){Objectobj2=newObject();}}上面的代码中,obj1和obj2在内存中有什么区别?我们先来回忆一下JVM系列1的文章中有提到,方法区存储每个类的结构,比如:运行时常量池、属性和方法数据,以及方法和构造... 继续阅读 >
202010-10 Python函数__new__及__init__作用及区别解析 【同】二者均是Python面向对象语言中的函数,__new__比较少用,__init__则用的比较多。【异】__new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是个静态方法。__init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值,通常用在初始化一个类实例的时候。是一个实例方法。也就是:__new__先被调用,__init__后被调用,__new__的返回值(实例)将传递给__init__方法的第一个参数,... 继续阅读 >
202010-09 浅析C++ new的三种面貌 1.new的三种面貌C++中使用new运算符产生一个存在于Heap(堆)上对象时,实际上调用了operatornew()函数和placementnew()函数。在使用new创建堆对象时,我们要清楚认清楚new的三种面貌,分别是:newoperator、operatornew()和placementnew()。1.1newoperatornewoperator是C++保留的关键字,我们无法改变其含义,但我们可以改变new完成它功能时调用的两个函数,operatornew()和placementnew()。也就是说我们在使用运算符new... 继续阅读 >
202010-09 C++ 使用new与delete需注意的原则 C++的动态内存管理是通过new和delete两个操作来完成的,即用new来申请空间,用delete来释放空间。在使用new和delete时,注意以下原则。1.new与delete需一一对应用new操作申请空间,如果申请成功,必须在以后的某个时刻用delete释放该空间,既不能忘记释放,也不能多次释放。前者会引起内存泄露,后者会引起运行时错误。如下面的程序。#include<iostream>usingnamespacestd;intmain(){int*p;p=newint(3);if(p){deletep... 继续阅读 >
202010-08 AndroidStudio4.0 New Class的坑(小结) AndroidStudio升级后,新建类变成了下面这个样子,并且默认还没有修饰符,一堆大写的英文看的我一脸懵逼,后来在stackoverflow上看到了这几个参数的含义:IMPORTBLOCK说白了就是导包(谁家导包会手动写呀[捂脸])VISIBILITY值为PUBLIC或PACKAGE_PRIVATE或不填分别对应public修饰符private修饰符和没有修饰符(我一般新建类都默认public修饰符,默认没有修饰符感觉贼不方便)FINAL就是类是否加final修饰SUPERCLASS就... 继续阅读 >
202009-28 String s = new String('a ') 到底产生几个对象 老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才!上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有”宜春”,就是两个。反之就是一个。是... 继续阅读 >
202009-27 浅谈js正则字面量//与new RegExp的执行效率 前几天谈了正则匹配js字符串的问题:《js正则学习小记之匹配字符串》和《js正则学习小记之匹配字符串优化篇》。里面讲到了优化正则起到提升性能的问题,但是能提升多少呢?于是我去测试了,发现TMD几乎微乎其微,我用1千字符串进行100万次匹配测试,优不优化根本没区别。这不科学,我白看了这么多天正则,上天这是在玩弄我么。突然我想到了compile方法,然后去测试了下,奇迹出现了,果然优化过的快了不少。但这是为什么呢... 继续阅读 >
202009-27 Java集合Map的clear与new Map区别详解 对于clear与newMap的区别。我们首先来看一个例子,本例子是我在实际开发中遇到的,需求就是讲map放入到list中,说白了就是list转map,有两种实现方式,分别是://方案一Map<Integer,Integer>map1=newHashMap<>();List<Map<Integer,Integer>>list1=newArrayList<>();for(inti=0;i<5;i++){map1.clear();map1.put(i,i*2);list1.add(map1);}//方案二Map<Integer,Integer>map2=null;List<Map<Intege... 继续阅读 >
202009-24 Javascript模拟实现new原理解析 new是JS中的一个关键字,用来将构造函数实例化的一个运算符。例子:functionAnimal(name){this.name=name;}Animal.prototype.sayName=function(){console.log("I'm"+this.name);}varcat=newAnimal('Tom');console.log(cat.name);//Tomconsole.log(cat.__proto__===Animal.prototype);//truecat.sayName();//I'mTom从上面的例子可以得出两点结论:new操作符实例化了一个对象;这个对象可以访问构造... 继续阅读 >