02章 基础语法(命名规则,变量,数据类型)
来源:互联网 发布:临沂拓普网络 编辑:程序博客网 时间:2024/06/05 09:06
标识符:可以自己取名的,且符规则的地方。
命名规则:
①由字母、下划线_、美元$或数字组成;
②由字母、下划线_、美元$开头;
③大小写敏感,长度无限制,不可以和关键字重名;
④最好“见名知义”;
⑤goto、const未使用但作为关键字保留(C语言)。
本质上,变量是内存上的一小块区域,使用变量名访问,故在使用前要先声明,并赋值。
Java程序的运行过程:
程序——>装载入内存——>找到main()方法开始执行——>分四块区域存放不同的代码
分别是:
①code segment 代码区(存放程序)
②data segment 数据区(存放静态变量以及字符串常量)
③stack 栈 (存放局部变量)
④heap 堆 (存放new 出来的东西)
Java变量的分类:
局部变量:方法/语句块内部定义的变量(如main()方法)
成员变量:类体内且方法体外定义的变量
【注释】由于Java面向对象,故变量声明必须在class内完成,并没有像C语言中全局变量那样的概念。
public class HelloWorld {int j = 9;public static void main(String args[]){int i = 8;System.out.println("HelloWorld!");}}
根据上述定义,j是成员变量,i则是局部变量。
(通俗点来说,凡是在大括号内声明的变量,出了大括号就没有人认识他了)
Java数据类型划分
Java中数据类型分为基本数据类型和引用数据类型,基本数据类型分为:数值型、字符型、布尔型,其中数值型又细分为整数类型(包括:byte、short、int、long)和浮点类型(包括:float、double),另一方面,引用数据类型分为类、接口以及数组。
【注释】
①区分不同数据类型的方法很多,例如根据内存占用大小或内存布局均可实现;
②boolean类型只允许取值true或者false,不可用0或者非0整数代替(C语言可以)。
public static void main(String args[]){boolean flag ;flag = true ;if(flag){//do something}}
char类型用于表示字符,Java字符采用Unicode编码,每个字符占用2个字节,1个字节等于8位,例如:char c1 = '\u0061'(十六进制,附:Unicode是全球统一编码);0061 = 0000|0000|0110|0001。
Java语言中允许使用转义字符'\'来将其后的字符转变为其他含义,例如:char c2 = '\n' //换行符
原因:因为使用Unicode编码可以表示世界上的绝大多数文字。
整数类型的byte、short、int、long用占用内存空间大小来区分:
byte 1字节(8位) -128~127
short 2字节 -2^15~2^15-1
int 4字节 -2^31~2^31-1
long 8字节 -2^63~2^62-1
【注释】①之所以减一是因为需要1位表示数的正负性;
②C为什么不可移植?一个重要的原因就在于C的变量所占内存大小不同,而Java都一样,所以Java的代码是可移植的。
Java语言整型变量常量的三种表现形式:
①十进制,eg.12,-314,0;
②八进制,要求以0开头,eg.012;
③十六进制,要求以0x开头,eg.0x12;
Java的整型变量默认为int,想声明long型可在后面加上“l”或者“L”
eg.int i1 = 600 ; //正确
int i2 = 888888888L; //必须加上L否则报错,因为超出范围
浮点类型有float和double两种,两种表现形式:
①十进制,eg.3.14,314.0,314;
②科学计数法,eg.3.14e2=3.14×10^2;
Java中浮点型常量默认为double,想声明为float类型,后面加“f”或者“F”
eg.double d = 12345.6 //正确
float f = 12.3f //必须加f
同整型常量一样,以占用内存空间大小来区分:
float 4字节 -3.403E38~3.403E38
double 8字节 -1.798E308~1.798E308
【注释】浮点数有一定误差,float型的误差在第8位(精度在7位),double型的误差在第16位(精度在15位)。
基础数据类型的转换
boolean型不可以转换成其他类型,而整型、浮点型、字符型在混合运算中可以相互转换,原则如下:
①容量小——>容量大(自动转换),顺序为:
byte、short、char——>int——>long——float——>double
byte、short、char三者之间不会相互转换,三者计算时先统一转换为int。
②容量大——>容量小(强制转换),必须使用强制转换符(可能导致精度降低或者溢出)
eg.long a = 123 ; int——>long 正确
float a = 12.3 ; double——>float 错误
③多种类型混合运算时,系统首先自动将所有数据转为容量最大的数据类型,再进行计算;
④实数默认double;
⑤整数默认int;
附上demo一枚:
public class TestConvert {public static void main(String args[]){int i1 = 123;int i2 = 456;//转换为double类型运算double d1 = (i1+i2)*1.2;//加强制转换符float f1 = (float)((i1+i2)*1.2);byte b1 = 1;byte b2 = 2;//转换为int型运算,加强制转换符byte b3 = (byte)(b1+b2);double d2 = 1e200;//会导致溢出float f2 = (float)d2;System.out.println(f2);//必须加ffloat f3 = 1.23f;long l1 = 123;//必须加llong l2 = 30000000000l;//转换为float型运算float f = l1+l2+f3;//强制转换舍去小数部分(此处非四舍五入)long l = (long)f;}}
输出结果:Infinity(无限大)
解释:因为对于float来说,d2=1e200就意味着无限大。
- 02章 基础语法(命名规则,变量,数据类型)
- 变量、数据类型以及命名规则
- OC变量命名规则、数据类型
- 变量的命名规则,数据类型
- Python基础语法(1)—— 输入输出、变量命名规则、List、Tupple等
- Java学习笔记(基本数据类型和变量命名规则)
- Java学习笔记摘录(标识符/变量是什么/如何命名变量/数据类型/变量的使用规则)
- C语言基础之变量的命名规则、定义常量、C的数据类型
- 15-JavaScript-基本语法-变量-规则-数据类型
- VBS基础篇 - 变量(2) - 命名规则
- js基础:数据类型,变量命名规范
- js基础:数据类型,变量命名规范
- JS基础篇:数据类型&变量命名规范
- js基础:数据类型,变量命名规范、
- JavaScript基础:数据类型,变量命名规范
- js基础:数据类型,变量命名规范
- js基础:数据类型,变量命名规范、
- Js基础:数据类型,变量命名规范
- 知识点回顾
- UVA - 11205 The broken pedometer
- iOS深入学习(Block全面分析)
- Binary Search Tree Iterator leetcode
- d3中为每个rect元素绑定带数据的点击事件
- 02章 基础语法(命名规则,变量,数据类型)
- Azkaban-2.5及Plugins的安装配置
- apache.commons.lang.StringUtils 使用心得
- FFmpeg中的滤镜(十三):视频滤镜 -- chromakey
- shell的命令和基本实现
- 排序2
- Leetcode 43. Multiply Strings (Medium) (cpp)
- 博客已更换
- 队列操作还原