标签:
只为成功找方法,不为失败找借口!
永不放弃,一切皆有可能!!!
从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行。一个.exe文件存放 在硬盘上是无法运行的,在硬盘上看到的.exe文件无非就是一个文件而已,当我们双击这个.exe文件时,运行起来的时候实际上是整个.exe文件被放在 了在内存里面,然后操作系统找到main方法,也就是程序的入口,然后就开始执行了。执行的过程之中,会不断地在内存里面分配一些区域,变量在内存里面就 是一小块区域,变量有两个概念,一个是变量的名字,另一个是变量的值,即这一小块区域是有名字的,里面装着一个值,因此以后要想访问这小块区域里面的内容 就可以根据这小块区域的名字来访问了。因此,变量的本质就是一小块内存区域。就变量来说,该在内存里面分配多大的存储空间呢?不同的变量类型分配不同大小 的存储空间,每一个变量都是属于特定的数据类型的,声明成不同的数据类型,它就在内存里面分配不同的存储空间。
变量作用域:变量的作用域只在“{ }”有效,出了这个“{ }”就没有作用了
全球的文字放到计算机里面表示全是0和1,Unicode是统一了全世界国家文字的一种编码方式,用这样的编码可以把全世界国家的文字连接在一 起。Unicode编码又分为两种,一种是Utf-8,另一种是Utf-16。JAVA所采用的是Utf-16,每一个字符占2个字节,任何国家的文字放 到Unicode里面都是占2个字节。
C语言编译好的程序为什么不能移植,如把.exe文件放到Linux下是执行不了的,一个很大很大的原因在于C语言定义的变量在不同的操作系统 上所占的大小是不一样的,声明一个int类型的变量,在Windows下面占32位,但放到Linux下面就有可能只占16位,那么这时候很可能表示的大 小就不一样了,在Windows下声明一个很大的数,在Linux下面很可能就会溢出。因此这就是C语言为什么在编译完成之后不能移植的原因。
1 public class TestConvert {
2 public static void main(String arg[]) {
3 int i1 = 123;
4 int i2 = 456;
5 double d1 = (i1+i2)*1.2;//系统将转换为double型运算
6 float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
7 byte b1 = 67;
8 byte b2 = 89;
9 byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
10 System.out.println(b3);
11 double d2 = 1e200;
12 float f2 = (float)d2;//会产生溢出
13 System.out.println(f2);
14 float f3 = 1.23f;//必须加f
15 long l1 = 123;
16 long l2 = 30000000000L;//必须加l
17 float f = l1+l2+f3;//系统将转换为float型计算
18 long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
19 }
20 }
标签:
原文地址:http://www.cnblogs.com/liangyihui/p/5883995.html