首页 > 编程语言 >JavaLearnDay03

JavaLearnDay03

时间:2022-09-21 19:55:57浏览次数:58  
标签:变量 int System JavaLearnDay03 类型 println out

转义字符

引用数据类型
·特点:存储一个引用(内存地址)通过引用指向内存地址中的数据值
·字符串类型:
关键字:String
作用:存储多个字符

补充内容:

  1. 在Java中所有整数默认为int类型,小数默认为double
  2. 浮点类型支持科学计数法,占用较小的空间可存储更多的数据,但无法保证数据计算精度,只能存储近似值。
  3. char类型使用unicode字符集(字符集决定可以存储字符的种类),采用UTF-16编码(约束字符存储到内存中的方式)
  4. JDK13支持文本域,""" 文本域 """,可以跨行表示字符串
  5. JDK10支持var类型变量,可以存储任意类型的数据,编译器自动推断再转换为对应类型
  6. 整数字面值:
    8进制:首位为 0
    16进制:首位为 0x
    2进制: 首位为 0b 1.7后
    支持_分隔符,例如 int a = 10_000;
  7. *Java中每个存储数据的空间称为slot一个slot占用4b空间,在Java中最小的数据存储空间为4b,double与long则占用两个slot。
    类型转化
    (一)自动类型转化
    ·概念:java自动讲某种数据类型转为另一种类型
    ·作用:更换数据类型,扩大变量的数据存储范围
    ·转换时机:赋值时
    ·转换条件:
    1.小类型自动转为大类型
    类型大小关系:byte<short/char<int<long<float<double
    从小到大(按数据存储量进行排行)
    例:byte,short,char可自动转为int类型
    ​ int可以自动转为long类型
    ​ float可以自动转为double类型
    // 原类型 byte b = 10; // 目标类型 int a = b; //byte类型的b自动转换为int类型

2.低精度的类型自动转化为高精度的类型
整型自动转化为浮点型
例:byte,short,int,long,char 可以自动转为float,double类型
`public static void main(String[] args){
byte b = 10;
short s = 20;
int i = 30;
long lg = 40;
char c='a';
float f;
f = b; //byte类型自动转为float类型
System.out.println(f);
f = s; //short类型自动转为float类型
System.out.println(f);
f = i; //int类型自动转为float类型
System.out.println(f);
f = lg; //long类型自动转为float类型
System.out.println(f);
f = c; //char类型自动转为float类型
System.out.println(f);

	double db;		//什么double类型变量
	db = b;			//byte类型自动转为double类型
	System.out.println(db);
	db = s;			//short类型自动转为double类型
	System.out.println(db);
	db = i;			//int类型自动转为double类型
	System.out.println(db);
	db = lg;		//long类型自动转为double类型
	System.out.println(db);
	db = c;			//char类型自动转为double类型
	System.out.println(db);
	db = f;			//float类型自动转为double类型
	System.out.println(db);
	
}

自动类型转换注意事项 boolean类型与其他类型均不兼容,所以不能用任何一种方式进行转换 **(二)强制类型转换** · 概念:手动强制将变量的类型转换为另一种类型,强制类型转换的结果不一定正确,可能丢失精度 · 作用:不满足自动类型转换条件,需要更换数据类型时 · 转换时机:赋值时 · 语法: 目标类型 变量名 = (目标类型)原类型变量; · 转换条件: 1.两种类型互相兼容类型,大类型转为小类型 比如 long类型强转为int类型 例:int i = 100;
//目标类型< 原类型,强制类型转换
byte b = (byte)a; //强制将int类型变量a转换为byte类型
short s = (short)a; //强制将int类型变量a转换为short类型 2.两种类型互相兼容类型,高精度类型向低精度类型 ,强制类型转换可能会丢失精度 比如double类型转为float,或者int类型 double d = 12.34;
int a = (int) d; //强制将double类型变量d转化为int类型
System.out.println(a); // 结果为12,只会保留整数部分`
类型转换注意事项

  1. boolean 类型与其他类型均不兼容,所以不能用任何一种方式进行转换
  2. 转换时两种变量数据类型必须兼容
  3. 强制类型转换编译器不再干预,但依然有可能出现损失精度(数据不完整)的问题

