变量

Java Static 深入理解

笑着哭i 提交于 2020-03-04 09:22:20
static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。 需要了解jvm classloader 1、static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。 两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。 对于实例变量,没创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。 static成员变量的初始化顺序按照定义的顺序进行初始化。static不可以修饰局部变量; 所以一般在需要实现以下两个功能时使用静态变量: 在对象之间共享值时 方便访问变量时 2、静态方法 静态方法的好处就是不用生成类的实例就能直接调用,可以这样理解使用static修饰的成员不再归对象所以,而是属于类 可以理解为是共有的,也就说只要通过类名就可以访问,不需要耗费资源反复创建对象

python模块和包的导入

爷,独闯天下 提交于 2020-03-04 09:11:44
模块 1 每个py文件就是一个模块 2 自我感觉就是一个或多个py文件被当做模块导入到另一个文件,在另一个文件中引用py文件中的某些功能 为什么要用模块 1 为了写的代码可以重用,不至于把所有的代码卸载一个文件内,当项目规模小的时候,一个py文件就可以搞定, 2 但是如果是一个非常大的项目,就必须把相关功能进行分离,方便我们日常维护和新项目的开发 import加载的模块一共分成四个通用类别: 1 .使用python编写的PY文件 2 .已被编译为共享库或者DLL或者C或者C++的扩展 3 .包 4 .使用C编写并连接到python解释器的内置模块 导入模块的方式: 1.import 模块名 2.from 模块名 import 函数名(方法名) import方式导入 1 自定义一个模块module.py 2 print('这里是py文件module的开始') 3 name = 'bob' 4 address = '上海' 5 6 def play(): 7 print(f'{name}去了{address}迪士尼') 8 9 print('这里是py文件module的结束') 10 11 12 在另外一个文件test3中引用这个模块 13 #此时我们已经导入了一个自定义模块module并重命名这个模块为modu(as的功能为重命名模块名) 14 #但这里pycharm报错

JavaScript 语法介绍

天涯浪子 提交于 2020-03-04 09:07:37
JavaScript 是一个 脚本 语言。它是一个轻量级,但功能强大的编程语言。 JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 3.14 1001 123e5 字符串(String)字面量 可以使用单引号或双引号: "John Doe" 'John Doe' 表达式字面量 用于计算: 5 + 6 5 * 10 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} 函数(Function)字面量 定义一个函数: function myFunction(a, b) { return a * b;} JavaScript 变量 在编程语言中,变量用于存储数据值。 JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值: var x, length x = 5 length = 6 变量可以通过变量名访问。在指令式语言中,变量通常是可变的。字面量是一个恒定的值。 变量是一个名称。字面量是一个值。 JavaScript 操作符 JavaScript使用 算术运算符

反射

偶尔善良 提交于 2020-03-04 08:12:43
反射:框架设计的灵魂 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处 1.可以在程序运行过程中,操作这些对象。 2.可以解耦,提高程序的可扩展性。 类加载器是将.class文件加载进内存 Class对象功能: * 获取功能: 1. 获取成员变量们 * Field [ ] getFields ( ) :获取所有 public 修饰的成员变量 * Field getField ( String name ) 获取指定名称的 public 修饰的成员变量 * Field [ ] getDeclaredFields ( ) 获取所有的成员变量,不考虑修饰符,反射获取成员变量不受修饰符限制。 * Field getDeclaredField ( String name ) 2. 获取构造方法们 * Constructor < ? > [ ] getConstructors ( ) * Constructor < T > getConstructor ( 类 < ? > . . . parameterTypes ) * Constructor < T > getDeclaredConstructor ( 类 < ? > . . . parameterTypes ) * Constructor < ? > [ ] getDeclaredConstructors ( ) 3.

char *p;sizeof(p)=?

一世执手 提交于 2020-03-04 07:51:25
sizeof(指针)是指针变量占用内存的大小(字节数),而指针是存储变量地址的,变量地址的长度即为指针变量所占内存大小,尽管不同类型变量所占内存大小不同(int四字节、char一字节),但指针存的只是首字节地址,不同的是指针递增时,增加的地址。 所以在32位机上,所有指针类型变量占用内存字节数都为4 因为32位机就是 4字节 * 8个二进制位/字节 计算出来的. 如果在64位机上,指针占用内存大小就是8个字节. 也有一种说法,指针是存变量地址,变量地址的长度与编译时使用的编译器有关,一般VS是win32,即32位,所以指针长度一般位4字节(4*8) # include <iostream> using namespace std ; int main ( ) { char c ; char * pc = & c ; int a ; int * pa = & a ; cout << sizeof ( c ) << "\t" << sizeof ( pc ) << "\t" << ( void * ) pc << "\t" ; pc ++ ; cout << ( void * ) pc << endl ; cout << sizeof ( a ) << "\t" << sizeof ( pa ) << "\t" << pa << "\t" << pa ++ << endl ;

Numpy

