文章目录
- 1. 标识符
-
- 1.1 标识符概述
- 1.2 Java行业内部命名规范
- 2. 数据类型
-
- 2.1 基本数据类型
-
- 2.1.2 整型
- 2.1.3 浮点型
- 2.1.4 字符型
- 2.1.5 布尔型
- 2.1.6 基本数据类型排序
- 2.2 基本数据的类型转换
-
- 2.2.1 自动类型提升(精度提升)
-
- 2.2.2 数据溢出
-
- 2.3 引用数据类型
-
- 3. 变量
-
- 3.1 变量的概念与定义
- 3.2 变量的分类
- 3.3 变量的使用
- 3.2 注意事项
- 4. 常量
-
- 4.1 常量概念
- 4.2 常量分类:按写法分类
- 4.3 常量分类:按数据类型分类
-
- 4.3.1 基本数据类型常量
- 4.3.2引用数据类型常量
1. 标识符
1.1 标识符概述
Java中给类,接口,变量,方法等资源命名使用的字符序列,称为标识符
1. 组成内容:
(1)允许所有的大小写英文字母
(2)允许0-9的数字组成
(3)允许英文的_和$符号,其他符号和空格不能使用
(4)允许其他国家语言的字符,但实际开发中,所有命名都是英文,没有中文。
2. 注意事项:
(1)不能是关键字
(2)不能数字开头
(3)最好见名知意
1.2 Java行业内部命名规范
1. 类的名字和接口的名字:大驼峰,每一个英文单词的首字母大写。
2. 变量命名:小驼峰,第一个英文单词全小写,从第二个单词开始,首字母大写。
3. 方法的命名:小驼峰。
4. 常量的命名:所有字母全部大写,单词之间用下划线_进行分隔。
5. 命名尽量见名知意。
2. 数据类型
2.1 基本数据类型
java有八大基本数据类型
1. 表示整数的类型
(1)byte
(2)short
(3)int
(4)long
2. 表示小数的类型
(1)float
(2)double
3. 表示字符的类型:char
4. 表示对错(布尔)的类型:booleanS
java中最高位是符号位不参与计算,只表示正负所以算基本数据类型的最大值时,不应该加入符号位
比如,1byte的十进制最大值:127
2.1.2 整型
1. 整型类型中字面值常量默认类型是int类型
2. long类型变量在定义的时候,当值范围超过int范围时建议在后面加L或l,表示这是long类型
package test.java;
import com.google.inject.internal.asm.$Type;
public class Test {
public static void main(String[] args) {
byte b = 10;
System.out.println("b="+b);
short s = 100;
System.out.println("s="+s);
int i = 125;
System.out.println("i="+i);
long l = 12354576879455L;
System.out.println("l="+l);
System.out.println("字面值整型常量"+100);
}
}
2.1.3 浮点型
1. 默认浮点型数据是double型
2. float变量定义时需要在后面加f或F
3. double变量定义时也可以在后面加D或d
4. 浮点型存储的数据是不精确的数据,所以在运算过程中,结果也可能不精确
5. double精度高,但是double消耗内存是float的两倍,运算速度也比float数据慢,所以一般能用float就不用double,好节省内存,加快运算速度
6. 两整数相除,会去除小数部分,要想保留小数部分,只需要提升其中一个整数的精度
public class Test {
public static void main(String[] args) {
float f = 12.3F;
System.out.println("f="+f);
double d1 = 25.0;
double d2 = 45.8D;
System.out.println("d1="+d1+"\t"+"d2="+d2);
int a = 6;
int b = 4;
System.out.println("a/b="+(double)a/b);
}
}
2.1.4 字符型
1. 字符类型变量赋值:char 变量名 = '单个字符';
2. 一个单引号里面只能有一个字符,超过一个会报错
3. 使用整数给char类型赋值,不可以超过0~65535这个范围,不然在字符编码中找不到对应的字符,就会报错
public class Test {
public static void main(String[] args) {
char a = 'a';
System.out.println("a的值为:"+ a);
char chr = 66;
System.out.println("chr的值为:"+ chr);
char ch = '家';
System.out.println("ch的值为:"+ ch);
}
}
2.1.5 布尔型
1. boolean类型数据只有两个值,true和false
public class Test {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
System.out.println("b1="+b1);
System.out.println("b2="+b2);
}
}
2.1.6 基本数据类型排序
2.2 基本数据的类型转换
1. 整型数据有:byte,short,int, long,都有自己的最大值和默认值,默认值都为0.
2. 精度:用来描述各种数据类型位宽的一个名词,比如byte位宽为8个bit,short位宽为16bit
3. 基本数据的类型转换分为
(1)自动类型提升:小精度数据提升为大精度数据
(2)强制类型转换:大精度数据转为小精度数据(会发生精度丢失)
2.2.1 自动类型提升(精度提升)
1. 精度的自动提升:数字之间在进行四则运算的时候会自动提升精度,最终计算出来的结果类型为高精度类型
2. 比如下面int类型数字*2.5,最终是double类型,double精度比int高
public class Test {
public static void main(String[] args) {
int num = 10;
System.out.println("结果为:"+ num*2.5);
}
}
(1)扩大数据类型
上面的例子在1后面加L/l,代表把1变成long类型(64位),四则运算会自动进行数据精度提升,就不会出现数据溢出现象
1. 1默认情况下是int类型。,要让它变成其他类型,只需要在后面加上对应首字母
public class Test {
public static void main(String[] args) {
System.out.println("int类型最小值"+(Integer.MIN_VALUE-1L));
System.out.println("int类型最大值"+(Integer.MAX_VALUE+1L));
}
}
(2)变量精度提升
1. 对变量进行精度提升,必须在变量前加小括号,里面方需要提升的成的目标精度类型
2. 强制类型转换:将高精度数值赋值给低精度的变量,需要先将高精度数据转换成低精度再赋值,此时会发生精度丢失(转换过成丢失高精度的部分数据)
public class Test {
public static void main(String[] args) {
int a = 100;
double d = (double)a;
System.out.println(d);
double c = 100.8;
short s = (short)c;
System.out.println(s);
}
}
2.2.2 数据溢出
1. 基本数据类型最大值与最小值
每个基本数据类型都有最大值最小值,我们可以使用其基本数据类型包装类的MAX_VALUE,MIN_VALUE取出其最大值与最小值
public class Test {
public static void main(String[] args) {
System.out.println("int类型最小值"+Integer.MIN_VALUE);
System.out.println("int类型最大值"+Integer.MAX_VALUE);
}
}
2. 数据溢出
1. 数据溢出:数据的最大值+1变成了最小值,或者数据的最小值-1变成最大值的现象
2. 为了防止数据溢出,应该提升精度,也就是扩大数据类型
public class Test {
public static void main(String[] args) {
System.out.println("int类型最小值"+(Integer.MIN_VALUE-1));
System.out.println("int类型最大值"+(Integer.MAX_VALUE+1));
}
}
2.3 引用数据类型
除基本数据类型外的就是引用数据类型
包括:
1. 类
2. 数组
3. 接口
2.3.1 String类型
3. 变量
3.1 变量的概念与定义
1. 变量:用来保存数据的内存空间,在程序运行过程中,其值可以发生改变的量,人和程序都可以控制改变
2. 变量的定义:分为两步,
(1)变量的定义:确定变量数据类型以及变量名称
(2)变量的赋值:为变量进行初始化赋值
3. java中声明变量
(1)先声明后付制:
数据类型 变量名;//此时变量名的值默认为0
变量名 = 值;
(2)声明并且赋值:
数据类型 变量名 = 值;
5. 在java中一个变量只能保存一种类型的数据
public class Test {
public static void main(String[] args) {
int a = 10;
System.out.println("a="+a);
a = 12;
System.out.println("a="+a);
double b = 10.0;
System.out.println("b="+b);
b = 12.0;
System.out.println("b="+b);
}
}
3.2 变量的分类
每一个类运行都会分配一个栈内存(归属单个进程本身),堆内存(所有进程公用)是公用的
--------------------------------
1. 变量分为局部变量和全局变量
2. 局部变量:存在方法中,只有在方法可以使用,局部变量在栈内存中存放
3. 全局变量定义在类中,当前类中所有方法都可以使用,存放在堆内存中
3.3 变量的使用
1. 变量的访问:直接通过变量名访问变量值
2. 变量的赋值: 变量名=新的变量值;
3.2 注意事项
变量的声明需要遵循一些原则:
1. 遵循标识符的原则:
(1)第一个位置只能是下划线,字母,美元符号;
(2)除首位外其他位置下划线,字母,美元符号,数字
(3)也就是说数字不能用于变量命名开头
2. 见名知意:看见变量名就知道它表示的含义(可提高代码的可读性)
3. 遵循小驼峰原则:
(1)若变量名只有一个单词应该全部小写
(2)若变量名由多个单词组成,从第二个单词开始应该首字母大写
4. 变量的作用域:
(1)只能在变量的作用范围内访问变量,为变量赋值
(2)从变量定义的位置开始,包含变量本身,距离变量最近的一对大括号就是变量的使用范围(作用域)
5. 相同数据类型的变量可以连续定义但是不介意这样
4. 常量
4.1 常量概念
1. 在java代码运行中,值不会发生变化的量(数据),称为常量
例如:圆周率π,身份证号码……
2. 常量存在堆内存中
4.2 常量分类:按写法分类
1. 在写法上常量分为:字面量常量 和 符号常量
2 . 字面量常量:在编程语言中,如果定义一个基本数据类型的值直接使用,不需要程序单独为其开辟空间
=> 例如: System.out.println(100);
字面量常量=字面值常量
3. 符号常量:
public static final String IDCARD = "1234567645";
4.3 常量分类:按数据类型分类
按照数据类型分为:基本数据类型 和 引用数据类型
4.3.1 基本数据类型常量
1. 基本数据类型分为4大类:
(1)整数类型: 520, 5,-9;
(2)浮点类型:3.14, 9.5;
(3)字符类型:'2' 'a' '王',注意‘-1’不是字符;
(4)布尔类型:表示真假值,使用在判断场景下,只有两个值 true 和 false。
public static void main(String[] args) {
System.out.println(34);
System.out.println(-9);
System.out.println(3.14);
System.out.println(-9.0);
System.out.println('a');
System.out.println('1');
System.out.println(true);
System.out.println(false);
}
4.3.2引用数据类型常量
1. 引用数据类型常量:
最简单的引用数据类型,字符串类型常量,"1434t43";
注意:字符串常量可以和任意基本数据类型做加法,但是不运算结果,只执行拼接,得到结果依然为字符串类型。
public static void main(String[] args) {
System.out.println("北京欢迎你");
System.out.println(-9);
System.out.println("6" + 7);
System.out.println("6" + 7 + 8);
System.out.println("6" + (7 + 8));
System.out.println(7 + 8 + "6");
}