表达式
·概念:使用运算符可以使变量或值,最终可以得到一个结果
·类型的自动提升
作用:表达式在参与运算的变量类型不一致,运算结果类型为参与运算的最大类型
例:
`int a = 10;
double b = 20.5;
System.out.print(a+b);

byte b = 10;
long lg = 100L;
double d = 10.25;
System.out.println(b+lg+d);

double d = 10.25;
String String ="Hello";
System.out.println(d+str);`
自动提升规则
1.byte,short,char相互进行+操作,结果会自动提升为int类型
2.小类型和大类型进行操作结果会是大类型
3.基本数据类型和String进行+运算结果会自动提升到String类型
4.与String类型的变量使用+,结果为字符串拼接,将变量的值为字符串内容的拼接结果

运算符
(一)算数运算符
·常用的算术运算符:+,—,*,/,%
(赋值运算符)
·特点:运算后,会改变一个变量的值
已知有以下变量
int a = 10,b = 2;
·常见的赋值运算符

·注意:任何表达式本身都有相应的结果产生,赋值运算还会影响变量本身的值
int a = 10; int b = 20; System.out.println( a+=b );//输出表达式的结果 30 System.out.println( a );//输出变量的值 30
·++、-- 在后的问题:
· 技巧,++,--在前,先将变量进行自加1,然后再进行其他操作
· ++,--在后,先对变量进行其他操作,而后对变量进行自加1
`int a = 5;
int b = 5;
//System.out.println(b=b+1);
System.out.println(++b); //作用同上,输出表达式的结果为 6
System.out.println(b); //输出变量的值 为6
// 通常情况下表达式的值与变量的最终值一致

//++、--在变量后,用变量本身的值,作为表达式的结果
System.out.println(a++); //5,变量本身的值会作为表达式的结果,再为变量进行赋值
System.out.println(a) //6`

·面试题
int a = 5; int b = 7; a+=(a++)+(++a)-(b--)+(++b) //问:最终a和b的结果为多少? // step1 : a+= 5+(++a)-(b--)+(++b); (a++)的值为5, // step2 : a+= 5+ 7 -(b--)+(++b); ++a的值为7; // step3 : a+= 5+ 7 - 7+(++b); b--的值为7; // step4 : a+= 5+7-7+ 7; 结果为a+=12; // step5 : a = 5+12; 结果a = 17; 结果:17 a 变量的值: 17 b变量的值:7
(关系运算符)
·作用:判断两个变量之间的关系,结果为boolean类型,表示真或假,成立或不成立
·已知有以下变量
int a = 10,b = 20;
·常用关系运算符

(四)逻辑运算符
·作用:拥有多条件联合判断,结果均为boolean类型,参与运算的两侧一定是boolean类型。
·已知有以下变量
int a = 10,b=20,c=3;
·运算符参照表

·逻辑运算符相关补充
|或&在逻辑运算符中属于非短路运算符
短路运算符:当前一个表达式执行完毕就能决定整体结果时 ,不再执行后续表达式
**非短路运算符:当前一个表达式执行完毕就能决定整体结果时,依然需要执行后续表达式 **
例:
a < b || a > c 结果为:true 且 a > c 不会执行
a < b | a > c 结果为:true 但 a > c 会执行

(五)三元/三目运算符
·作用:可根据一个不二表达式的真假,获取不同的结果
·语法:
布尔表达式 ? 结果1:结果2;
布尔表达式为true,返回结果1
布尔表达式为false,返回结果2
结果1或结果2,可以使用数据、变量、表达式等
·例
int a = 10; int b = 20; int r = 200; System.out.println(a>b? 100:110); //结果:110 System.out.println(a<b?100:110); //结果:100 System.out.println(a<b?a:b); //结果: 10

(六)位运算符
·作用:针对于二进制数据之间位运算

  1. & 按位与
  2. | 按位或
  3. ^ 按位异或
  4. ~ 按位非
  5. << 向左位移
  6. 向右位移

  7. 无符号向右位移

标签:变量,int,System,JavaLearnDay03,类型,println,out
From: https://www.cnblogs.com/niu123456/p/16716944.html

相关文章