初始化

JAVA——一维数组

南笙酒味 提交于 2020-02-15 08:54:55
数组 一、数组的概念 数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器。 数组既可以存储基本数据类型,也可以存储引用数据类型。 二、数组的定义格式 格式1:数据类型 [ ] 数组名; 格式2:数据类型 数组名 [ ]; 三、数组初始化概述 Java中的数组必须先初始化,然后才能使用。 所谓初始化就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。 四、数组初始化的方式 1.动态初始化(初始化时只指定数组的长度,由系统为数组分配初始值) 格式: 数据类型 [ ] 数组名 = new 数据类型 [ 数组长度 ]; 数组名 [ 索引 ] 获取数组中的指定元素(索引从0开始,最大索引是数组的长度 - 1) 2.静态初始化(初始化时指定每个数组元素的初始值,由系统决定数组长度) 格式:数据类型 数组名 [ ] = new 数据类型 [ ] {元素1,元素2,…}; 简化:数据类型 数组名 [ ] = {元素1,元素2,…}; 五、常见问题 1.数组索引越界 ArrayIndexOutOfBoundsException 访问到了数组中的不存在的索引时发生 2.空指针异常 NullpointerException 数组引用没有指向实体,却在操作实体中的元素时 六、数组遍历 public class ArrayDemo1 { public static void main (

gitlab初始化项目上传

亡梦爱人 提交于 2020-02-15 08:46:03
1、现在Gitlab新建一个项目空间;例如: https://mp.csdn.net/console/editor/html 2、本地项目,例如example,进入example,打开Git命令 3、git init 4、git remote add origin https://mp.csdn.net/console/editor/html 5、git pull origin master 6、git add . 7、git commit -m'init' 8、git push -u origin master 来源: CSDN 作者: WS_HSY90 链接: https://blog.csdn.net/WS_HSY90/article/details/104311676

内存分类

試著忘記壹切 提交于 2020-02-15 07:41:37
在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别: 栈区 (stack ):由编译器自动分配和释放,存放 函数的参数值、局部变量的值 等。 其操作方式类似于数据结构中的栈。 堆区(heap ) :一般由程序员分配和释放,若程序员不释放,程序节束时可能由操 系统回收。注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表。 全局区(静态区)( static ) : 全局变量和静态变量 的存储是放在一块的, 初始化 的 全局变量和静态变量在一块区域, 未初始化的全局变量和 未初始化 的静态变量在相邻的另一 块区域。程序节束后由系统释放。 文字常量区: 常量字符串 就是放在这里的。程序节束后由系统释放。 程序代码区: 存放 函数体 的 二进制 代码 1 //main .cpp 2 int a=0//全局初始化区 3 char *p1;//全局未初始化区 4 main() 5 { 6 int b;//栈 7 char s[]="abc";//栈 8 char *p2;//栈 9 char *p3=”123456"; 10 //123456在常量区,p3在栈上 11 static int c =0 12 //全局(静态)初始化区 13 p1=(char*)mallac(10); 14 p2=(char*)ma工lac(20); 15 /

程序的内存分配

北城以北 提交于 2020-02-15 07:14:06
本人收集整理!感觉非常经典,,与众人阅之! 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack):由编译器自动分配释放 ,站的特点是空间小但被CPU访问的速度快,使用户存放程序中临时创建的变量.由于桟的后进后出的特点,所以桟特别方便用来保存和恢复调用现场.用于存储占用空间长度不变并且占用空间小的数据类型的内存段,而相同类型的数据占用的空间是等长的,其操作方式类似于数据结构中的栈。 2、堆区(heap):它大小并不固定,可动态扩张或缩减.用于存放数据长度可变或内存占用较大的数据, 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区:代码区用来存放可执行文件的操作指令,(即二进制代码)也就是可执行程序内存中的镜像.代码段需要防止运行时被非法修改,所以只允许读取操作.如程序中的函数就存储在这段内存。 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char

单例模式(Singleton Pattern)

你离开我真会死。 提交于 2020-02-15 06:56:15
(三)单例模式(Singleton Pattern) 1.单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1).单例类只能有一个实例。 2).单例类必须自己创建自己的唯一实例。 3).单例类必须给所有的其他对对象提供这一实例。 2.作用:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 3. 应用实例: 1、一个党只能有一个主席。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点: 没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。 4. 实现 我们将创建一个 SingleObject

Java 中的封装、继承与多态

