从零开始学Java(三) 标识符与关键字 变量 数据类型

本文详细介绍了Java编程语言的基础语法,包括标识符的命名规则、关键字的使用、变量的分类及作用域、基本数据类型及其转换等内容,并强调了驼峰命名法的重要性。

标识符与关键字

标识符命名规则

① 标识符只能由数字、字母、下划线“_”、美元符号“$”组成,不能含有其它符号。
② 标识符不能以数字开始。
java 关键字和保留字不能作为标识符。
④ 标识符严格区分大小写。
⑤ 标识符理论上没有长度限制。

标识符命名规范

遵循驼峰命名方式:可以很好的分隔单词,每个单词之间会划清界限,同样也是增强程序的可读性,例如:getName 则表示获取名字,UserService 则表示用户业务类;
 
类名、接口名首字母大写,后面每个单词首字母大写,这是遵守驼峰命名方式的;
 
变量名、方法名首字母小写,后面每个单词首字母大写,这也是遵守驼峰命名方式的;
 
常量名全部大写,单词和单词之间使用“_”衔接,为了表示清楚含义,不要怕单词长,例如:INT_MAX_VALUE 则表示 int 类型最大值。

关键字

Java 关键字是编程语言里事先定义的,有特殊意义的单词,Java 中所有的关键字都是小写的英语单词。 关键字不能用作标识符。
 

变量

字面值

整数型(数字):12100-2
浮点型(数字,带小数):1.02.03.14
字符型(文字,单个字符):'a'''
布尔型(真假):truefalse
字符串型(文字,多个字符):"I love Yoda Yuki"

变量分类

在方法体当中声明的变量以及方法的每一个参数都是局部变量。在方法体外,类体内声明的变量称为成员变量,
 
成员变量声明时如果使用 static 关键字修饰的为静态成员变量(简称静态变量),如果没有 static 关键字修饰则称为实例成员变量(简称实例变量)
 
public class VarTest{
    int x = 20; // 实例变量
    static int y = 200; // 静态变量
    public static void sum(int a, int b) { // 局部变量 a 和 b
        int firstNum = 100; // 局部变量
    } 
}
局部变量只在方法体当中有效,方法开始执行的时候局部变量的内存才会被分配,当方法执行结束之后,局部变量的内存就释放了。
 
public class VarTest
{
	static int k = 100;
	public static void main(String[] args){
		int k = 300;
		System.out.println("main k = " + k);
		m();
	}
	public static void m(){
		System.out.println(k);
	}
}

数据类型

Java 中的数据类型包括两大类,一类是基本数据类型,另一类是引用数据类型。

基本数据类型

基本数据类型包括 4 8 种:
整数型(不带小数的数字):byte,short,int,long
浮点型(带小数的数字):float,double
字符型(文字,单个字符):char
布尔型(真和假):boolean
 

字符编码

Java 为了国际化,为了支持所有国家的语言,所以 Java 采用的编码方式为 Unicode 编码。
 
例如字符''对应的 Unicode 码是'\u4e2d'
 

整数型

整数型数据在 java 中有 4 种表示方式,分别是十进制、八进制、十六进制、二进制。不过要注意的是二进制写法是在 Java7 中引入的,

对于 Java7 之前的版本不支持该语法。默认为十进制,以 0 开始表示八进制,以 0x 开始表示十六进制,以 0b 开始表示二进制。

类型转换

一个数据在赋值给一个变量的时候存在三种不同的情况。
 
第一种情况是类型一致,不存在类型转换;
 
第二种情况是小容量可以自动赋值给大容量,称为自动类型转换;
 
第三种情况是大容量不能直接赋值给小容量,大容量如果一定要赋值 给小容量的话,必须添加强制类型转换符进行强制类型转换操作。
 
不过需要注意的是,强制类型转换在使用的时候一定要谨慎,因为可能会导致精度损失。
 
public class IntegerTypeTest05 {
    public static void main(String[] args) {
        long num = 2147483648;
        //会报错,存在int类型向long类型的转换 应为 long num = 2147483648L;
    }     
}

例外:

public class IntegerTypeTest06 {
    public static void main(String[] args) {
        byte b = 1;
        System.out.println(b);
    } 
}
当一个整数型的字面量没有超出 byte,short,char 的取值范围,可以将该字面量直接赋值给byte,short,char 类型的变量,如果超出范围则需要添加强制类型转换符。

布尔类型

public class BooleanTest2 {
    public static void main(String[] args) {
        boolean flag = 1;
        boolean success = 0;
        //会报错,Java中boolean类型不可赋值0或1
    } 
}
Java 中布尔类型的变量值不能使用 1 0,只能使用 tru和 false

浮点类型

public class DoubleTest {
    public static void main(String[] args) {
        float f = 3.0;
        //会报错
        //应为 float f = 3.0F;
    } 
}
3.0 默认被当做 double 类型来处理,占用 8 个字节,前面的 f 变量是 float 类型占用 4 个字节,大容量无法直接赋值给小容量。
 
只要是浮点型的字面量,例如 1.03.14 等默认会被当做 double 类型来处理,如果想让程序将其当做 float 类型来处理,需要在字面量后面添加 f/F

基本数据类型转换

八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;
 
如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给 byte,short,char 类型的变量;
 
小容量向大容量转换称为自动类型转换,容量从小到大的排序为:byte < short(char) < int < long < float < double,其中 short char 都占用两个字节,但是 char 可以表示更大的正整数;
 
大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但运行时可能出现精度损失,谨慎使用;
 
byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;
 
多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;

注意事项

整数型字面值默认当做 int 类型处理,如果以 long 形式表示,需要在字面值后添加 Ll

浮点型字面量默认被当做 double 处理,后面添加 F/f 才可以被当做 float 类型;

而布尔型Java 中只有 true false 没有其他值;

字符型变量完全可以存储 1 个汉字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值