从屌丝到架构师的飞越(入门篇)-变量

一、介绍

  变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

二、内容

1、变量

1.1、变量概念

在程序的运行过程中可以改变的量叫变量,变量是用来存储数值的内存区域。

1.2、作用

变量用来记录数值。使用变量进行代数计算,则该变量中数值可以随着程序的逻辑计算而改变。当计算全部结束后,再将数值拿出展示给用户。

1.3、变量的使用格式

日常变量的使用分为四个部分

变量定义格式:数据类型  变量名  =  变量值;

如:int a = 100;

变量类型 

每一个变量均必须指定其变量类型。Java是强类型语言,在Java中不同的数据类型在内存中的存储方式是不尽相同的。所以必须在存储内容之前指定数据类型。

变量名 

即使用标识符为变量起一个名字,之后在计算时,使用该名字即可参与计算。这个名字就代表了存储数值的空间。

“=”号 

这里的“=”号是运算符的一种,即=代表赋值运算,并非数学意义上的相等。

变量值 

即真正变量存储的数值,需要与变量的数据类型一致。

/*

变量:存储数值的一块内存区域

变量的定义格式:

数据类型变量名 = 数据值;

*/

public class Demo01Variable{

public static void main(String[] args){

//定义一个存储整数的变量

int myVar = 10;

//打印变量的值

System.out.println(myVar);//10

//改变变量的值

myVar = 20;

//打印变量的值

System.out.println(myVar);//20

}

}

1.4、日常变量使用的注意事项

(1)可以同时定义多个变量

(2)变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

(3)变量使用时有作用域的限制。

/*

变量使用的注意事项:

可以同时定义多个变量

变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

变量使用时有作用域的限制

*/

public class Demo02Variable{

public static void main(String[] args){

//可以同时定义多个变量

int a=5,b=10;

/*

int a = 5;

int b = 10;

*/

System.out.println(a);//5

System.out.println(b);//10

//变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

int c;

//System.out.println(c);//错误: 可能尚未初始化变量c

//System.out.println(c=20);

c = 20;

System.out.println(c);

}

}

2、数据类型

Java是一种强类型语言,对不同数据结构进行了严格的区分,对每一种数据类型都做了明确定义,也同时规定了每一种数据类型的变量在内存中占用空间的大小。

2.1、字节

字节是计算机当中存储数据的基本单位,每种数据类型都会占用一定的空间。

比特位

比特位(bit)是计算机当中最小的存储单位,由于机器码只识别1与0,所以每一位的1与0均为一个比特位

字节组成规则

在计算机当中如果使用bit来计算数据过于冗余复杂,所以以8个比特位组成一个新的单位——字节,作为数据存储的基本单位

常见的数据存储单位之间的换算

  1B(字节) = 8bit

  1KB = 1024B

  1MB = 1024KB

  1GB = 1024MB

  1TB = 1024GB

2.2、数据类型分类

数据类型分为基本类型与引用类型,引用类型包括:数组、类、接口,在面向对象后期会全部介绍完毕。这里着重介绍基本数据类型。

整数型(精确)

int  占用4个字节  (整数的默认值)

byte  占用1个字节

short 占用2个字节

long  占用8个字节

long类型在赋值时,需要在值后加入字母l(L)区分其是一个长整型

如  int  i = 100;  short  s = 66;  long  l = 100L;

浮点型(小数型,非精确,为近似值)

double 占用8个字节  (小数的默认值)

float  占用4个字节

float类型在赋值时,需要在值后加入字母f(F)区分其是一个浮点型

如 double  d = 100.0; double  d2 = 10.1;  float  f = 100.0F;

字符型

char  占用2个字节,必须使用’’包裹,且不能为空。

如  char  c = ‘a’; char  c2 = ‘中’; char  c3 = ‘ (空格)’; char c4 = ‘$’

char c1='\\'; char c5='\'';

布尔型

布尔值是我们比较陌生的类型,它代表一些条件成立与不成立的判断。只有两个值true与false。

boolean 占用1个字节

如:boolean  b = true; boolean  b2 = false;

/*

数据类型:

整数:(精确)

byte:占用1个字节

short:占用2个字节

int:占用4个字节(默认)

long:占用8个字节,使用时必须在末尾加上一个小写字母l或者大写字母L

小数:(不精确,近似值)

float:占用4个字节,使用时必须在末尾加上一个小写字母f或者大写字母F

double:占用8个字节(默认)

布尔:

boolean:(true,false)占用1个字节

字符:

char:占用2个字节

注意事项:

字符不能为空

字符实际存储的是一个数值

想把具有特殊含义',转换成普通的字符,用转义字符\'

想把普通字符t,变成一个具有特殊含义的字符,用转义字符\t

*/

public class Demo03Variable{

public static void main(String[] args){

//整数

byte b = 100;

System.out.println(b);

short s = 10000;

System.out.println(s);

int i = 1600000000;

System.out.println(i);

long l = 6000000000L;

System.out.println(l);

//小数

double d = 3.14;

System.out.println(d);

float f = 2.6f;

System.out.println(f);

//小数是一个不精确的数

System.out.println(f-2);//0.5999999

//布尔

boolean b1 = true;

System.out.println(b1);

boolean b2 = false;

System.out.println(b2);

//字符

char c = 'a';

System.out.println(c);

//转义字符

char c1 = '\'';

System.out.println(c1);

char c2 = '\t';

System.out.println(c2+"Hello");

System.out.println('\\');

//字符实际存储的是一个数值

System.out.println(c+1);

}

}

2.3、数据类型转换

数字类型可以有数据类型上的转换,即将一种类型的值赋值给另外一种类型的变量。但要依据数据范围,符合一定规则:

各种数据类型按照数据范围从小到大:

byte -> short -> int -> long -> float -> double

2.3.1、自动类型转换

范围小的数据类型值(如int),可以自动转换为范围大的数据类型值(如double)

范围大的数据类型 变量 = 范围小的数据类型值;

如:

  double d = 1000;

  int i = 100;

  double d2 = i;

2.3.2、强制类型转换

范围大的数据类型值(如double),不可以自动转换为范围小的数据类型值(如int),但是可以强制转换

范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

如:

  int  i = (int)6.718;  //i的值为6

  或

  double  d = 3.14;

  int  i2 = (int)d;    //i2的值为3

/*

数字类型转换:就是数值转换,包括整数,小数,字符

自动类型转换:小-->大

byte < short(char)< int < long < float < double

格式:范围大的数据类型 变量名 = 范围小的数据类型的值;

强制类型转换:大-->小

格式:范围小的数据类型 变量名 = (范围小的数据类型)范围大的数据类型的值;

*/

public class Demo04Variable{

public static void main(String[] args){

//自动类型转换 int --> double

int i = 100;

double d = i;

System.out.println(i);

System.out.println(d);

//强制类型转换

double d2 = 3.14;

//int i2 = d2;//错误: 可能损失精度

int i2 = (int)d2;

System.out.println(i2);

System.out.println(d2);

}

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,599评论 0 9
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,320评论 0 9
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,379评论 0 4
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 517评论 0 1
  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 667评论 0 0