与世无争的帅哥 提交于 2020-02-15 05:50:12
在前面的 《 Java — 面向对象的编程语言》 里,介绍了面向对象的三大特征:封装、继承、多态,主要是概念上的讲解,本篇文章将从代码出发,看看 Java 中的封装、继承与多态。 一、封装 在编程时,把数据(属性)和有关属性的一些操作(方法)绑定在一起,形成一个不可分开的集合(类),这个过程就是封装( Encapsulation )。 封装时,我们需要隐藏对象的属性和实现细节,仅对外公开接口,并控制在程序中属性的读和写的 访问级别 。 一般情况下,我们会把所有的属性都 私有化 ,对每个属性提供 getter (读) 和 setter (写) 方法,供外界使用: public class Person { private String name ; private int age ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) { return age ; } public void setAge ( int age ) { this . age = age ; } } public class Me { public static void main ( String [ ]

Android 5.1 Camera 架构学习之Camera初始化

拈花ヽ惹草 提交于 2020-02-15 05:42:09
Android Camera 采用C/S架构,client 与server两个独立的线程之间(CameraService)使用Binder通信。 一 CameraService的注册。 1.手机开机后,会走init.rc流程,init.rc会启动MediaServer Service。 service media /system/bin/mediaserver class main user root #### # google default #### # user media #### group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm media sdcard_r system net_bt_stack #### # google default #### # group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm #### ioprio rt 4 2.MediaServer的main函数位于frameworks/base/media/mediaserver/main_mediaserver.cpp中。 在Main_MediaServer.cpp的main函数中,CameraService完成了注册

(4)对象的的初始化与__init__方法以及绑定方法

这一生的挚爱 提交于 2020-02-15 04:07:29
class OldboyStudent: # name='xxxx' # 相似的特征: school = 'oldboy' # 相似的技能 def choose_course(self): print('choosing course....')stu1=OldboyStudent()stu2=OldboyStudent()stu3=OldboyStudent()对象的本质也是一个名称空间stu1.name='王三炮'stu1.gender='male'stu1.age=38stu2.name='王二炮'stu2.gender='male'stu2.age=18stu3.name='王大炮'stu3.gender='female'stu3.age=48 PS:上面的列子对于相同的特征都是用重复代码写入,这样的写法是可以改进的 改进一 def init(obj,name,gender,age): obj.name=name obj.gender=gender obj.age=ageinit(stu1,'王三炮','male',18)init(stu2,'王二炮','male',18)init(stu3,'王大炮','female',48)print(stu1.__dict__) #查看有没有增加成功print(stu2.__dict__)print(stu3.__dict__) PS

L8梯度消失、梯度爆炸

牧云@^-^@ 提交于 2020-02-15 02:22:16
梯度消失、梯度爆炸以及Kaggle房价预测 代码地址: 下载 https://download.csdn.net/download/xiuyu1860/12156343 梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion)。 当神经网络的层数较多时,模型的数值稳定性容易变差。 假设一个层数为 L L L 的多层感知机的第 l l l 层 H ( l ) \boldsymbol{H}^{(l)} H ( l ) 的权重参数为 W ( l ) \boldsymbol{W}^{(l)} W ( l ) ,输出层 H ( L ) \boldsymbol{H}^{(L)} H ( L ) 的权重参数为 W ( L ) \boldsymbol{W}^{(L)} W ( L ) 。为了便于讨论,不考虑偏差参数,且设所有隐藏层的激活函数为恒等映射(identity mapping) ϕ ( x ) = x \phi(x) = x ϕ ( x ) = x 。给定输入 X \boldsymbol{X} X ,多层感知机的第 l l l 层的输出 H ( l ) = X W ( 1 ) W ( 2 ) … W ( l ) \boldsymbol{H}^{(l)} =

TASK02-深度学习

扶醉桌前 提交于 2020-02-15 00:51:44
过拟合和欠拟合及其解决方案 模型选择,过拟合和欠拟合 训练误差和泛化误差 模型选择 概念 验证数据集 K折交叉验证 过拟合和欠拟合 模型复杂度 训练数据集大小 梯度消失和梯度爆炸 随机初始化模型参数 Pytorch的默认随机初始化 Xavier随机初始化 模型选择,过拟合和欠拟合 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error)。通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似。计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数。 模型选择 概念 验证数据集 从严格意义上讲,测试集只能在所有超参数和模型参数选定后使用一次。不可以使用测试数据选择模型,如调参。由于无法从训练误差估计泛化误差,因此也不应只依赖训练数据选择模型。鉴于此,我们可以预留一部分在训练数据集和测试数据集以外的数据来进行模型选择。这部分数据被称为验证数据集,简称验证集(validation set)。例如,我们可以从给定的训练集中随机选取一小部分作为验证集,而将剩余部分作为真正的训练集。 K折交叉验证 由于验证数据集不参与模型训练,当训练数据不够用时