初始化

saltstack 初始化LINUX系统

∥☆過路亽.° 提交于 2020-02-08 23:13:19
前面我们已经了解了saltstack的基础功能,现在就可以使用saltstack为初始化新安装的linux系统。 初始化列表: 1.关闭selinux 3.修改sshd配置文件 4.内核优化 5.ulimit修改 6.history记录 7.时区修改及添加cron 8.安装epel 9.修改resolv解析文件 10.软件安装 好了,此前我们已经修改了salt的base目录,默认在/srv/salt 下我们调整到/etc/salt目录下了 现在呢,我们需要去建立一个目录专门用于存放初始化sls的。 [root@localhost base]# pwd /etc/salt/base [root@localhost base]# mkdir init date_time.sls 系统时区修改 [root@localhost init]# vim date_time.sls date_time: pkg.installed: - name: ntpdate - unless: rpm -qa | grep ntpdate cmd.run: - name: rm -rf /etc/localtime && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && ntpdate pool.ntp.org - require: - pkg:

初始化列表

笑着哭i 提交于 2020-02-08 21:03:27
初始化列表,用来初始化成员变量的 Person(int age,int height) :m_age(age), m_height(height) {} //m_age = age m_height = height 来源: https://www.cnblogs.com/sec875/p/12284792.html

C语言内存管理思想

自闭症网瘾萝莉.ら 提交于 2020-02-08 19:23:35
内存的属性 1、大小 2、在哪里 int a;就告诉内存大小为4字节 全局变量与局部变量放置 的位置也不同 ————————————0xffff ffff 内核空间 应用程序不许访问 ———————————————— 栈空间 (局部变量) —————————————— 运行时的堆空间 (malloc申请的空间) ———————————— 代码段(一般比较低)===》只读数据段(text) 全局数据空间(初始化DATA,未初始化bss) ———————————— 0x0 栈空间 运行时,函数内部使用的变量,函数一旦返回就释放,生存周期是函数内 只读空间 如果对空间进行写操作会出现段错误 只读数据段和代码段构成只读空间(TEXT) 数据段 加了static的局部变量会放到全局数据空间 未初始化的全局变量在bss 初始化的在DATA都属于全局数据空间 局部变量的都会存在栈空间 堆空间 由程序员决定或者某些特殊条件才释放的空间 运行时,可以自由、自我管理的分配和释放的空间,生存周期由程序员来决定 分配:malloc()一旦成功,返回分配好的地址给我们,对于新地址的读法,由程序员决定,可以4个4分读,可以先读100个再读100个。输入参数指定分配大小,单位是B char *p; p=malloc(100); if(p==NULL) (用来检测是否申请成功) { error } 释放:free

Spring组件生命周期(二)

心不动则不痛 提交于 2020-02-08 18:38:18
目录 @Bean指定初始化和销毁方法 使用 @PostConstruct和@PreDestroy 使用 InitializingBean和DisposableBean 使用 执行先后顺序 @Bean指定初始化和销毁方法 @Bean中有initMethod和destroyMethod两个参数 initMethod:初始化方法 destroyMethod:销毁方法 使用 在Bean中写初始化方法、销毁方法 public class Person { private void init ( ) { //初始化代码 System . out . println ( "init execute" ) ; } private void destroy ( ) { //销毁代码 System . out . println ( "destroy execute" ) ; } } 在@Bean中指定 @Configuration public class ApplicationConfig { /* 默认name是获取Bean的方法名 person @Bean("person001") 这样使用注解 name则为person001 */ @Bean ( initMethod = "init" , destroyMethod = "destroy" ) public Person person (

类加载与双亲委托

我的未来我决定 提交于 2020-02-08 17:17:08
在Java语言里面,类型的加载,连接和初始化过程都是在程序运行期间完成的,虽然会令类加载时稍微增加一些性能开销,但是为Java应用程序提供了高度的灵活性 为什么Java天生就可以动态扩展? 依赖运行期加载和动态连接 类加载的生命周期? 加载,验证,准备,解析,初始化,使用,卸载 (验证,准备,解析)称为连接 加载,验证,准备,初始化,卸载的顺序的固定的,解析某些情况下可以在初始化之后进行,就是为了支持Java语言的运行时绑定。 初始化阶段,虚拟机规范严格规定了5种情况必须进行初始化 1)遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,如果类没有过初始化,则需要先触发其初始化。生成这4条指令的常见java代码场景是:使用new关键字实例化对象,读取或设置一个类的静态字段,以及调用一个类的静态方法 2)使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行初始化,则需先进行初始化 3)当初始化一个类时,发现其父类还没有初始化的时候,则需先触发父类的初始化 4)当虚拟机启动时,用户需要指定一个要执行的主类,虚拟机会先初始化该主类 5)如果一个MethodHandle实例最后的解析结果REF_getStatic方法句柄所对应的类没有初始化,则要进行初始化(这条看不懂,,,) 通过引用父类的静态字段

