[Java基础] 变量(二)

一、变量

变量是程序的基本组成单位
变量相当于内存一个数据存储空间

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)包 ——> 类 ——> 方法
直接索引

三、数据类型

java数据类型

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	= 1byte 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); 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你怎么知道我头发乌黑浓密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值