一、数据类型

数据类型分为基本数据类型和引用数据类型,在这里主要介绍基本数据类型,基本数据类型包括整型(byte、short、int、long),浮点型(float、double),布尔型(boolean),字符型(char)和引用类型
1、整型
1)byte:一个字节,其范围为-128 ~ +127,范围较小,一般不建议使用

//基本格式为 byte 变量名 = 初始值;
byte a = 12;
System.out.println(a);//12

2)short(短整型):两个字节,其范围为-32768 ~ +32767,范围较小,一般不建议使用

//基本格式为 short 变量名 = 初始值;
short b = 0;
System.out.println(b);//0

3)int(整型):四个字节,其范围为-2^31 ~ +2^(31-1)

//基本格式为 int 变量名 = 初始值;
int num = 10;
System.out.println(num);//10

注意事项
(1)变量名是变量的标识. 后续都是通过这个名字来使用变量
(2)Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值
(3)初始化操作是可选的, 但是建议创建变量的时候都显式初始化
(4)最后不要忘记分号, 否则会编译失败
(5)// 表示注释. 注释作为代码的解释说明部分, 不参与编译运行
4)long(长整型):8个字节,其范围是-2^63 ~ +2^(63-1)

//基本格式为 long 变量名 = 初始值;
long num = 10L;
System.out.println(num);//10

注意事项
(1)基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long
(2)初始化设定的值为 10L(10l) ,表示一个长整型的数字
整型小结
从以上我们可以看出,他们四个都是整型,只是表示的范围略有不同,那么大家是否会想到对于一个随机数 10 ,当我们看见数字时,觉得10在四个整型范围内,那么,它到底是什么类型的呢?
对于long和前面三个而言,明显long后面有L或l ,以此区分,可是其他几个怎么区分,在java中,我们都认为是int类型,这是因为计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据,为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int,,再参与计算。
2、浮点型
1)float(单精度浮点型):四个字节

//基本格式为 float 变量名 = 初始值;
float num = 1.0f;//f和F均可
System.out.println(num);//1.0

2)double(双精度浮点型):八个字节

//基本格式为 double 变量名 = 初始值;
double num = 1.0;
System.out.println(num);//1.0

注意事项
(1)float表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float
(2)Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2^n 的形式表示数据范围
(3)Java 的 double 类型的内存布局遵守 IEEE754标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势必会存在一定的精度误差
(4)为区分float和double,一般如果是float,在其后加上f或F
3、布尔型(boolean)

//基本格式为 boolean 变量名 = 初始值;
boolean num = true;
System.out.println(num);//true

注意事项
(1)boolean 类型的变量只有两种取值,true 表示真,false 表示假
(2)Java 的 boolean 类型和 int 不能相互转换,不存在1 表示 true, 0 表示 false 这样的用法
(3)boolean 类型有些 JVM 的实现是占 1 个字节,有些是占 1 个比特位,这个没有明确规定
4、字符型(char)

//基本格式为 char 变量名 = 初始值;
char ch = 'A';
System.out.println(ch);//A

注意事项
(1)Java 中使用 单引号 + 单个字母 的形式表示字符字面值
(2)计算机中的字符本质上是一个整数,在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符,因此一个字符占用两个字节, 表示的字符种类更多,包括中文
5、字符串类型

//基本格式为 String 变量名 = "初始值";
String name = "zhangsan";
System.out.println(name);//zhangsan

1)转义字符示例

// 创建一个字符串 My name is "张三"
String name = "My name is \"张三\"";

2)字符串的 + 操作, 表示字符串拼接

String a = "hello";
String b = "world";
String c = a + b;
System.out.println(c);//helloworld

3)还可以用字符串和整数进行拼接

String str = "result = ";
int a = 10;
int b = 20;
String result = str + a + b;
System.out.println(result);//result = 1020

注意事项
(1)Java 使用 双引号 + 若干字符 的方式表示字符串字面值
(2)和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释)
(3)字符串中的一些特定的不太方便直接表示的字符需要进行转义

二、变量的命名规则

硬性指标
(1)一个变量名只能包含数字、字母、下划线,不能以数字开头
(2)变量名是大小写敏感的,即 num 和 Num 是两个不同的变量
(3)虽然语法上也允许使用中文/美元符($)命名变量,但是 强烈 不推荐这样做
软性指标
(1)变量命名要具有描述性, 见名知意
(2)变量名不宜使用拼音(但是不绝对)
(3)变量名的词性推荐使用名词
(4)变量命名推荐 小驼峰命名法, 当一个变量名只有一个单词时,该单词小写;由多个单词构成的时候,除了第一个单词之外, 其他单词首字母都大写

三、类型之间的转换

在以上谈及int时,已经提到过,计算机会把byte和short提升成int,也就是说,当类型之间转换时,范围小的会主动提升成范围大的;但是,当范围大的向范围小的变化时,我们应该怎么办?这时,我们应用到强制类型转换,在小类型前进行强转,就可以得到大类型,但是这样会有精度丢失;当计算两个不同类型数据时,计算机会先将小类型提升成大类型,再参与运算,需要强调的是,这样的转换是发生在整型里边的,例如将boolean和其他数据类型,则不能转换,因为类型不匹配

四、操作符

java中的操作符和C语言的操作符类似,遗忘的小宝贝可以看看先前的博客,需要注意的是,逻辑运算符的操作对象和结果都是true或者false,不存在0是false,非0即true