字符串常量

三.Python变量,常量,注释

社会主义新天地 提交于 2019-11-30 08:47:01
1. 运行python代码。 在d盘下创建一个t1.py文件内容是: print('hello world') 打开windows命令行输入cmd,确定后 写入代码python d:t1.py 您已经运行了第一个python程序, 即:终端---->cmd-----> python 文件路径。 回车搞定~ 2. 解释器。 上一步中执行 python d:t1.py 时,明确的指出 t1.py 脚本由 python 解释器来执行。 如果想要类似于执行shell脚本一样执行python脚本,例: ./t1.py ,那么就需要在 hello.py 文件的头部指定解释器,如下: 1 2 3 #!/usr/bin/env python print "hello,world" 如此一来,执行: . /t1.py 即可。 ps:执行前需给予t1.py 执行权限,chmod 755 t1.py 3. 注释。 当行注释:# 被注释内容 多行注释:'''被注释内容''',或者"""被注释内容""" 4. 变量 变量是什么? 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。 4.1、声明变量 lux = '鲁迅本人' 上述代码声明了一个变量,变量名为: lux,变量name的值为:"鲁迅本人" 变量的作用:昵称,其代指内存里某个地址中保存的内容 4.2、变量定义的规则: 变量名只能是

C Primer Plus 第11章 字符串和字符串函数 11.1字符串表示和字符串I/O

空扰寡人 提交于 2019-11-30 04:50:32
当然,最基本的您已经知道了: 字符串(character string)是以空字符(\o)结尾的char数组 。因此,您所学的数组和指针就可以用在字符串上。但是由于字符串的使用非常广泛,C提供了很多专为字符串设计的函数。本章将讨论字符串的特性、声明和初始化方法、如何在程序中输入输出字符串,以及字符串的操作。 程序清单11.1 string.c程序 //string.c --使用字符串与用户交互 #include <stdio.h> #define MSG "You must have many talents. Tell me some. " #define LIM 5 #define LINELEN 81 //最大字符串长度加1 int main(void) { char name[LINELEN]; char talents[LINELEN]; int i; const char m1[40]="Limit yourself to one line's worth. "; //初始化一个大小已确定的char数组 const char m2[]="If you can't think of anything,fake it. ";//让编译器计算数组大小 const char *m3="\nEnough about me - what's your name? "; /

在PHP中使用UUID扩展的函数

纵然是瞬间 提交于 2019-11-29 03:57:22
环境: CentOS Linux release 7.7.1908 (Core) PHP 7.3.11 UUID Extention 1.0.4 感觉上PHP对UUID的支持似乎不是很上心,PECL中的UUID扩展仅仅是对libuuid的打包,并没有像其他语言那样直接提供完整的UUID实现。由于libuuid仅仅提供了版本1和版本4的UUID,所以……,开心一点,这两个就够用了。 uuid_create( [int $uuid_type = UUID_TYPE_DEFAULT] ) : string $uuid_type   如下常量之一:      UUID_TYPE_DEFAULT // 0      UUID_TYPE_TIME // 1      UUID_TYPE_DCE // 4      UUID_TYPE_NAME // 1      UUID_TYPE_RANDOM // 4   libuuid提供了UUID版本1和版本4的实现,也只定义了 UUID_TYPE_DCE_TIME 和 UUID_TYPE_DCE_RANDOM 两个常量。PHP的UUID扩展中,常量是通过映射libuuid的常量定义的。所以,虽然扩展中根据UUID标准定义了4个常量名,但对于当前版本的libuuid,也只能映射到两个常量。 UUID_TYPE_TIME 映射为libuuid的常量

java.lang.String 的不可变性