我怕爱的太早我们不能终老 提交于 2020-03-04 07:39:43
NO.1 Python语法基础 Part_0 python的6大基本数据类型 数字 int float long complex 字符串 列表 元组 字典 集合 Part_1 变量 在Python中,变量指向一个值(内存地址) 1、变量命名规则: 1.变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连字符、标点符号、引号。 2.变量名的第一个字符不能是数字,而必须是字母或下划线。 3.Python区分大小写。 4.不能将Python关键字用作变量名。 5.一般地,函数命名用小写字母,类命名用驼峰命名法。 #可以同时给多个变量赋值 x , y , z = 1 , 'China' , "中国" x , y , z print ( x ) 1 #查看赋值的变量的值 print ( y ) China # id()查看内存位置 print ( id ( y ) ) 2064701648656 #多重赋值的一个很实用的用途是交换两个变量的值 y , z = z , y y ‘中国’ # 中文可以做变量吗? 中文变量 = '我是中文变量' 中文变量 ‘我是中文变量’ # 查看变量的类型 type ( y ) str 二、输入 input() print(xx)与print(‘xx’)的区别。 # input函数接收来自键盘的输入 mobile =

js语法入门

孤人 提交于 2020-03-04 07:36:53
完整的JavaScript是由ECMAScript(语法)、Browser Objects(DOM、BOM)(特性)组成的。 可以在head或body中使用 标识符命名规则 1、由字母、数字、下划线(_)或者美元符号(💲)组成 2、不能以数字开头 3、不能使用关键字、保留字等作为标识符 ECMAScript的变量是松散类型 松散类型:可以用来保存任何类型的数据 换句话说,每个变量仅仅是一个用于保存值的占位符而已。 1、变量的声明要使用var操作符, 语法:var变量名 2、变量赋值 声明的同时赋值:var变量名=值 先声明后赋值:变量名=值 一次声明多个变量,用逗号隔开,如:var id,sex,age,name=“marry”; 注意⚠️:1、省略var声明的变量是全局变量 2、不推荐省略var操作符来定义全局变量 typeof 功能是用来检测变量类型 语法:typeof变量或者typeof(变量) 返回值:string类型,有可能是:string、number、boolean、object、undefined、function console.log() //在控制台中打印 观察打印ctrl+shift+i undefined:没有定义 undefined类型只有一个值,即特殊的undefined。 说明:一般而言,不存在需要显式地把一个变量设置为undefined值的情况

Java基础学习笔记(八)——java中的类、包、方法重载

无人久伴 提交于 2020-03-04 07:08:01
Java基础学习笔记(八)—— java中的类、包、方法重载 Life was like a box of chocolates, you never know what you’re gonna get. | @Author: TTODS 目录 Java基础学习笔记(八)—— java中的类、包、方法重载 面向对象三个基本特性 封装性 继承性 多态性 类 类声明 成员变量 成员方法 包 包作用 包定义 包引入 常用包 方法重载(Overload) 面向对象是Java最重要的特性。Java是彻底的、纯粹的面向对象语言,在Java中“一切都是对象”。本章将介绍面向对象基础知识。 面向对象三个基本特性 封装性 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。 继承性 继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。 多态性 多态性是指在父类中成员变量和成员方法被子类继承之后,可以具有不同的状态或表现行为。 类 类是Java中的一种重要的引用数据类型,是组成Java程序的基本要素。它封装了一类对象的数据和操作。 类声明 类的声明格式如下: [ public ] [ abstract | final ] class className [

Swift之基础学习一

早过忘川 提交于 2020-03-04 06:54:31
Swift,苹果于2014年 WWDC (苹果开发者大会)发布的新开发语言,可与 Objective-C *共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。2015年的WWDC开发者大会上,苹果公司推出了Swift2.0版本,并且Swfit完全开源。自从Swift发布以来,在 http://www.tiobe.com 中的排行一直处于上升的状态。swift的使用也更加广泛,越来越多的开发人员,尝试使用swift进行开发。 这里只进行swift的一些基础语法的介绍, //MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰 ) 1 //MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰) 2 let name1 : String = "jackss" //定义String类型的常量 3 var name2 : String = "jackss" //定义String类型的变量 4 let name = "jack"//或者var name = "jack" 如果没有类型修饰符,它会隐式转换(根据后面的类型自动识别name为String类型) 5 let age : Int = 18//如果定义常量最好给出初始值,定义变量可以不给初始值 6 var age1 : Int? /

Linux的gdb调试命令(详细)

↘锁芯ラ 提交于 2020-03-04 06:23:22
转自: https://blog.csdn.net/gatieme/article/details/51671430 程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。 本文将主要介绍linux下的强大调试工具是怎么完成这些工作的。 之所以要调试程序,是因为程序的运行结果和预期结果不一致,或者程序出现运行时错误。 调试的基本思想是: 分析现象 -> 假设错误原因 -> 产生新的现象去验证假设 调试器(如GDB)的目的是允许你在程序运行时进入到某个程序内部去看看该程序在做什么,或者在该程序崩溃时它在做什么。 GDB主要可以做4大类事(加上一些其他的辅助工作),以帮助用户在程序运行过程中发现bug。 * 启动您的程序,并列出可能会影响它运行的一些信息 * 使您的程序在特定条件下停止下来 * 当程序停下来的时候,检查发生了什么 * 对程序做出相应的调整,这样您就能尝试纠正一个错误并继续发现其它错误 您能使用GDB调试用C、C++、Modula-2写的程序等GNU Fortran编译器准备好过后,GDB将提供对Fortran的支持 gdb参数选项详解 gcc调试相关编译选项 GDB通过在命令行方式下输入gdb来执行。启动过后,GDB会从终端读取命令,直到您输入GDB命令quit使GDB退出。您能通过GDB命 gcc -g main.c 1