Java语言基础
一、变量的基础概念
变量是用来记录单个数据内容,则声明一个变量即可,声明的本质就是在内存中申请一个存储单元,该存储单元中的数据内容可以发生改变。由于存放的数据内容大小不一样,导致所需存储单元不一样。
二、变量的声明和使用
1、声明数据类型
2、定义变量的名称
数据类型 变量名 = 初始值;初始值可以省略,但是“;”,不可以省略,"+"表示字符串连接符
三、变量使用的注释事项
1、Java是强类型语言,使用变量之前必须先声明并指定数据类型
2、使用变量之前必须初始化
3、变量不能重复声明
四、标识符的命名法则
1、有数字、字母、下划线以及"$"等组成,其中数字不能开头
2、不能使用Java语言的关键字,如 break、catch、class
3、区分大小写,长度无限制但不宜过长
4、尽量做到见名知意,支持中文但不推荐使用
5、标识符可以给类/变量/属性/方法/包 起名字
五、案例
/*
编程实现变量的输入和输出
*/
import java.util.Scanner;
public class VarIOTest {
public static void main(String[] args) {
//声明两个变量记录姓名和年龄
String name;
int age;
//提示用户从键盘输入姓名和年龄
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in 代表键盘输入
Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串放入变量name中
name = sc.next();
//通过扫描器读取一个整数数据放入变量age中
age = sc.nextInt();
//输出变量值
System.out.println("name = " + name);
System.out.println("age = " + age);
}
}
优化版
import java.util.Scanner;
public class VarIOTest {
public static void main(String[] args) {
//提示用户从键盘输入姓名和年龄
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in 代表键盘输入
Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串放入变量name中
String name = sc.next();
//通过扫描器读取一个整数数据放入变量age中
int age = sc.nextInt();
//输出变量值,尽可能减少重复代码
System.out.println("name = " + name + ",age = " + age);
//System.out.println("age = " + age);
}
}
六、数据类型分类
1、基本数据类型
byte、short、int、long、float、double、boolean、char
2、引用数据类型
数组、类、接口、枚举、标注
七、常用的进制
1、进制介绍
生活中采用十进制进行数据描述
计算机里层采用0和1组成的二进制序列进行数据的描述
二进制最高位(最左边)用于符号位,0表示非负数,1表示负数
八进制和十六进制都是二进制的缩写
2、进制之间的转换
十进制转换为二进制:除2取余法,不断除以2直到商为0,余数倒序排列;
拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重下面写1,否则写0
二进制转十进制:二进制的每个数字乘以当前权重值累加
负十进制转二进制的方式(得到的是补码):先将十进制的绝对值转换为二进制,然后按位取反再加1
核心思想:负数:需要补码,按位取反再加1
-45 1101 0011
45二进制:0010 1101
按位取反:1101 0010
再加1:1101 0011
负二进制转十进制:先减1在按位取反合并为十进制整数后添加负号,负十进制转二进制的方式逆序
进阶知识点:
正数的原码、反码、补码均是相同的
负数的原码:正数原码基础上,将符号位改成1
负数的反码 :负数原码的基础上,符号位不变,剩下位按位取反
负数的补码:负数反码的基础上加1
八、单个字节表示的整数范围
在计算机中的单个字节表示八位二进制位,其中最高位(最左边)代表符号位,0表示正数,1表示负数
byte:===>-128~127
非负数范围 0000 0000~0111 1111=>0~2^7-1=0~127
负数范围 1000 0000~1111 1111=>-2^7~-2^0=-128~-1
九、整数类型的概念
Java语言中描述整数数据的有;byte、short、int、long,推荐int类型
byte占一个字节表示范围:-2^7~2^7-1=>-128~127
short占2个字节表示范围:-2^15~2^15-1=>-32768~32767
int占4个字节表示范围:-2^31~2^31-1
long占8个字节表示范围:-2^63~2^63-1
十、整数类型的编程使用
1、若描述比long类型还大的数据则使用java.math.BigInteger类型
十一、整数类型笔试考点
int i2 = 25;
byte b2 = i2;
System.out.println("b2 = " + b2) //错误:不兼容的类型,从int转换到byte可能会有损失
十二、浮点类型
java语言中float、double,推荐使用double
float占4个字节,单精度浮点数,可以表示7为有效数字
double占8个字节,双精度浮点数,可以表示15位有效数字
float f1 = 3.1415926;//不兼容类型,从double到float可能会有损失,小数据数据叫直接量
float f1 = 3.1415926f;f1 = 3.1415925 默认是7位有效数字,超出部分会有损失
笔试考点:
System.out.println(0.1+0.2);//打印数据不是0.3,原因浮点型运算时可能会有误差;若希望实现精确运算则借助java.math.BigDecimal;
十三、布尔类型
boolean 数值只有true、false,所占的空间大小没有明确规定,可以认为是1个字节
十四、字符类型
1、描述单个字符数据类型,char类型,如'a','中'等;
2、char在内存空间中占2个字节并且没有符号位,表示的范围是0~65535(32768+32767),现实生活中很少有数据能够被单个字符描述,因此在开发中更多使用多个字符串组成的字符串,使用String类型加以描述,如"hello"等.
3、计算机底层识别0和1,可以给该数据指定编号,该编号就叫ASCII.
十五、字符类型和编码的使用
掌握的ASCII: '0'~48;'A'~65;'a'~97;空格~32;换行符~10;
十六、Unicode字符集的概念和使用
Java 字符类型采用Unicode,Unicode是世界通用的定长字符集,所有的字符都是16位.
十七、转义符
特殊字符的使用,双引号本身有2含义,1、字符串的开头和结尾,2、双引号本身
\ 转义就是转换原有含义
十八、自动类型转换的概念和使用
java语言中基本数据类型之间的转换方式:自动类型转换和强制类型转换。
其中自动类型转换主要是指从小类型到大类型之间的转换
byte--->short--->int--->long--->float--->double;
十九、强制类型转换的概念和使用
从大类型到小类型之间的转换;强制类型转换可能会损失;
目标类型 变量名 = (目标类型)源类型变量名;
short和char两种相同类型也必须强制转换;