java基础之数据类型

来源:互联网 发布:java怎么用hadoop 编辑:程序博客网 时间:2024/05/16 07:21

(一)标识符

1、概念:java对各种变量、方法和类等要素命名时使用的字符序列被称为标识符。(本质就是一个字符序列

2、标识符命名规则:由字母、数字、下划线和美元符($)组成。(注意有美元符$是合法的

标识符要以字母、下路线、美元符开头,对大小写敏感


(二)关键字

所有java关键字都是小写英文(注意都是小写的英文),编译器一般会把关键字用特殊方式标出(例如不同颜色等)。


(三)常量(final的使用)

1、概念:java的常量值用字符串表示,区分不同的数据类型。

例如:整型常量:123      实型常量:3.14(小数)  字符常量:'a'(用单引号)  逻辑常量:true、false    字符串常量:"helloworld"(双引号)

区分开字符常量与字符串常量。

2、final可以修饰变量,方法,类。

final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类重写,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。


(四)变量(一定要理解变量在内存中的存放

1、概念:java变量是程序中最基本的存储单元,包括变量名,变量类型和作用域。(本质:就是内存中的一块区域,使用变量名来访问这块区域,因此,每个变量使用前必须先声明(申请),然后必须进行赋值(填充内容),才能使用)。

2、编译原理(底层内容):程序的执行过程

(1)程序源码存放在硬盘(exe文件或者.class文件)就是静态文件。

(2)当程序运行时,把程序编译好的代码Load到内存区,操作系统会找到程序的main方法,开始执行。


(3)执行过程中的内存管理,主要分为四部分:

code segment(存放代码)、

data segment(静态变量、字符串常量)、

stack(局部变量)、

heap(new出来的东西)

注意:栈和堆的本质:是一种数据结构。

局部变量:定义在方法,构造方法和语句块(就是在{}中定义的变量)中。当他们执行完之后,变量就销毁。


栈由编译器自动分配内存,是机器系统提供的一种数据结构,通过寄存器来存放地址,有专门的机器指令来完成数据入栈出栈,速度快,但是支持的数据类型有限(整数,指针,浮点等数据类型)。

堆内存是运行期间动态分配的,通过程序员分配并指明大小,堆是函数库提供的,通过函数来获取内存,支持的数据类型广泛。堆的内存空间不一定连续,通过哈希算法得到物理地址


3、按数据类型分:基本数据类型变量和引用数据类型变量

按声明的位置分为:局部变量(方法或者语句块内部定义的变量)和成员变量(方法外部、类的内部定义的变量)(注意:类外面不能有变量声明

(一)成员变量

成员变量包括:类变量和实例变量


a、类变量又称为静态变量,在前面用static 修饰,独立于方法之外。

1、静态变量除了被声明为常量外很少使用。

2、静态变量在程序开始时创建,在程序结束时销毁。

3、静态变量可以通过:ClassName.VariableName的方式访问。

4、默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。


b、实例变量不用static 修饰,独立于方法之外。

1、实例变量具有默认值,数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

2、实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

3、实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

当你用java关键字new一个对象时,jvm将在里创建对象,并在中开辟空间给变量(空间不一定连续),然后根据零散的堆内存地址,通过哈希算法得到“物理地址”;




(五)数据类型

java中的数据类型主要分为:基本数据类型(四类八种)和引用数据类型


1、基本数据类型(区分:内存中的大小和内存小格排列的布局

逻辑型:boolean      文本型:char      整数型:byte、short、int、long    浮点数型:float 、double

(1)字符型(char)

字符常量:就是用单引号括起来的单个字符。

java字符采用Unicode编码(全球语言统一编码),每个字符占两个字节,因而可以使用十六进制编码形式表示(一个字节:byte等于八位:bit)即:1byte=8bit

中文编码:GBK(国标码)或者GB2312

注意:所有文字在Unicode编码中,都占两个字节。

(2)整数类型(byte、short、int、long)

注意:java各整数类型有固定的表据范围和字段长度,不受操作系统的影响,保证Java程序的移植性(与c语言区分开,c语言不同平台的字段长度不同)

十六进制:以0x或者0X开头(以零X开头)。

1、java语言的整型常量默认为int型,声明Long类型常量可以在后面加l或者L(建议添加大写的L,便于区分)。

2、整数长度:注意java的整数类型是有符号的,其中一位是符号位(0为正,1为负),2的7次方是128

其中,byte常量进行运算时,系统会默认先转化为int类型,再进行运算,然后在转化为byte,超出范围就会截取低八位(不会报错)。浮点型操作与之不同,因为有小数点(会报错)。

(3)浮点类型

与整数类型类似,有固定表数范围和字段长度,不受平台影响。

1、java浮点型常量默认是double类型,声明float常量,需要在数字后加f或者F。(浮点数在计算机中存在误差,理论是连续的,在计算机中表示是离散的。float是7位,double是15位)



(六)基础数据类型转换

1、boolean类型不能转换为其他的数据类型。

2、容量小的类型自动转换为容量大的数据类型,容量大到容量小转换时,要进行强制转换,可能会造成精度降低或者溢出。

byte、short、char ——》int——》long——》float——》double

double强制转换为float时,会发生溢出。

其中byte、short、char之间不会互相转换,三者在运算时,会先转换为int类型。

3、多种类型的数据混合运算时,系统首先自动的将所有数据转换为容量最大的那种,再进行运算。

4、实型常量默认为double,整数常量默认为int。


(七)运算符

java支持的运算符

1、算数运算符:+  -  *  /  %  ++  --

2、关系运算符:==  !=  >  >=  <  <=

3、逻辑运算符:&&(短路与)    ||(短路或)     !      ^(异或:不同为真)     &  |

注意:短路与和短路或只要第一个条件满足,第二个条件就不用比较了。和与 ,或区分开,与和或两边的条件都需要比较。

4、位运算符:&  |  ~  ^  >>  <<  >>>

5、字符串连接符:+

注意:加号两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串,然后在进行连接。

进行打印时,无论任何类型,都自动转为字符串进行打印。


(八)表达式(运算符和操作数的序列)

1、对表达式中操作数进行运算得到的结果称为表达式的值

2、表达式值的数据类型即为表达式的类型。


(九)语句

有三种结构:顺序结构,条件结构,循环结构。

1、if语句

注意:只有一句需要执行的语句时,可以省略大括号{}。建议不要省略,避免出错。

2、循环语句

for循环,while循环,do while循环

(一)for语句中三个表达式都可以省略。

(二)do {  语句;} while(逻辑表达式); 注意:后面有一个分号

3、switch—case语句

switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte、short、int、char、还有枚举;

从 Java SE 7 开始,switch 支持字符串类型了,同时 case 标签必须为字符串常量或字面量。

需要强调的是:long和String类型是不能作用在switch语句上的。

 (一)case后面必须跟常量,必须要常量,如果是一个表达式或者变量,那么就要加上单引号

(二)case具有穿透性,需要结合break语句,多个case语句可以合并。

(三)default可以省略,但不推荐省略

一般形式:

switch(表达式){ 

    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    … 
    case 常量表达式n:  语句n;
    default:  语句n+1;

}


(十)break和continue语句与return语句

return语句:第一、返回一个指定数据给主调函数;第二、结束当前函数的执行

如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“}”时会自动返回。

return不是必须要返回一个值。    

  void   func(void)    
  {  
  ......    
  return;    
  }    


(十一)方法

java中的方法类似于c语言中的函数。方法的本质就是:一段完成特定功能的代码片段。(目的:提高程序的复用性,以便可以重复使用

java进行函数调用,传递参数时,遵循值传递的原则

基本类型传递的是该数据本身。引用类型传递的是对象的引用,而不是对象本身。


(十一)程序格式

1、大括号对齐

2、遇到 { 缩进,TAB(缩进)|shift +tab 前进

3、程序块之间加空行(美观为主)

4、并排语句之间加空格

5、运算符两侧加空格

6、{ 前面有空格

7、成对编程


原创粉丝点击