数据类型
强类型语言
基本类型 primitive type
-
数值类型
-
整数类型
-
byte 1字节
-
short 2字节
-
int 4字节
-
long 8字节
-
-
浮点类型
- float 4字节
- double 8字节
-
字符类型
- char 2字节
-
-
boolean类型
- true false 1位
引用类型 reference type
- 类
- 接口
- 数组
//整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;
int i3 = 0x10;
//float 有限 离散 舍入误差 约等于
//double
float f = 0.1f;
double d = 1.0/10;
System.out.println(f == d);//false
float f1 = 232424353454354f;
float f2 = f1 + 1;
System.out.println(f1 == f2);//true
//字符扩展 unicode编码
char c1 = 'a';
System.out.println(a);
System.out.println((int)a);//65
类型转换
低 byte, short, char --> int --> long --> float --> double 高
运算中,不同数据类型的数据先转化为同一类型
强制类型转换 (类型)变量名; 高到低
自动类型转换 低到高
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
内存溢出或精度问题
变量
-
类变量(静态变量)独立于方法之外,static修饰。第一次被访问时创建,程序结束时销毁。(静态区)
-
实例变量(非静态变量)独立于方法之外,没有static修饰。对象创建时创建,对象销毁时销毁。(堆内存)
-
局部变量(栈内存)类的方法中的变量
常量
final 常量名 = 值;
常量名一般用大写字母
命名规范
- 类成员变量:首字母小写,驼峰原则
- 局部变量: 首字母小写, 驼峰原则
- 常量:大写字母,下划线
- 类名:首字母大写,驼峰原则
- 方法名:首字母小写,驼峰原则
运算符
//短路运算
int c = 5;
boolean d = (c<4) && (c++<4);
System.out.println(d);//false
System.out.println(c);//5,不会执行c++
//字符串连接符
int a = 10;
int b = 20;
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
Scanner
public static void main(String[] args) {
//创建一个扫描器的对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
//判断是否还有输入
if(scanner.hasNextLine()){
//使用nextLine方式接收
String str = scanner.nextLine();//程序等待用户输入完毕
System.out.println("输入的内容为: "+str);
}
//IO流的类不关闭会一直占用资源
scanner.close();
}
public static void main(String[] args) {
//输入多个数字,计算平均数
Scanner scanner = new Scanner(System.in);
double sum = 0;
int num = 0;
while(scanner.hasNextDouble()){
double x = scanner.nextDouble();
num++;
sum += x;
}
System.out.println(num+"个数的和是:"+sum);
System.out.println(sum+"个数的平均值是:"+(sum/num));
scanner.close();
}
- next()
- 读取到有效字符后才可以结束输入
- 自动去除有效输入之前的空白
- 输入有效字符后的空白作为结束符
- 不能得到带空白的字符串
- nextLine()
- 以Enter作为结束符,可以获得空白
流程控制
- 顺序结构
- 选择结构
- if结构
- switch多选择结构(支持字符串匹配)
public static void main(String[] args) {
//switch多选择结构 break穿透
char grade = 'c';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
default:
System.out.println("错误");
}
}
-
循环结构
- while循环
- do...while循环
- for循环(快捷键 100.for 回车)
int[] numbers = {1,2,3,4,5} for (int i = 0; i < 5; i++){ System.out.println(numbers[i]); } for (int x:numbers){ System.out.println(x); }
-
break、continue
- break:强制退出循环
- continue:终止某次循环过程