初始化

面试官:看到你简历上写着会Vue?

与世无争的帅哥 提交于 2020-04-06 09:38:45
在面试过程中,被问到Vue知识点的一些碎事。 来源:掘金推荐 面试官:vue是什么? vue是一门渐进式的javascript框架。所谓的渐进式就是:从中心的的视图层渲染开始向外扩散的构建工具层。这过程会经历:视图层渲染->组件机制->路由机制->状态管理->构建工具;五个层级。 特点:易用,灵活,高效,入门门槛低。 图来自百度👆 面试官:v-if和v-show的区别? 前者是将DOM创建和删除后者则是改变display的值来控制DOM的显示和隐藏。 面试官:vue有什么生命周期?在new Vue 到 vm.$destory的过程经历了什么? 初始化阶段 beforeCreate和create 挂载阶段 beforeMount和mounted 更新阶段 beforeUpdate和update 卸载阶段 beforeDestory和destory 当 new Vue() 后,首先会 初始化事件 和 生命周期 ,接着会执行 beforeCreate生命周期钩子 ,在这个钩子里面还拿不到 this.$el 和 this.$data ;接着往下走会 初始化inject 和 将data的数据进行侦测也就是进行双向绑定 ;接着会执行 create钩子函数 ,在这个钩子里面能够拿到 this.$data 还拿不到 this.$el ;到这里初始化阶段就走完了。然后会进入一个模版编译阶段

jabdp之一键部署

我是研究僧i 提交于 2020-04-06 08:39:36
前面文章提到的都是手动部署项目,在这里讲一个一键部署的功能。这个功能能简化部署项目的步骤,大大的节约部署时间,而且也容易上手。废话不多说,直接进入正题。 1.平台应用部署步骤(以 mysql 版数据库为例): 把 jabdp 应用文件夹复制一份,改上自己喜欢的名字,注意:文件目录和名字要全英文的,而且不要有空格(注:不要放在中文目录下)。这个步骤跟之前的是一样的,没有什么变化。与前面不同的是,你需要下载最新版的 jabdp 平台项目包。 2. 启用设计器服务 2.1 、这一步与之前不同的是,无需去点击根目录下的启动服务 .bat ,而是双击进入 iDesigner 文件夹中。 2.2 、在这个文件夹下双击 startDesigner.bat ,这时就会启动设计器服务。 2.3 、启动成功后,打开 chrome 浏览器,输入 http://127.0.0.1:9091/iDesigner (设计器)浏览即可。注:此处设计器的端口号改为 9091 了。此时还未启动平台,如果想现在就启动可以自己手动在根目录下点击启动服务 .bat 来启动。也可以不现在启动平台,通过后面的初始化功能来启动平台。注:平台的端口号是没有变得,与之前的一样,都是 9090 (默认平台端地址: http://127.0.0.1:9090/iPlatform )。 3. 新建账套 打开设计器,文件 => 新建。

c++程序性能调优

风格不统一 提交于 2020-04-06 08:38:24
1.尽量减少值传递,多用指针和引用来传递参数   值传递要拷贝对象,引用传递不用 2.++i和i++的效率问题   i++开辟了临时变量,效率低 3.将小粒度函数声明为内联函数   内联函数直接会直接展开,不需要函数调用的开销 4.减少函数调用   函数调用需要两次跳转,外加栈帧的内存操作 5.优先使用迭代而不是递归   理由和上面一样 6.多使用直接初始化,而不是拷贝初始化 1)当对一个类对象初始化时,如果“=”右边不是一个类对象时,会先调用转换构造函数生成一个临时变量作为拷贝构造函数的形参,再调用拷贝构造函数;编译器可能会给你优化,把 ClassTest ct2 = "ab"; 优化为 ClassTest ct2("ab") ,直接调用转换构造函数初始化,但有的编译器它也不优化 参考资料: https://www.jb51.net/article/54773.htm 2)所以, 拷贝初始化 有时会就多一个临时对象的开销 7.尽量少使用dynamic_cast   dynamic_cast运算符用于将基类的指针或引用安全地转换成派生类的指针或引用,这种转换是非常低效的,对程序的性能影响也比较大,尽量少用 8.gcc编译优化   gcc编译的时候有O1~O3的优化选项,O0为不优化,gcc编译时的默认值 9.循环引发的选择 //代码1 for(int i = 0; i < n; +