我们两清 提交于 2019-11-29 02:00:45
1. 前言   需要创建一个String类的对象时,可以选择直接 String str1 = "abc";   或者选择 String str2 = new String("abc");   第一种方式称之为 字面量定义方式 ,其赋值方式和基本数据类型的赋值方式是一样的;所以会有很多初学小伙伴误以为 String 是基本数据类型,其实不然。第二种方式就是一般的构造器创建对象的方式。 2. String 的底层结构   查看String类的源码      可以发现String其实是一个char类型的数组构成的,并且其用到了一个很重要的关键字 final。既然使用了 final ,那么 value[] 在被赋值之后将不再会被改变。到这里可能有小伙伴就会有疑问了:String类的对象被赋值之后仍然是可以改变的,并不符合 final 关键字的作用,这是为什么呢?String类的不可变性又体现在哪里? 3. String 重要特性--不可变性   先来看一段简单的测试代码: 1    @Test 2 public void test1() { 3 String str1 = "abc"; 4 String str2 = "abc"; 5 System.out.println(str1 == str2);  //true 6 7 str1 = "123"; 8 System.out

字符串常量初始化指针

偶尔善良 提交于 2019-11-28 04:17:02
今天写个小文说一说字符串地址和字符串常量。 在C/C++中,一个字符串常量表示的是该字符串第一个元素的地址,就跟char指针名,char数组名表示的是字符串第一个元素的地址一样。 想要打印一个地址,用一个简单的 cout << 地址; 语句就可以搞定; 但是下面这两条语句将打印整个字符串 char a[20] = "1234"; cout << a << endl; char *p = a; cout << p << endl; 这也是字符数组 与其他数组不同的一个地方,那么该如何得到该字符串的地址呢? 下面有两种方法可供参考 cout << (int*)a << endl; cout << &a << endl; 这两种方法都可以正确打印出“字符串的地址”,但是有细微区别之处 在字符数组a中,a表示第一个字符的地址,a+1表示第二个字符的地址; 在第一条打印地址的语句中,(int*)a只是起到了一个强制类型转换的作用,换句话说,a表示第一个字符的地址,但是cout <<a;输出的是整个字符串,这是因为这个地址是char*类型的, cout识别到char*类型的地址将会自动打印从该地址指向的空间开始直到遇到'\0'的字符串内容 ,所以这里我们只需要进行一个强制类型转换(这里举例强制转换为int*,可以转换为其他类型的指针,只要不是char*,哪怕是double*也可以正确打印地址)

关于字符串创建在内存中的活动

北城余情 提交于 2019-11-27 15:23:53
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019081712315163.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzI5OTcx,size_16,color_FFFFFF,t_70)** * String 类在java源码中是定义为final的意味着它是一个常量; String c=“java”+“c++”;这条语句首先在编译阶段(也就是生成class文件阶段)编译器会识别出"java"和"c++“是一个字符串常量;编译器会做常量的运算,生成"javac++”,然后编译成class文件,文件中String c的值已经变成"javac++”;然后class文件进入运行阶段,由类加载器加载载进内存中,java虚拟机会为常量分配内存空间,而字符串常量"javac++"会被放进字符串常量池中 此时javac++已经是一个对象了,所以字符串常量池的字符串都是可以认为是new出来的;然后将"javac++"的地址值赋值给变量String c,此时c指向字符串“javac++”在字符串常量池的地址值。 下面是一张将以上变量设置为常量的图运算的结果 在这里或许有人要问了

Dart简明教程

我只是一个虾纸丫 提交于 2019-11-27 13:49:25
【前言】Dart语言是使用flutter框架开发时候必备的语言,flutter是一个跨平台的框架,一套代码就可以完美实现安卓和ios两个平台,适配也很不错,Dart语言很友好,和java很类似,学习成本也是很低的。所以这也是我推荐学习Dart语言的一个原因。 从本篇文章开始讲解Dart语言的基本使用,我将会连续推出好几篇文章详解,希望帮助大家快速掌握Dart语言。 Dart的使用: Dart中所有东西都是对象,包括数字、函数等。 目录: 一、关键字(56个) 二、变量和常量 三、特殊数据类型 四、运算符 operators 五、控制流程语句 Control flow statements 六、函数 Function 七、异常 Exceptions 八、类 Classes 九、泛型 Generics 十、库和可见性 Libraries and visibility 十一、异步支持 Asynchrony support 十二、生成器 Generators 十三、可调用的(Callable)类 十四、隔离 Isolates 十五、类型定义 Typedefs 十六、元数据 Metadata 十七、注释 Comments 十八、概要 Summary 一、关键字(56个) 33个保留字(不能使用保留字作为标识符) 关键字 - - - if superdo switch assert else