基于tiny4412的u-boot移植(一)

核能气质少年 提交于 2020-02-08 13:44:05
作者信息 作者:彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 平台介绍 开发环境:win7 64位 + VM ware11 + Ubuntu14.04 64位 开发板:tiny4412ADK + S700 + 4GB eMMC + 1G DDR3 工具链:友善之臂提供的 arm-linux- (gcc version 4.5.1) 要移植的u-boot版本:u-boot-2015-10 参考u-boot版本:友善之臂提供的 u-boot-2010-12 摘要 本博文简要分析了移植u-boot-2015-12到tiny4412,采用的是spl的启动方式,目前可以做到的是进入u-boot的命令终端,如下图: 而且仅仅支持从SD卡启动,以后会慢慢完善。 移植 要移植u-boot到tiny4412,首先我们需要对这块板子的 启动方式 、 地址空间 分配有清楚的认识。此外,由于刚开始只需要做到进入u-boot的命令行(如上图),其中至少涉及到了 系统时钟初始化 、 内存初始化 以及 串口初始化 ,做到这三点,就为以后的各种工作铺平了道路。 下面是一些参考资料: 技术部落 (这个网站对tiny4412的启动、时钟、串口以及内存初始化进行了详细的讲解) 嵌入式Linux系统开发完全手册_基于4412_上册.pdf (这个文档是韦东山写的,讲的也非常好)

C++笔记11

ぃ、小莉子 提交于 2020-02-08 12:59:27
成员对象和封闭类 有成员对象的类叫封闭类 exp. class CTyre//轮胎类 { private: int radius;//半径 int width;//宽度 public: CTyre(int r,int w):radius(r),width(w){}//冒号后的是初始化列表,可以为每个成员变量附一个初始值 }; class CEngine//引擎类 { }; class CCar{//汽车类,封闭类 private: int price;//价格 CTyre tyre; CEngine engine;//tyre和engine是CTyre和CEngine的对象,tyre和engine就是成员对象engine用无参函数初始化 public: CCar(int p,int tr,int tw); }; CCar::CCar(int p,int tr,int w):price(p),tyre(tr,w) { }; int main() { CCar car(20000,17,225); return 0; } 任何对象初始化时都会引发构造函数的调用 att.如果CCar类不定义构造函数则 CCar car 会出错 因为编译器不明白car.tyre该如何初始化,car.enginr的初始化没有问题,用默认构造函数即可 任何生成封闭类对象的额语句,都要让编译器明白

类加载机制过程

房东的猫 提交于 2020-02-08 11:49:20
java源代码编译过程 https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html A class file consists of a single ClassFile structure: 以下就是后缀为class的文件的一个说明 ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; } java的源文件经过javac的编译以后就会编译为后缀为.class 16进制的文件。

设计模式——创建型模式之单例模式(一)

断了今生、忘了曾经 提交于 2020-02-08 09:39:33
单例模式的几种实现方式 单例模式的实现有多种方式,如下所示: 1、懒汉式,线程不安全 是否 Lazy 初始化: 是 是否多线程安全: 否 实现难度: 易 描述: 这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有加锁 synchronized,所以严格意义上它并不算单例模式。 这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作。 代码实例: public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 接下来介绍的几种实现方式都支持多线程,但是在性能上有所差异。 2、懒汉式,线程安全 是否 Lazy 初始化: 是 是否多线程安全: 是 实现难度: 易 描述: 这种方式具备很好的 lazy loading,能够在多线程中很好的工作,但是,效率很低,99% 情况下不需要同步。 优点:第一次调用才初始化,避免内存浪费。 缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。

【Spring源码】 后置处理器BeanPostProcessor底层原理分析

一笑奈何 提交于 2020-02-08 09:34:25
【Spring源码】 BeanPostProcessor底层原理分析 1.Spring中bean的生命周期 2.Spring注解开发指定初始化和销毁的方式 3.BeanPostProcessor底层原理分析 4.Spring中BeanPostProcessor的应用 注:其他一些spring源码解读,如果有需要,可以参考: 【spring源码】spring容器IOC底层源码分析 【spring源码】AOP底层源码分析 【spring源码】spring声明式事务底层源码分析 【spring源码】ApplicationListener事件监听底层原理 1.Spring中bean的生命周期 今天不聊那么复杂,其实bean的生命周期就这四步:实例化、初始化、使用、销毁 2.Spring注解开发指定初始化和销毁的方式 大概以下四种方式: 2.1 @Bean指定init-method和destroy-method 举例Demo: bean实体类 /** * bean的生命周期 * * @author wangjie * @version V1.0 * @date 2020/1/6 */ public class Food { public Food(){ System.out.println("food constructor"); } public void init(){ System