解决Jenkins 2.0 初始化界面卡住的问题

99封情书 提交于 2020-04-06 07:02:09
***************************************** *原创博客转载请注明出处,谢谢!* **************************************** Jenkins 2.0 将要发布,但是试用alpha版本时,总是卡在初始化界面(设置插件的界面),如下图: 这个可以用浏览器的调试功能,将这个初始化界面删除,然后就可以继续执行到安装插件,重启以后初始化界面就不会出现了。但是在2016/03/13 以后更新的 jenkins 2.0用这个方法解决不了了,所以只能想其它办法。 这个界面是用来设置插件用的,jenkins在安装插件前总是尝试连接www.google.com,来判断网络是否连通。大家都知道谷歌的网站在大陆是连不上的,所以出现这个问题的原因很可能和这个有关。 开始验证猜测是否正确: 1. 下载最新的Jenkins2.0 http://mirrors.jenkins-ci.org/war-rc/2.0/jenkins.war 2. java -jar jenkins.war 3. cd $JENKINS_HOME/updates ,我这里的路径等于 $HOME/.jenkins/updates -- $JENKINS_HOME的路径不同的安装方式都是不一样的 4. vi default.json , 可以看到前面的键值对为:

对象创建的过程

混江龙づ霸主 提交于 2020-04-06 06:21:24
通过符号引用定位到类是否被加载。没有就加载类。执行类加载与验证的过程 分配内存:类的准备阶段。类加载完成后就能确定对象分配多少内存。如果虚拟机具有 Compact 压缩功能(标记整理),就是用 指针碰撞 (记录头尾位置);如果只有 标记清理 的虚拟机,就是用 空闲列表 。 分配内存的方式: CAS 与 TLAB 两种。如果多线程并发创建,需要考虑同步问题(多个对象指向一个地方)。 CAS:一般使用 CAS 和失败重试保证原子性。 TLAB :按照线程分配不同空间(本地线程分配缓冲),只有 TLAB 用完,需要分配新的才需要同步。是否使用该方式通过参数指定 解析,符号引用替代成直接引用 初始化 分配到的内存初始化为零(除了对象头)。这就是对象属性不需要初始化可以直接使用 设置对象头:什么类的对象,元数据,哈希码,对象GC分代年龄等信息。根据虚拟机运行状态,判断是否启用偏向锁 执行初始化方法:<init>。按照程序员指定的初始化过程初始化对象。这里就是执行初始化的过程 父类的静态初始化块 本类的静态初始化块 父类的初始化块 父类的构造方法 本类初始化块 本类的构造方法 来源: oschina 链接: https://my.oschina.net/u/3870422/blog/3220397

图解JVM内存区域划分

你说的曾经没有我的故事 提交于 2020-04-06 05:26:26
图解JVM类加载机制和双亲委派模型 一文中讲述了 Java 类加载的过程,它包含 加载、验证、准备、解析、初始化、使用、卸载 这 7 个步骤。在准备阶段,JVM会将类加载到内存中,为类变量分配内存并赋予初值;在初始化阶段则会正式执行初始化代码。 那么在准备阶段和初始化阶段,JVM 具体是怎么为类分配内存的呢? JVM 把字节码文件加载进来之后放在哪里?代码运行的时候,方法和局部变量放在哪里?创建的对象又该放在哪里? 方法区/Metaspace:JVM加载进来的字节码文件会保存在方法区,Java8之后被称为Metaspace,里面保存类的基本信息。 字节码执行引擎:JVM 加载的字节码文件由字节码执行引擎来执行。 程序计数器:字节码是一行行的CPU指令,由CPU逐行执行,执行到哪一行了,就是由程序计数器来记录 栈内存:Java是多线程的,Java代码是由线程来执行的,每个线程都有各自的调用栈。执行方法时,栈帧进入调用栈,栈帧中有局部变量、方法返回值等信息。 堆内存:堆中保存Java创建的对象,栈中的局部变量可以持有堆中对象的引用。 最后我把整个过程串联一下: 有两个类,在使用时由JVM的类加载器进行加载,进入到方法区 由字节码执行引擎执行字节码文件 Java是多线程的,可以启动多个线程执行代码,每个线程都有自己的栈内存 执行方法,栈帧入栈,方法执行完成,栈帧出栈。栈帧中保存着局部变量

