强类型语言
数值类型
整数类型
byte 1字节
short 2字节
int 4字节
long 8字节
浮点类型
字符类型
boolean类型
//整数扩展: 进制 二进制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
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(); }
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("错误"); } }
循环结构
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