栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java笔记】03 变量

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java笔记】03 变量

【Java笔记】03 变量

文章目录
  • 【Java笔记】03 变量
  • 一、变量基本
  • 二、+的使用
  • 三、数据类型
  • 四、整数类型
  • 五、浮点类型
  • 六、字符类型
  • 七、布尔类型
  • 八、数据类型转换

一、变量基本
  • 概念

变量是程序的基本组成单位,相当于内存中一个数据存储空间的表示,基本要素(类型、名称、值)

  • 步骤
  1. 声明变量 int a;
  2. 赋值 a=60;
  3. 使用 System.out.println(a);
  • 注意事项
    1.变量表示内存中的一个存储区域
    2.该区域有名称和内存
    3.先声明后使用
    4.该区域的数据在同一类型范围内变化
    5.变量在同一作用域不能重名
二、+的使用

1.左右都是数值型=>加法运算
2.左右两边有一方为字符串=>拼接运算

System.out.println(100+98);//198
System.out.println("100"+98);//10098
System.out.println(100+3+"hello");//103hello
System.out.println("hello"+100+3);//hello1003
三、数据类型

1.基本数据类型

  • 数值型
    整数类型,存放整数 byte(字节)[1],short[2],int[4],long[8]
    浮点类型 float[4],double[8]
  • 字符型
    存放单个字符 char[2]
  • 布尔型
    存放true,false boolean[1]
    2.引用数据类型
  • 接口
  • 数组
四、整数类型
类型占用存储空间范围
byte,字节1字节-128~127
short,短整型2字节-215 ~ 215-1,-32768~32767
int,整型4字节-231 ~ 231-1,-2147483648~2147483647
long,长整型8字节-263 ~ 263-1

1.Java各整数类型有固定的范围和字段长度,不受具体OS影响,保证可移植性
2.Java的整型常量默认为int,声明long需要后加’l’或’L’
3.Java程序中变量常声明为int型,除非不足以表示大数,才用long
4.bit:计算机中的最小存储单位
   byte:计算机中基本存储单元,1 byte = 8 bit

五、浮点类型
类型占用存储空间范围
单精度float4字节-3.403E38~3.403E38
双精度double8字节-1.798E308~1.798E308

浮点数=符号位+指数位+尾数位
尾数部分可能丢失,造成精度损失
默认double,声明float型常量,后加f或F
0.12也可写成.12
通常使用double,精度更高

	double num1 = 2.7;
	double num2 = 8.1/3;
	System.out.println(num1); //2.7
	System.out.println(num2); //接近2.7的一个小数,而不是2.7

对运算结果是小数的进行相等判断时,Pay Attention!
正确写法:

	if(Math.abs(num1 - num2) < 0.000001)  {
		//差值非常小,达到要求精度
		System.out.println("相等");
	}

但直接赋值时,两数可判断相等。

六、字符类型

字符类型可以直接存放一个数字
char c=97;
1.字符常量单引号
2.允许用转义字符 char c = ‘t’;
3.Java中,char的本质是一个整数,在输出时,对应unicode码对应的字符
4.char类型是可以进行运算的,相当于一个整数

	System.out.println('a' + 10);//107
	char c5 = 'b' + 1;//98+1==> 99
	System.out.println((int)c5); //99
	System.out.println(c5); //99->ASCII码=>c
  • 字符类型本质
  • 字符存储到计算机中,将对应的码值找出来
       存储:‘a’=>码值 97=>二进制 110 0001=>存储
       读取:二进制 110 0001=>97=>‘a’=>显示
  • 编码表
  • ASCII 一个字节表示,128个字符。实际上一个字节可以表示256个字符,只用了128个
  • Unicode 固定大小的编码,使用两个字节来表示字符,字母和汉字都是占用两个字节,浪费空间
  • utf-8 大小可变的编码,字母使用1个字节,汉字使用3个字节
  • gbk 可表示汉字,范围更广泛,字母使用1个字节,汉字使用2个字节
  • gb2312 可以表示汉字,少用
  • big5 繁体汉字
七、布尔类型

占1个字节,适用于逻辑运算
只允许取值true和false
不能用0或非0代替false和true

八、数据类型转换
  • 自动类型转换
    1.精度小的类型自动转换为精度大的数据类型
    char -> int -> long -> float -> double
    byte -> short ->int -> long -> float ->double
    2.有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,再进行计算
public class Convert{
	public static void main (String[] args){
		int n1 = 10;
		//float d1 = n1 + 1.1;//错误 n1+1.1结果是double类型
		double d1 = n1 + 1.1;//✔
		float d = n1 + 1.1F;//✔
	}
}

3.byte和short不能跟char进行自动类型转换
当把数赋给byte时,先判断该数是否在byte范围内

	byte b1 = 10;//✔    -128~127
	byte b = 1000;//✘	超出范围
	int n2 = 1;
	byte b2 = n2;//✘    变量赋值,会判断类型
	char c1 = b1;//✘

4.byte,short,char可以进行运算,都转成int

	byte b2 = 1;
	byte b3 = 2;
	short s1 = 1;
	short s2 = b2 + s1;//✘	byte和short运算时转成int,再赋值给小精度的short类型报错
	byte b4 = b2 + b3;//✘	byte和byte运算时转成int

5.boolean类型不参与自动类型转换

  • 强制类型转换
    自动类型转换的逆过程,容量大的数据类型转换为容量小的,可能造成精度降低或溢出
    e.g.:int i = (int)1.9;
    强转符号只对最近的操作数有效
	int x = (int)10*3.5+6*1.5;//编译错误:只强转了10,结果是double->int
	int y = (int)(10*3.5+6*1.5);//(int)44.0->44

char类型可以保存int的常量值,但不能保存int的变量值,需要强转

	char c1 = 100;//right
	int m = 100;
	char c2 = m;//错误
	char c3 = (char)m;//right	100对应的字符 d
  • 基本数据类型和String类型的转换
  1. 基本类型转String 加 " "
	int n1 = 100;
	float f1 = 1.1F;
	double d1 = 4.5;
	boolean b1 = true;
	String s1 = n1 + "";
	String s2 = f1 + "";
	String s3 = d1 + "";
	String s4 = b1 + "";
  1. String类型转基本数据类型
    基本类型的包装类调用parseXX方法即可
	String s5 = "123";
	int num = Integer.parseInt(s5);
	double num1 = Double.parseDouble(s5);
	float num2 = Float.parseFloat(s5);
	long num3 = Long.parseLong(s5);
	byte num4 = Byte.parseByte(s5);
	boolean b = Boolean.parseBoolean("true");
	short num5 = Short.parseShort(s5);

	//字符串->字符,取字符串第一个字符
	System.out.println(s5.charAt(0));//1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号