1.基本类型-字符
语法
char 变量 = '字符';
char 变量 = 整数;
- 一个字母,一个数字,一个符号,一个汉字
- 在定义字符时,要定义在单引号中
- 也可以定在该字符在ascii表中的编号
- char本质上就是一个无符号的两个字节的整数,范围[0,65535]
char b='b';
char c='c';
char d='d';
System.out.println(b);
System.out.println(c);
System.out.println(d);
char b1=98;
char b2=99;
char b3=100;
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
2.引用数据类型
数据类型,分为两类:基本数据类型,引用数据类型
基本数据类型:4类8种
引用数据类型:除去基本数据类型,剩下的都是引用类型
- jdk提供的类型(String,Date,Integer,Double,Thread,Calender)
- 自定义的数据类型(面向对象)
2.1 String数据类型
如何在程序中表示班级的名称:hf-java-jy-2204班
package com.qfedu;
public class Demo02 {
public static void main(String[] args) {
/*
* 引用数据类型-字符串
* 如果一个值,是由多个字符组成的,那么就可以把值放在String类型变量开辟的空间中
*/
String classNameString = "hf-java-jy-2204班";
String name = "white";
String str="";//空字符串
String str1=" ";//空格也是字符串
//定义国家,家乡,电影
String country="中国";
String hometown="合肥";
String movie="泰坦尼克号";
}
}
3.数据类型转化
数据类型转化就是把一种数据类型的值赋值给其他数据类型
数据类型转化分为:
- 自动转化
- 数据兼容
- 范围从小到大
- 强制转化
- 数据兼容
- 范围从大到小
package com.qfedu;
public class Demo03 {
public static void main(String[] args) {
/*
* byte--double
* 数据类型可以自动转化
*/
byte b=5;//开辟了一个字节八位的空间,保存5这个数
System.out.println(b);
short s = b;//开辟了两个字节十六位的空间
System.out.println(s);
int i=s;
long l=i;
float f=l;
double d=f;
//强制转换
float f2=(float)d;
long l2=(long) f2;
int i2=(int) l2;
double d2 =3.14;
int i3=(int) d2;//会自动取整
//String str = "abc";
// int i5=str;//不兼容的数据不能相互转化
}
}
4.运算
4.1 算数运算
加减乘除余
/*
* 运算-算术运算
*/
int r1 = a + b;
int r2 = a - b;
int r3 = a * b;
int r4 = a / b; // 整数和整数的运算结果还是为整数
int r5 = a % b; // 1余数一定是小于除数,除去余下的数
// 可通过取余和除数得到一个数每个位的值
int n = 3654;
double c = 5.4, d = 2.0;
double r6 = c / d;
double r7 = c % d;
System.out.println(r6); // 2.7
System.out.println(r7);
4.2 赋值运算
符号:=
package com.qfedu;
public class Demo04 {
public static void main(String[] args) {
int a = 5;
int b = 2;
/*
* 运算-赋值运算 1. = 在java中表示赋值符,把右边的值赋值给左边的变量
*/
int e = 6;
e = e + 1;
e = e - 5;
e = e * 3;
e = e / 2;
e = e % 5;
int f = 5;
f += 4; // f=f+4
f -= 3;
f *= 3;
f /= 2;
f %= 5;
int g = 8;
g = g + 1;
g += 1;
g++;
++g;
int h = 9;
h = h - 1;
h -= 1;
h--;
--h;
int j=6;
int r11 = j++;//先赋值再运算
System.out.println(j);
int r22=++j;//先运算再赋值
System.out.println(j);
System.out.println(j--);//8
System.out.println(--j);//6
System.out.println(j);//6
int k=7;
int r=k++ +3 + --k +6 + k++ -5;
}
}
4.3 关系运算
等于,不等于,大于,小于,大于等于,小于等于
=,!=,>,<,>=,<=
比较的结果在java中是boolean类型的数据
- 成立 true
- 不成立 false
package com.qfedu;
public class Demo05 {
/*
* 运算-关系运算 等于 == 不等于 !=
*/
public static void main(String[] args) {
int a = 5;
int b = 5;
boolean r1 = a == b; // true
String str1 = "hello";
String str2 = "hello";
boolean r2 = str1 == str2; // true
boolean r3 = a != b;// false
int c = 5, d = 2;
boolean r4 = c >= d;// true
boolean r5 = c < 14; // true
System.out.println(r1);
System.out.println(r2);
System.out.println(r3);
System.out.println(r4);
System.out.println(r5);
}
}
4.4 逻辑运算
且或非
package com.qfedu;
public class Demo06 {
/*
* 运算-逻辑运算
*/
public static void main(String[] args) {
int score = 95;
// 判断分数等级是不是A【90-100】
boolean r1 = score >= 90;
boolean r2 = score <= 100;
boolean r = r1 && r2;
System.out.println(r);
// 判断分数是否正确 小于0 大于100
boolean r3 = score < 0;
boolean r4 = score > 100;
boolean rr = r3 || r4;
System.out.println(rr);
// 判断分数等级是不是不是A
boolean rr2 = !r;
// 是否成年
boolean isAdult = false;
// 是否未成年
boolean rr3 = !isAdult;
/*
* 定义年龄变量
* 1.判断年龄是否在【18,25】
* 2.判断年龄是否在【18,25】或者【18,32】
* 3.判断年龄是否不在【18,25】
*/
int age=23;
boolean r5= age>=18 && age<=25;
System.out.println(r5);
boolean r6=r5 || (age>=28&&age<=32);
System.out.println(r6);
boolean r7=!r5;
System.out.println(r7);
}
}
package com.qfedu;
public class Demo06_2 {
public static void main(String[] args) {
/*
* 断路
* 当一个逻辑运算的结果已经确定的时候,后面的就不需要运算了
*/
int a=5;
boolean r=a++ >=6 && a++ >2;
System.out.println(a); //6
System.out.println(r); //false
}
}
4.5 三元表达式
语法:
数据类型 变量 = 逻辑表达式?值1:值2;//常见,需掌握
数据类型 变量 = 逻辑表达式?表达式1:表达式2;//了解即可
- 如果表达式成立,则返回值1,如果不成立则返回值2
- 如果表达式成立,则返回表达式1,反之则返回表达式2
package com.qfedu;
public class Demo07 {
public static void main(String[] args) {
int age = 18;
// 判断是否成年
boolean r = age >= 18;
System.out.println(r);
//想得到结果 成年 未成年
String result= age>=18?"成年":"未成年";
System.out.println(result);
int score=88;
/*
* 获取该成绩的等级
* 0-59分 D
* 60-79分 C
* 80-89分 B
* 90-100 A
*/
char level=score<60?'D':score<80?'C':score<90?'B':'A';
}
}
5.类型提升
package com.qfedu;
public class Demo08 {
public static void main(String[] args) {
//只要是byte类型和short类型进行算数运算得到的结果都为int类型
byte a=5;
byte b=6;
int r1=a+b;
/*
* int byte short int ===> int
*/
int i=5;
int r3=i+a;
/*
* long byte short int long ===> long
*/
long l=18;
long r4=i+l;
/*
* float byte short int long float === > float
*/
float f=3.14f;
float r5=f+l;
/*
* double byte short int long float double ===>double
*/
double d=2.18;
double r6=d+f;
/*
* char类型也可以进行算数运算
*/
char ch1=6;
char ch2=8;
int r7=ch1+ch2;
/*
* 如果加号的两边出现字符串类型的变量,
* +号不再是算数运算符,充当连接符
* 返回的数据一定是字符串类型
*/
String str1="abc";
String str2="efg";
String r8=str1+str2;
System.out.println(r8);
}
}