目录
一、变量
变量是程序的基本组成单位
变量相当于内存一个数据存储空间
1)变量在同一作用域内不能重名
2)变量 = 变量名 + 值 + 数据类型(变量三要素)
程序中+号的使用:
1)当左右两边都是数值型时,则做加法运算
System.out.println(1 + 23); //输出24
System.out.println(1 + 23); //输出24
2)当左右两边有一方为字符串时,则做拼接运算
System.out.println("1" + 23); //输出123
System.out.println("hello" + 1 + 23); //输出hello123
3)运算顺序,从左到右
System.out.println(1 + 23 + "hello"); //输出24hello
二、Java API文档
1)API(应用程序编程接口)是Java提供的基本编程接口(java提供的类还有相关方法)
2)Java语言提供了大量的基础类,因此Oracle公司也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法
3)Java类的组织形式
4)包 ——> 类 ——> 方法
直接索引
三、数据类型
1. 整型
bit:计算机中最小存储单位
byte:计算机中基本存储单元
1 byte = 8 bit
类型 | 范围 |
---|---|
byte | -128 ~127 |
short | -2^15 ~ 2^15 |
int | -2^31 ~ 2^31-1 |
long | -2^63 ~ 2^63-1 |
2. 浮点类型
类型 | 范围 |
---|---|
float | -3.403E38 ~ 3.403E38 |
double | -1.798E308 ~ 1.798E308 |
1)浮点数在机器中存放形式:浮点数 = 符号位 + 指数位 + 尾数位
2)尾数部分可能丢失,造成精度损失(小数都是近似值)
double n1 = 0.7;
double n2 = 2.1 / 3; //0.70000...0001
//解决方法:
if(Math.abs(n1 - n2) < 0.00001)
3)十进制数形式:5.12 \ 512.0f \ .512
4)科学计数法形式:5.12e2 (512.0)
3. 字符类型
1)在java中,char的本质是一个整数,在输出时,时Unicode码对应的字符
2)char类型是可以进行运算的,相当于一个整数
char c1 = 97;
System.out.println(c1); //输出'a'
char c2 = 'a';
System.out.println((int)c2); //输出97
System.out.println('a' + 10); //输出107
char c3 = 'b' + 1;
System.out.println((int)c3); //输出99
System.out.println(c3); //输出'c'
3)存储: ‘a’ ——> 码值97 ——> 二进制 ——> 存储
4)读取:二进制 ——> 码值97 ——> ‘a’ ——> 读取
字符编码表:
ASCII :一共128个字符,只占用了一个字节的后面7位(一个字节可以表示256个字符)
Unicode :两个字节表示字符,字母、汉字都占两个字节(兼容ASCII码)
utf-8 :大小可变的编码,字母占1个字节,汉字占3个字节(可使用1—6个字节表示一个字符)
gbk :可以表示汉字,范围广,字母占1个字节,汉字占2个字节
gb2312 :gb2312 < gbk
big5码 :繁体汉字(香港、台湾)
4. 布尔类型
1)布尔类型也叫boolean类型,boolean类型数据只允许取值true和false,无null
2)boolean类型占1个字节
if(1) //❌不能用数字表示true和false
{
}
三、自动类型转换
1)有多种类型数据混合运算时,系统首先自动将所以数据转换成容量最大的那种数据类型,再进行计算
int n1 = 1;
float n2 = n1 + 1.1; //❌1.1为double类型
2)byte、short和char之间不能相互自动转换
3)当把具体数赋给byte时,先判断该数是否在byte范围内,如果在就可以赋值
byte b1 = 1;
byte b2 = 128; //❌超过byte范围
4)byte、short、char三者可以计算,首先都转换为int类型
byte n1 = 1;
byte n2 = 2;
byte n3 = n1 + n2; //❌(n1 + n2)为int类型
5)boolean不参与类型的自动转换
四、强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型
1)使用时要加上强制准换符() ,但可能造成精度降低或溢出
int i = (int)1.9; //1 精度降低
byte j = (byte)2000; //-48 数据溢出
2)强制符号只针对最近的操作数有效,往往会使用小括号提升优先级
int x = (int)1 * 0.5; //❌double转int
int y = (int)(1 * 0.5) //正确
3)char可以保存int常量值,不能保存int变量值
int n = 1;
char c1 = 1; //正确
char c2 = n; //❌
五、String类型转换
基本类型 ——> String:基本类型值 + “”
int n = 123;
String s = n + "";
String ——> 基本类型:通过基本类型的包装类调用parse…方法
int n1 = Inteher.parseInt("123");
long n1 = Long.parseLong("123");
float n1 = Float.parseFloat("123");
double n1 = Double.parseDouble("123");
boolean n = Boolean.parseBoolean("true");
String s = "abc";
System.out.println(s.charAt(0)); //输出a
System.out.println(s.charAt(1)); //输出b
System.out.println(s.charAt(2)); //输出c
System.out.println(s.charAt(3)); //❌抛异常
注意:
String s = "123.0";//⚠️
int n1 = Inteher.parseInt(s); //❌抛异常
long n1 = Long.parseLong(s); //❌抛异常
float n1 = Float.parseFloat(s);
double n1 = Double.parseDouble(s);