Java语言基础篇(二)
一、常量
1、常量的含义
常量:使用关键字final
进行修饰,因为只能赋值一次,所以在程序运行时,其值不会改变。常量名通常使用全大写英文字母表示,有多个英文字母中间则使用下划线隔开,例如,final int TEST_VALUE = 10;
2、常量的分类
常量分类 | 例子 |
---|---|
字符串常量 | “Hello World” |
整数常量 | 100、-1 |
小数常量 | 9.99、-1.2 |
字符常量 | ‘a’ |
布尔常量 | false、true |
空常量 | null |
- 注意:除了空常量之外,其余常量都可以用System.out.println打印出来,而如果需要打印空常量的话,编译器会报 The method println(char[]) is ambiguous for the type java.io.PrintStream 的错误,即方法歧义,编译器无法确定代码在运行时使用哪个方法。
二、数据类型
1、数据类型的含义
数据类型:首先明确一点就是,Java是一种强类型语言,何谓强类型语言?就是Java语言会强制规定要为每个变量定义一个数据类型,在Java中有8种基本数据类型,比如,byte
、short
、int
、long
、float
、double
、char
、boolean
等;还有引用类型,比如,类
、接口
和数组
。每个数据类型都会分配不同的内存大小。
- 注意:假如说在编译器中不给变量定义数据类型,则编译器会编译不通过,并且会报 XXX cannot be resolved to a variable,即XXX不能解析为一个变量。
面试题:String是什么类型? 答:String是一个字符串类型,在Java中是引用类型。
2、数据类型在内存中的取值及范围
延伸:
由于目前还没有讲到类
,读者可以先预览一下或者跳过这节,等作者整理好关于类
的博文,再到回来看这部分内容。
首先定义一个类,并且在类中定义这8种基本数据类型的成员变量及有参构造函数和无参构造函数,使用无参构造函数创建对象,很显然这并没有给这些成员变量进行赋值,但系统会默认给这些变量进行赋值,例如,byte
、short
、int
、long
等类型变量的默认值为0
,char
类型的变量默认值为\u0000
也就是空字符
,而float
的默认值为0.0f
,double
的为0.0d
,boolean
的为false
。
这里要注意一下给long
类型变量赋值时,值后面推荐使用大写字符L
,float
推荐使用大写字符F
,double
推荐使用大写字符D
。
public class Demo {
private byte by;
private short sh;
private int in;
private long lo;
private char ch;
private float fl;
private double dou;
private boolean bo;
public Demo() {
}
public Demo(byte by, short sh, int in, long lo, char ch, float fl, double dou, boolean bo) {
this.by = by;
this.sh = sh;
this.in = in;
this.lo = lo;
this.ch = ch;
this.fl = fl;
this.dou = dou;
this.bo = bo;
}
@Override
public String toString() {
return "Demo{" +
"by=" + by +
", sh=" + sh +
", in=" + in +
", lo=" + lo +
", ch=" + ch +
", fl=" + fl +
", dou=" + dou +
", bo=" + bo +
'}';
}
public static void main(String[] args) {
Demo de = new Demo();
System.out.pritnln(de.toString());
}
}
效果图:
3、包装类型
-
概念:Java的包装类型就是让基本数据类型可以进行更多的操作,比如,int类型与String类型之间进行相互转换。
-
基本数据类型与包装类型的对应关系如下:
基本类型 对应的引用类型 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 注意:包装类都放在java.lang包下,因此不用手动导入(java.lang包下的类都是自动导入的)
-
Java5新特性 —— 自动装箱与自动拆箱实现基本类型与包装类型之间的转换
自动装箱:将基本类型转换为包装类型
自动拆箱:将包装类型转换为基本类型
Java的自动装箱与自动拆箱的详细讲解,请自行查阅:
深入剖析Java中的装箱和拆箱
三、变量
1、变量的含义
变量:指的是在程序运行过程中,其值会发生改变。变量的值存储在内存中,内存会给变量划分一块存储区域。
2、变量的格式
格式:数据类型 变量名 = 变量值;
例如,int a = 10;
3、变量的注意事项
-
Java语言会强制规定要为每个变量定义一个数据类型,与类名的注意事项一样,变量名必须以字母开头并由
字母
、数字
、美元符号($)
或下划线(_)
所构成,长度没有限制,大小写敏感,变量名应该使用有意义的字符命名,不能使用Java关键字进行命名。 -
变量必须初始化值,不然编译不通过。
-
变量的声明尽可能地靠近变量第一次使用的地方
int a; a = 10;
-
变量名不能重复。
-
long类型定义时,为防止整数值过大,需要在整数后面加L。
-
定义float类型变量时,为防止变量类型不兼容,需要在变量值后面加F。
四、标识符
1、标识符的含义
标识符:通俗来讲就是给类、方法和变量命名。
2、标识符命名规则
-
由数字、英文字母、美元符号($)和下划线(_)组成
-
不能以数字开头
-
区分大小写
-
不能是关键字
3、变量、方法及类命名规则
-
小驼峰命名法(变量、方法):首写字母小写,其余字母大写
-
大驼峰命名法(类):首写字母和其余字母均大写
五、类型转换
1、类型转换的分类
-
自动类型转换:把一个表示数据范围小的变量或值赋值给另外一个表示数据范围大的变量。
-
强制类型转换:把一个表示数据范围大的变量或值强制赋值给另外一个表示数据范围小的变量,其过程会造成数据精度的丢失。
格式:数据类型 变量 = (数据类型) 变量或值;
示例:short i = (short) 100000;