================================================================
我们继续Java基础的学习,本章的内容是变量和标识符以及数据类型转换
=================================================================
标识符就是Java中的各种名字,由程序员来定义,包括:
-
类名
-
方法名
-
变量名
-
包名
-
常量名
…
标识符必须按一定的规则定义,违反命名规则的标识符,会出现编译错误
Java标识符的命名规则是:
-
必须由英文字母、数字和下划线、$组成
-
不能以数字作为开头
-
不能使用Java中的关键字
命名规范不是强制性的,但良好的命名规范,对代码的可读性和维护性是非常重要的。
Java的命名规范包括:
-
见名知义,需要由有意义的英文单词
-
变量名和方法名,驼峰命名,由一个或多个单词组成,第一个单词的开头小写后面的单词开头大写,如:goodsPrice、person、myFirstPersonAge
-
类名,类似驼峰命名,每个单词的开头都是大写,如:HelloWorld、MyFirstHomework
-
包名:全部单词小写中间由.连接,域名.公司名.项目名.模块名,如:com.sun.oa.login
-
常量名,全部单词大写,中间由下划线分隔,如:MAX_VALUE
练习:
请判断哪些是合法的标识符:
HelloWorld
username2
user_name
_userName
$abc_123
2UserName
user#Name
Hello World
java
class
================================================================
变量是在JVM的内存中的一个个空间,用于存储Java程序中各种数据,变量中的数据可以随时修改。
如在执行游戏时,英雄的名字、血量、魔法值、等级这些都可以用变量保存。
变量的三个要素
-
变量名
-
数据类型
-
初始值
定义变量的方法
- 定义变量,同时初始化
数据类型 变量名 = 初始值;
如:int hp = 100;
- 先定义变量,然后再初始化
数据类型 变量名;
变量名 = 值;
int hp;
hp = 100;
- 同时定义多个类型相同的变量
数据类型 变量名1 = 值,变量名2 = 值;
int hp = 100,mp = 300;
作用域是变量能够起作用的范围
- 局部变量
在方法中定义的变量,作用域就是定义该变量的方法内部,局部变量在使用之前必须初始化。
- 全局变量
在类中的所有方法外面定义的变量,作用域就是整个类,全局变量如果不初始化会有默认值。
public class Demo01 {
int x = 9; //全局变量
public static void main(String[] args) {
//局部变量
String name = “貂蝉”;
int hp = 100;
int mp = 200;
System.out.println(“英雄的名字是:” + name);
System.out.println(“英雄的血量是:” + hp);
System.out.println(“英雄的魔法值是:” + mp);
}
}
执行下面代码有什么问题?
public class Demo02 {
public static void main(String[] args) {
int num1;
int num2 = num1 + 1;
}
}
注意:
- long类型变量赋值时,数字后面要加L或l,推荐使用L
long num = 100L;
- float类型变量赋值时,浮点数后要添加f或F,否则默认是double类型,赋值出错
float num = 10.5f;
- char的值用单引号括起来
char c = ‘A’;
不同的数值类型之间可以进行数据类型的转换
数值类型有:
byte\short\int\long\float\double\char
数值类型的取值范围从小到大排列为:
类型转换:
- 自动类型转换
从小的类型转换为大的类型
由编译器自动完成
long num = 200; //200属于int类型,编译器自动会将200转换200L,赋值给long类型的变量num。
byte num2 = 100;//100在byte取值范围内,100作为byte保存。
int num1 = num2; //byte -> int
double price = 2500; //int -> double
- 强制类型转换
大的类型转换为小的类型
需要手动完成
数据类型 变量名 = (数据类型)值;
最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程
- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
法与编程
[外链图片转存中…(img-7cDSPQpg-1721139002149)]
- 数据库部分
[外链图片转存中…(img-xWnwlh1S-1721139002150)]
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
[外链图片转存中…(img-wPKlYc2x-1721139002150)]
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。