Spring Bean的生命周期

旧城冷巷雨未停 提交于 2020-04-06 03:45:25
容器开始启动: 如果Spring容器中注册了实现BeanFactoryPostProcessor接口的容器后处理器,实例化该容器后处理器,即调用构造函数创建实例 如果Spring容器中注册了实现BeanFactoryPostProcessor接口的容器后处理器,就调用BeanFactoryPostProcessor.postProcessBeanFactory()方法 容器运行中: 如果Spring容器中注册了实现InstantiationAwareBeanPostProcessor接口的Bean后处理器,就执行该Bean后处理器的postProcessBeforeInstantiation方法。 实例化bean,即调用Bean的构造函数 如果Spring容器中注册了实现InstantiationAwareBeanPostProcessor接口的Bean后处理器,就执行该Bean后处理器的postProcessAfterInstantiation方法。 如果Spring容器中注册了实现InstantiationAwareBeanPostProcessor接口的Bean后处理器,就执行该Bean后处理器的postProcessProperties方法。 如果Spring容器中注册了实现InstantiationAwareBeanPostProcessor接口的Bean后处理器

CentOS7安装MySQL5.7——二进制安装包

半城伤御伤魂 提交于 2020-04-05 21:05:38
  老规矩,先总结安装步骤: 1、查看操作系统信息,下载正确的mysql安装包 2、检查操作系统环境,软件残留,依赖包,关闭防火墙等 3、开始安装 一、查看操作系统信息   不同的内核,使用的安装包是不同的,所以第一步必须先验证操作系统的内核版本,然后再去下载对应的MySQL安装包,免得在安装的时候才发现安装包不可用,下图分别展示了两种内核的CentOS7操作系统: uname -a 对应 MySQL的官网下载版本,图一中的x86_64内核应该下载x86,64-bit版本 图二中的aarch64内核应该下载ARM,64-bit版本: aarch64版本的内核多出现在华为云的服务器中,阿里云的惯用x86_64,当然,一切以实际情况为准,眼见为实。 二、检查系统环境 1、检查防火墙,不关闭防火墙, 及时数据库安装完毕,外部也无法连接 systemctl stop firewalld #关闭防火墙 systemctl disable firewalld #关闭防火墙开机自启 setenforce 0 #临时关闭selinux,此命令重启服务器后失效,如果想永久关闭,则需要修改/etc/selinux/config 永久关闭selinux的操作: vi /etc/selinux/config 修改SELINUX参数值为disabled,然后重启服务器即可 2、查看是否安装了mariadb

jdk下httpserver源码解析

送分小仙女□ 提交于 2020-04-05 19:41:37
在写这篇博客之前我查了很久发现全网都没有一篇写httpserver源码解析的 所以今天就由我来为大家解析一下httpserver的源码。(这里我会去掉其中的https部分的源码,只讲http部分,对httpserver中https的实现感兴趣的读者可以尝试自己去阅读,这部分并不复杂) 第一次在没有参考资料的情况下写这么长一篇源码解析,可能会有很多错误和讲不清楚的地方,希望大家尽量指出来。 本文链接 https://www.cnblogs.com/fatmanhappycode/p/12614428.html httpserver的简单使用例子 大家最好先跟着我构建这样一个小demo, 跑起来之后再一步一步去看源码 /** * @author 肥宅快乐码 */ public class HttpServerSample { private static void serverStart() throws IOException { HttpServerProvider provider = HttpServerProvider.provider(); // 监听端口8080,连接排队队列,如果队列中的连接超过这个数的话就会拒绝连接 HttpServer httpserver =provider.createHttpServer(new InetSocketAddress(8080),