Java基础概念(一)
既然决定以后从事程序员这个行业,多学点东西总是好的,于是开始学习一门新的语言,不知道会学得怎么样,试试看看吧
标识符:自己可以起名字的地方都叫标识符,都遵守标识符的规则。
标识符组成
Java标识符由数字,字母和下划线(_),美元符号($)组成。
并且必须遵守以下规则:
1.Java标识符只能由数字、字母、下划线“_”或“$”符号以及Unicode字符集组成
2.Java标识符必须以字母、下划线“_”或“$”符号以及Unicode字符集开头
3.Java标识符不可以是Java关键字、保留字(const、goto)和字面量(true、false、null)
4.Java标识符区分大小写,是大小写敏感的
命名约定
Java标识符应遵守以下命名约定:
1.类和接口名。每个字的首字母大写,含有大小写 例如:
- MyClass,HelloWorld,Time
2.方法名。首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如:
- myMethod,myGetData//这种命名方法叫做驼峰式命名。
3.常量名。基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。例如:
- SIZE_NAME,SIZE_AGE
4.变量名。可大小写混写,首字符小写,字间分隔符用字的首字母大写。不用下划线,少用美元符号。给变量命名是尽量做到见名知义。例如:
- nameLength,currentTime
关键字
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
Java中的关键字都是小写英文。
常量
常量是一种标识符,它的值在运行期间恒定不变。并且常量在程序中只能被引用,而不能被重新赋值。
常量的命名规则:
1.在JAVA中,在变量声明中加入final关键字代表常量,加入static关键字代表类变量。一般情况下,我们把static与final结合 起来声明一个常量.
2.尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。
- public static final double PI = 3.1415926;
在Java接口中声明一个变量,编译时会自动加上public static final的修饰符。自动声明为全局常量,因而在Java接口通常是存放常量的最佳地点。
变量
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
- type varName [=value][{,varName[=value]}];
- int a = 10;
- String b = "hello";
- int d = 3,e,f = 5;
type 是Java 的数据类型之一。该标识符是该变量的名称。申报指定类型的多个变量,用逗号分隔的列表。
从本质上讲,变量其实是内存中的一小块内存,使用变量名来访问这块区域。
因此,每一个变量在使用前必须要先申报(声明),然后必须进行赋值(填充内容),才能使用。
局部变量与成员变量
局部变量:方法或语句块内部定义的变量叫做局部变量。
- public void addData(){
- int a = 10;//变量"a"就是局部变量,在方法的大括号之外是无法使用"a"的。
- }
成员变量:方法外部、类的内部定义的变量叫做成员变量。
- public class TestAdd{
- static final int B = 10;//变量"b"是成员变量,在整个类的内部都可以使用。
- }
成员变量又可分为:类变量和实例变量。
类变量:又叫静态变量,用static修饰,它可以直接用类名调用,也可以用对象调用,而且所有对象的同一个类变量 都是共享同一块内存空间。static final变量,必须在声明的时候初始化或者在static静态块里面初始化。
实例变量:不用static修饰, 它只能通过对象调用, 而且所有对象的同一个实例变量是共享不同的内存空间的。
注意:如果某个方法中的局部变量的名字与全局变量的名字相同, 则该全局变量在这个方法中暂时失效
变量的作用域
变量作用域是指程序中变量的名字可以被引用的部分。这样说可能比较抽象,变量的作用域通俗上可以理解为一个变量在声明后,程序中哪部分可以访问声明的变量。
变量作用域被称变量的可访问性。在Java中有多种规则:
1.在语句块中定义的变量只能在块中被访问。这种变量的作用域是声明它的块内
2.内部块中定义的变量可以访问外部块中定义的变量
3.作为方法参数定义的变量可以在方法体内部访问
4.类变量在类中的任何地方都可以访问
5.如果内部块中定义了和外部块中相同名称的变量,则内部块中的变量会覆盖掉外部块中的变量定义
举一个例子:
public class Test{ int a = 10; public void getData(){ int b = 5; for(int i = 0; i < b; i++){ int c = 9; } } } 变量a在Test类的内部任何地方都是可以访问的,变量b只能在方法内部可以访问,变量c只能在for循环内部起作用。
数据类型划分
数据类型可分为两种:
1:基本数据类型
- 1)整数型
- 包括:byte,short,int,long
- 2)浮点型
- 包括:float,double
- 3)字符型
- 包括:char
- 4)布尔型
- 包括:boolean
2:引用数据类型
- 1)类
- 包括:class
- 2)接口
- 包括:interface
- 3)数组
逻辑型
boolean类型适用于逻辑运算,一般用于程序流程控制。
boolean类型数据只允许取值true或false,不能以0或非0的整数替代true和false,并且一定要小写。
使用方法:
boolean b1=false;//直接赋值 boolean b2=3>4;//由条件表达式赋值 boolean b3=b1;//由另一个boolean变量赋值 boolean b4=list.ready();//由方法返回赋值,假设ready方法返回一个boolean的话
程序中boolean为布尔类型变量
实例中使用方法:
boolean flag = false; if(!flag){ //do something }
字符型
char类型数据用来表示通常意义上的“字符”。
字符常量为用单引号括起来的单个字符串。例如
char eChar = 'a'; char aChar = '中';
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。 而一个中文字符的Unicode就是2个字节。
注意:Java中不推荐使用char类型存储字符数据,通常使用string或者stringbuffer存储。
整数型
整数型包含四中类型:int(整型),long(长整型),short(短整型),byte(字节型)
它们都定义了一个整数,唯一区别就是它们能够表示的数据的范围。
它们都有固定的表数范围和字段长度,其不收具体操作系统的影响,以保证Java程序的可移植性。
取值范围:
类型 占用存储空间 取值范围 byte 1字节 [-2(7)~2(7)-1] -128到127之间的任意整数 short 2字节 [-2(15)~2(15)-1] -32768~32767之间的任意整数 int 4字节 [-2(31)~2(31)-1] -231到231-1之间的任意整数 long 8字节 [-2(63)~2(63)-1] -263到263-1之间的任意整数
能够表示的范围越大,占用的内存空间就越大,因此在程序设计中,应当选择最合适的类型来定义整数。
浮点型
与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响
存储小数的变量数据类型---浮点数,这个名称是相对于定点数而言的,这个点就是小数点。小数点可以根据需要改变位置。
在Java语言中有两种浮点数类型:float、double。
其中float是单精度型,占用32位内存空间,而double是双精度型,占用64位内存空间。
数值包含小数点或指数,或者在数字后面带有字母F or f(float), D or d(double)
float可以精确到7位有效数字,第8位的数字是第9位数字四舍五入上取得的;
double可以精确到16位有效数字,第17位的数字是第18位数字四舍五入上取得的
double a = 3.4; float f = 4.3f;//不加f编译出错,损失精度