变量

对象

让人想犯罪 __ 提交于 2020-03-02 14:23:13
我们已经说过类是创建对象的模板.当使用一个类创建了一个对象时,我们也说我们给 出了这个类的一个实例. 创建对象 创建一个对象包括对象的声明和为对象分配内存两个步骤. 1 对象的声明. 一般格式为 类的名字 对象名字; 如 People zhangPing 这里 People 是一个类的名字,zhangPing 是我们声明的对象的名字. 2 为声明的对象分配内存. 使用 new 运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统 会调用默认的构造方法 默认的构造方法是无参数的,你一定还记得构造方法的名字必须和 类名相同这一规定 .如 zhangPing=new People(); 以下是两个详细的例子. 例子 1 class XiyoujiRenwu { float height,weight; String head, ear,hand,foot, mouth; void speak(String s) { System.out.println(s); } } class A{ public static void main(String args[]) { XiyoujiRenwu zhubajie; //声明对象. zhubajie=new XiyoujiRenwu(); //为对象分配内存,使用 new 运算符和默认的构造方法. … … . … . } }

2020/3/2学习笔记-day09

不羁岁月 提交于 2020-03-02 13:10:10
java-day9 早上 第一节课 类中的静态变量是属于类的,可以通过类名.来调用 ​ 实例变量是属于对象的,通过对象.来调用 类中的非静态方法都可以访问类中的实例变量 public class Student{ private String name;//实例变量 public void test1(){ System.out.println(this.name);//调用实例变量 } public void test2(){ System.out.println(this.name); } public void test3(){ int a=1;//局部变量 System.out.println(a);//调用局部变量 } } 第二节课 操作符(下面的$为%) 1、赋值操作符 = 最基础的赋值操作 如:int a=1; int x=0; *=一个变量和另外一个数据相乘,并把结果赋值给这个变量 如:int a=1;a*=2;//a=a*2; /=一个变量和另外一个数据相除,并把结果赋值给这个变量 如:int a=6;a/=2;//a=a/2; %=一个变量和另外一个数据相余,并把结果赋值给这个变量 如:int a=5;a%=2;//a=a%2; +=一个变量和另外一个数据相加,并把结果赋值给这个变量 如:int a=5;a+=2;//a=a+2; +=一个变量和另外一个数据相加

golang学习笔记(20200302)

自古美人都是妖i 提交于 2020-03-02 12:49:29
包 //程序入口包 package main //导包方式一 import "fmt" //导报方式二 import ( "fmt" ) //go设置的GOPATH即为项目的工作路径,改路径下src目录是固定的结构 //导入自定义包的全路劲:%GOPATH%/src/项目名/包名 //eg:包的全路径:%GOPATH%/src/test4go/demo4go //导包时编译器会默认从%GOPATH%/src路径开始 import ( "fmt" "test4go/demo4go" ) //当包路径过长,可以给包设置别名,相应的调用函数或变量则需变成以 别名.函数/别名.变量 import( alis "test4go/demo4go" ) //package 后定义的包名可以与包所在目录不同名,但建议保持同名;同一个目录下只能存在一个包名 //go中函数和变量的首字母大小写用以区分是否可跨包访问,大写类似public,小写类似private //同包中不可以存在同名(区分大小写)的函数或全局变量 函数: 基本语法: package main import ( "fmt" ) //函数的定义 函数名(参数列表)(返回参数列表) //无返回值 func print(s string) { fmt.Println(s) } //单个放回值可以省略返回参数列表的() func add(i

Xcode 调试技巧

我怕爱的太早我们不能终老 提交于 2020-03-02 12:39:33
   【前言】:本篇为同事崔桂祥分享资料。   随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器。它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。LLDB为Xcode提供了底层调试环境,其中包括内嵌在Xcode IDE中的位于调试区域的控制面板,在这里我们可以直接调用LLDB命令,示例如下: 1.必备篇 1.1 打印变量: print/po print :打印变量的值可以使用 print命令,该命令如果打印的是简单类型,则会列出简单类型的类型和值。如果是对象,还会打印出对象指针地址; print object :如果我们只想查看对象的值的信息,则可以使用 po (print object的缩写 )命令。 1.2 查看线程状态: thread list   在进程停止后,LLDB会选择一个当前线程和线程中当前帧(frame)。很多检测状态的命令可以用于这个线程或帧。   为了检测进程的当前状态,使用该命令,其中星号(*)表示thread #1为当前线程。 1.3 获取线程的跟踪栈: thread backtrace (简写bt)   使用命令 thread backtrace (简写bt)可以查看线程的跟踪栈,若要查看所有线程的调用栈则可以使用命令: thread backtrace all (简写bt all) 。

Xcode 调试技巧

强颜欢笑 提交于 2020-03-02 12:38:17
随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器。它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。LLDB为Xcode提供了底层调试环境,其中包括内嵌在Xcode IDE中的位于调试区域的控制面板,在这里我们可以直接调用LLDB命令 目录 一、 必备篇 • 打印变量 • 查看线程状态 • 获取线程的跟踪栈 • 列出帧参数和本地变量 • 寻址 • 帮助系统 二、 技巧篇 • 运行时修改变量的值 • 异常排查 • 符号断点 • Watchpoints 一、必备篇 1.1 打印变量 print :打印变量的值可以使用 print命令,该命令如果打印的是简单类型,则会列出简单类型的类型和值。如果是对象,还会打印出对象指针地址 print object :如果我们只想查看对象的值的信息,则可以使用 po(print object的缩写 )命令 1.2 查看线程状态 thread list 在进程停止后, LLDB会选择一个当前线程和线程中当前帧 (frame)。很多检测状态的命令可以用于这个线程或帧。 为了检测进程的当前状态,使用该命令,星号 (*)表示 thread #1为当前线程 1.3 获取线程的跟踪栈 使用命令 thread backtrace (简写bt),若要查看所有线程的调用栈则可以使用命令: thread

Java性能优化怎么做?

柔情痞子 提交于 2020-03-02 12:10:06
Java性能优化怎么做?在Java程序中,性能问题的大部分原因并不在于Java语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1、尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 1)控制资源的使用,通过线程同步来控制资源的并发访问; 2)控制实例的产生,以达到节约资源的目的; 3)控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。 2、避免随意使用静态变量 当某个对象被定义为static变量所引用,那么GC通常是不会回收这个对象所占有的内存 此时静态变量b的生命周期与A类同步,如果A类不会卸载,那么b对象会常驻内存,直到程序终止。 3、避免过多创建Java对象 尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。 4、使用final修饰符 带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,**例如Java、lang、String,为String类指定final防止了使用者覆盖length()方法。**另外,如果一个类是final的