php面试题

一世执手 提交于 2019-11-27 09:42:10
文章转载自: http://www.pythonheidong.com/blog/article/2220/ php面试题 php 面试 最近一直在面试,所以总结了下常见的 PHP 面试题. PHP基础题目 安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制? ①防远程提交; ②防SQL注入,对特殊代码进行过滤; ③防止注册机灌水,使用验证码; 在程序的开发中,如何提高程序的运行效率? ①优化SQL语句,查询语句中尽量不使用select *,用哪个字段查哪个字段;少用子查询可用表连接代替;少用模糊查询 ②数据表中创建索引 ③对程序中经常用到的数据生成缓存 现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点? MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示,优点是: ①可以实现代码的重用性,避免产生代码冗余 ②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式 对json数据格式的理解? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递 PHP中处理json格式的函数为json_decode( string $json [, bool $assoc ] ) ,接受一个

jvm--常量池

妖精的绣舞 提交于 2019-11-27 06:33:09
class常量池、字符串常量池、运行时常量池 class常量池 我们写的每一个Java类被编译后,就会形成一份class文件;class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项信息就是常量池(constant pool table),用于存放编译器生成的各种字面量(Literal)和符号引用(Symbolic References);每个class 文件都有一个class常量池; 注:字面量包括:1.文本字符串 2.八种基本类型的值 3.被声明为final的常量等; 符号引用包括:1.类和方法的全限定名 2.字段的名称和描述符 3.方法的名称和描述符 例如String a = “aa”。其中”aa”就是字面量 字符串常量池 看名字我们就可以知道字符串常量池会用来存放 字符串 ,也就是说常量池中的文本字符串会在类加载时进入字符串常量池。 那字符串常量池和运行时常量池是什么关系呢?上面我们说常量池中的字面量会在类加载后进入运行时常量池,其中字面量中有包括文本字符串,显然从这段文字我们可以知道字符串常量池存在于运行时常量池中。也就存在于 方法区 中。 不过在周志明那本深入java虚拟机中有说到,到了JDK1.7时,字符串常量池就被移出了方法区,转移到了 堆 里了。 那么我们可以推断,到了JDK1.7以及之后的版本中,运行时常量池并没有包含字符串常量池

String——字符串

杀马特。学长 韩版系。学妹 提交于 2019-11-26 23:07:12
首先看一下string的一部分源码吧 public final class String private final char value[]; 我们暂且只看这两行, 第一行String被final修饰,表示String不可以被继承且它的所有方法都隐式的被final所修饰。(不懂的伙伴可以看以下final,我也写了关于这个关键字的博文) 对于第二行呢,我们可以看到String内部有一个char类型的数组。这个数组被设置为final类型,也就是说这个数组引用被设置为常量,这可以被赋值一次。其次这个value被private修饰,这就保证了我们不能在类的外部获取到这个value,也不能更改value引用(这里指的是不能改变这个引用的赋值,因为是final类型,已经被指定,只能是那个数组,但是可以改变数组的元素。)所以这就保证了我们不可以在String外部对string进行改变。所以说String是一个不可变对象(),String内部的值也是固定的。而我们的引用指向另一个string是指向了另一个对象,而不是最初的这个对象。(但是实际上String内部value指向的数组是可以改变的,但是一般没人动他,因为要通过反射来做这件事。 如果你真的想动它,看我另一篇关于更改string底层数组的博文,不过要知道怎么使用反射。而且,也要懂这篇文章的知识才可以看懂那个代码) 但是我们还是要说