一.字符类型
(一)字符类型变量的赋值方式
1.通过' '形式赋值
例:char c = 'A';
2.通过ASCII码值赋值
例:char c = 65;
常用的ASCII码值
'A'--65,'a'--97,'0'--48
3.通过unicode编码赋值
例:char c = '\u0041';
public class Demo{ public static void main(String[] args){ char c1 = 'A'; System.out.println(c1); //使用ASCII码给字符变量赋值 char c2 = 97; System.out.println(c2); //使用Unicode编码赋值 char c3 = '\u0041'; System.out.println(c3); } }
结果:
A
a
A
二.数据类型
(一)引用类型数据其实有无穷个,有一些是jdk中定义好的,而我们还可以自定义引用类型。
(二)String类
String 类是字符串,在定义String类型的变量的时候,使用" "括起来表示字符串常量的内容。
public class Demo { public static void main(String[] args){ String s1 = "HelloWorld"; System.out.println(s1); } }
输出结果:HelloWorld
三.基本数据类型转换
(一)基本数据类型转换概念
转换原因:java是强类型语言,数据类型之间不能随意转换,但运算时数据类型不匹配,所以需要转换。
(二)数据类型转换分类
自动类型提升:程序自动完成
强制类型转换:需要写一定的格式完成
(三)自动类型提升(隐式类型转换)
1.概念
能存数值数据:范围小的数据类型可以直接转换为范围大的数据类型;小范围类型可以直接给大范围类型赋值。
2.数据类型范围大小排序
3.注意事项
int类型以及int以上数据类型做运算的时候提升为int,int以上计算提升为较大类型
byte a;byte b; a+b----->结果提升为int类型
int a;long b; a+b------>结果提升为long类型
4.案例
public class Demo {
public static void main(String[] args){
//int及int以上做运算,自动提升为int类型
byte a = 10; byte b = 20;
//byte c = a + b; 编译报错,a+b提升为int类型
int c = a + b;
System.out.println(c);
int d = a;
//小类型可以给大类型赋值
long i1 = 1000L;
float f = i1;
//float类型比long类型范围大
float f1 = i1 + f;
//自动提升为float类型
System.out.println(f1);
}
}
(四)强制类型转换(显示转换类型)
1.概念
大范围数据类型的变量/常量 赋值给一个小范围数据类型的变量,需要进行强制转换。
2.格式
目标数据类型 变量名 = (目标数据类型)原数据类型变量名/原常量值;
long a = 100;
int b = (int)a;
bate c = (byte)200;
3.注意事项
·强制类型转换可能会损失精度,得到错误的数据;
·小数类型强制转换为整数类型时,直接舍去小数部分,保留整数部分。
4.案例
public class TypeDown_04 {
public static void main(String[] args) {
long a = 1000;
int b = (int)a;
System.out.println(b);
int c = 200;
byte d = (byte)c;
System.out.println(d);
float e = 3.14F;
int f = (int)e;
System.out.println(f);
}
}
(五)常量优化机制
·概述
在编译时,整数常量参与运算的式子,会提前计算出结果,并且自动判断该结果是否在该数据类型取值范围内。
四.运算符
(一)运算符概述
1.运算符概念
对常量或者变量进行操作的符号,通常用于数据的比较或运算
2.举例
1)10+20中,+是运算符中的算数运算符
2)销售产品,验证库存量>=购买数量,>=是比较运算符
3.运算符分类
算术运算符、赋值运算符、比较运算符、逻辑运算符、位移运算符、三元运算符
(二)算术运算符
1.算术运算符概念
对常量或变量进行算数运算的符号
2.表达式概念
有常量、变量、运算符组成符合java语法的式子就成为表达式,表达式都有结果,结果就是表达式的值
根据表达式的值,对表达式也有不同的叫法
例如:表达式值是整型,就叫整型表达式;表达式值是布尔类型,就叫布尔表达式
3.举例
double price = 22.9;
int count = 2;
double total = price * count;
算术运算符
加减乘除都是最基本的,重点讲一下%取余、++自增、--自减。
1.%取余(取模)运算
1)两数相除,获取余数
特殊情况:取余结果的符号之和%前面的操作数的符号有关
2)作用:获取余数,判断是否整除,判断奇偶,获取各个为数字等等,通常用作数据的筛选。
例:
public class Demo{ public static void main(String[] args){ int b = 345 / 100; int s = 345 % 100 / 10; int g = 345 % 10; System.out.println("百位数:"+b+",十位数:"+s+",个位数:"+g); } }
2.++,--运算,只能操作变量
1)++:自增运算符,表示每次让变量值+1;
2)--:自减运算符,表示每次让变量值-1;
3)++,--运算符的使用(以++为例,--相同的用法)
(1)自增运算符既可以卸载变量前边,也可以写在变量后面
(2)当a++和++a作为一个单独的语句存在时,没有任何的区别,都表示自增,都可以把a加1
(3)当a++和++a作为一个表达式一部分存在时,表示的数值是有区别的:
·a++先获取a的值,当做表达式的值,再自增
·++a先自增,然后再获取a的值,当做表达式的值
int b = 3; System.out.println(++b); int c = 3; System.out.println(c++); System.out.println(c);
输出结果:4
3
4
(三)赋值运算符
1.基本算术运算符:= 赋值功能
2.扩展赋值运算符:+=、-=、*=、/=、%=
格式:
变量名称 += 表达式 等于 变量名 = (变量类型)(变量名+表达式);(-=、*=、/=、%=的格式同上)
public class AssignOperator { public static void main(String[] args) { int a = 10; a += 3; System.out.println(a); int b = 10; b -= 3; System.out.println(b); int c = 5; c *= 3; System.out.println(c); int x = 6; x /= 2; System.out.println(x); int y = 5; y %= 3; System.out.println(y); byte m = 20; //m = (byte)(m - 3); m -= 3; System.out.println(m); } }
(四)比较运算符
1.用于比较是否相等和大小关系的符号,计算结果为boolean,关系运算符连接表达式都是布尔表达式
2.使用格式
表达式1 == 表达式2 相等是true,否则false
(五)逻辑运算符
1.用于连接逻辑数据(true和false)的运算符,只能运算boolean类型的数据,运算结果为boolean。逻辑运算符连接的式子也叫布尔表达式
2.逻辑与:&(并且,同时,要求多个天剑同时成立的场景下使用)
例:
1 > 3 & 4 > 3 结果是false;
1 < 3 & 4>3 结果是true;
两边同时都为true时,结果才为true,否则为false
3.逻辑或:|(或者)
基本用法:
true | true 结果为true;
true | false 结果为true;
false | true 结果为true;
false | false 结果为 false;
4.逻辑异或:^
基本语法:
true | true 结果为false;
true | false 结果为true;
false | true 结果为true;
false | false 结果为 false;
相同为加,不同为真
5.逻辑非:!
基本语法:
!true 结果为false
! false 结果为true
6.短路逻辑与:&&
基本语法:
true && true 结果为true;
true && false 结果为false;
false && true 结果为false;
false && false 结果为 false;
用法与&相同,不同的是,左边表达式1计算为假时则不计算右边的表达式。更高效
7.短路逻辑或:||
基本语法:
true || true 结果为true;
true || false 结果为true;
false || true 结果为true;
false || false 结果为 false;
用法与|相同,不同的是,左边表达式1计算为真时则不计算右边的表达式。更高效
(六)三元运算(重要)
1.元的概念:运算符可以操作的数据或者表达式
2.三元运算符:别名三目运算符,同时可以操作三个数据或者表达式的运算符
3.格式:
表达式1 ? 表达式2 : 表达式3;
4.说明
1)表达式1必须是boolean类型的表达式,计算结果只能是true或false
2)表达式2和表达式3可以使任意类型的表达式
5.运算流程
1)计算表达式1的值,要么是true,要么是false;
2)如果表达式1的结果为true,就选择表达式2作为三元表达式的计算结果
3)如果表达式1的结果为false,就选择表达式3作为三元表达式的计算结果
public class HomeWork3 {
public static void main(String[] args) {
//求出两个数的最小值
//定义两个变量a和b,分别赋值5,9
int a = 5,b = 9;
//通过三元运算符判断大小,并定义一个变量min接收结果
int min = a > b ? b : a;
//打印最小值
System.out.println(min);
}
}
输出结果:5