Python的语言类型

牧云@^-^@ 提交于 2020-03-02 08:02:20
Python 是强类型的动态脚本语言 。 强类型:不允许不同类型相加 动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候 脚本语言:一般也是解释型语言,运行代码只需要一个解释器,不需要编译 强类型语言和弱类型语言 1.强类型语言:使之强制数据类型定义的语言。没有强制类型转化前,不允许两种不同类型的变量相互操作。强类型定义语言是类型安全的语言,如Java、C# 和 python,比如Java中“int i = 0.0;”是无法通过编译的; 2.弱类型语言:数据类型可以被忽略的语言。与强类型语言相反, 一个变量可以赋不同数据类型的值,允许将一块内存看做多种类型,比如直接将整型变量与字符变量相加。C/C++、PHP都是弱类型语言,比如C++中“int i = 0.0;”是可以编译运行的 静态和动态类型语言 静态和动态是针对变量的数据类型而言的,区别如下: 1、使用静态类型语言编写的代码中,要声明变量的数据类型,而且不同数据类型的变量不允许直接赋值,它的数据类型是编译期间进行检查的。 2、静态类型语言在使用变量之前,需要为它们分配好内存。 3、静态类型语言功能强大,但相对难以学习,并且灵活性差。 4、动态类型语言与静态语言刚好相反,它只在程序运行期间才去进行数据类型检查,不需要给变量指定数据类型,它会在第一次同仁给变量时,在内部记录数据类型。 5

C#中使用ref 和 out 的区别

心已入冬 提交于 2020-03-02 07:31:15
ref 通常我们向方法中传递的是值,方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不会受到影响。 这种情况是通常的,当然还有另外一种情况,我们向方法传递参数的形式,引用(ref)和输出(out)。 有时,我们需要改变原来变量中的值,这是我们可以向方法传递变量引用,而不是变量的值,引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值。变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的位置,当引用被修改时,修改的是内存中的值,因此变量的值可以被修改,当我们调用一个含有引用参数的方法时,方法中的参数将指向被传递给方法的相应变量,因此,我们会明白为什么当修改参数变量的修改也将导致原来变量的值被修改。 创建参数按引用传递的方法,需使用关键字ref,例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 using System; class gump { public double Square( ref double x) { x = x * x; return x; } } class TestApp { public static void Main() { gump doit = new gump(); double a = 3; double

ASP.NET Razor

孤街醉人 提交于 2020-03-02 06:54:54
一、为什么要学习Razor? 可以让服务器代码(就是c#和vb)嵌入到网页中,也就是说这个页面中包含html代码和C#(vb)代码。基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容。当一个网页被请求时,服务器在返回页面给浏览器之前先执行页面中的基于服务器的代码。通过服务器的运行,代码能执行复杂的任务,比如进入数据库。 二、Razor代码的语法 Razor 代码块包含在 @{ ... } 中 内联表达式(变量和函数)以 @ 开头 代码语句用分号结束 变量使用 var 关键字声明 字符串用引号括起来 C# 代码区分大小写 C# 文件的扩展名是 .cshtml 下面请看一个案例: (1)创建一个以.cshtml结尾的页面: (2)然后代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> @{ var message = "李白是最帅的,没有之一"; } <p>对于他的粉丝来说:@message</p> @{ var name = "李白"; string techno = "青莲剑歌";