一、
1, 根本类型 八种
-- 整数:byte short int long
-- 小数:float double
-- 布尔:boolean
-- 字符:char
2, 根本类型对应的工具类:
根本类型: byte;short;int;long;float;double;char;boolean
工具类:Byte;Short;Integer;Long Float;Double; Character; Boolean
//3, 通过点. 来调用工具类的性能
//4, 打印变量时, 千万不要用双引号
//1, 整数类型的取值范畴 byte short int long
例如:创立变量, 记录最大值: 变量类型 变量名 变量值
byte max = Byte.MAX_VALUE ;
System.out.println("max");
float–Float double–Double
区别:float 是单精度, 对小数位运算不准确
区别:double 是单精度, 对小数位运算十分精。
char-- 字符型 -- 一个字符
char c = 'a' ;// 一个字母
char c2 = '1' ;// 一个数字
char c3 = '中' ;//char 类型能不能存一个中文汉字? -- 能够
char c4 = 126 ;// 能够间接存数 System.out.println(c); System.out.println(c2);
System.out.println(c3);
char 类型是字符型, 容许你间接存入一个数字自身. 然而, 应用时还是要用字符的.
应用时, 底层会去查问 ascii 码表, 数字对应的字符是啥, 而后用字符自身.
ascii 码表里, 规定了 0~127 数字对应的字符,char 类型的取值范畴是 0~65535.
数值转换图:
练习: 圆形面积
package cn.tedu.basic;
import java.util.Scanner;
// 这个类用来测试 圆形面积
// 总结
//1, 批改变量的值, 既然被定义成了变量, 他的值就能够始终被批改
//2, 变量的值为了写的更加灵便, 能够动静接管键盘输入的值
//3, 拿着变量的值, 带入公式, 运算后果, 并交给 area/zhouchang 去保留
//4, 动静拼接字符串, 用 + 实现
public class Test3_Area {
public static void main(String[] args) {
double r = 5.5 ;// 定义变量, 记录圆的半径
// 动静的接管键盘输入的值
r = new Scanner(System.in).nextDouble() ;// 批改变量的值
double area = 3.14 r r ;
// 圆形面积:3.14 r r
System.out.println(“ 圆的面积是:”+area);// 打印面积
//TODO 圆的周长
double zhouchang = 2*3.14*r ;
}
}
--5, 练习: 变量替换
package cn.tedu.basic;
import java.util.Scanner;
// 这个类用来测试 变量值替换
public class Test4_Exchange {public static void main(String[] args) {
//1, 创立变量 a 和 b
int a = new Scanner(System.in).nextInt() ;
int b = new Scanner(System.in).nextInt() ;
System.out.println("替换前:a=1,b=2");
//2, 替换值
int c = a ;// 把 a 的值交给 c 保留
a = b ;// 把 b 的值交给 a 保留
b = c ; // 把 c 的值交给 b 保留
TODO 3, 打印
}
}
--6, 援用类型 -- 数组 /OOP ...
二, 根本类型的字面值(5 条)
package cn.tedu.basic;
这个类用来测试 字面值
public class Test5 {
public static void main(String[] args) {
1,java 里整数有 4 种类型, 那么, 咱们写的整数到底字面值是什么类型呢?--int
int a = 1000 ;
2, 在取值范畴内, 能够间接赋值
byte m = 123 ;
byte n = 128 ;// 报错, 右侧是 int 类型, 左侧的 byte 类型基本就存不下
//char o = 65536 ;// 报错, 右侧是 int 类型, 左侧的 char 类型基本就存不下
3,java 里小数有 2 种类型, 那么, 咱们写的小数到底字面值是什么类型呢?--double
double x = 9.9 ;
4, 字面值的后缀 lfd , l-long f-float d-double
报错, 因为有右侧字面值是 int 类型, 然而, 超出了 int 范畴!!-- 加后缀 L 变成 long 类型
long b = 10000000000L;
报错, 右侧是 double 类型 8 字节, 左侧是 float 类型 4 字节, 存不下!!-- 加后缀 f 变成 float 类型
float y = 9.9f ;
double z = 3d;
// 右侧就从字面值 int 类型转成了 double 类型
}
}
三, 根本类型的类型转换
--1, 从小到大: 拿着小类型给大类型赋值 -- 隐式转换
--2, 从大到小: 拿着大类型给小类型赋值 -- 显式转换
--3, 测试
package cn.tedu.basic;
这个类用来测试 转换
public class Test6 {
public static void main(String[] args) {从小到大 ( 隐式转换) byte 小类型 -- long 大类型
byte a = 10 ;
拿着右侧的小类型 a, 给左侧的大类型 b 去赋值 -- 能够间接赋值!!
long b = a ;
从大到小 (显式转换) double-int
double m = 10;
拿着右侧的大类型 m, 给左侧的小类型 n 去赋值 -- 不能够!! 须要强转
int n = (int) m ;
练习: 小转大 long-float
long x = 10 ;
float y = x ;// 隐式转换
大转小:double-float
double o = 9 ;
float p = (float)o ;// 显示转换
}
}
四, 运算规定(5 条)
package cn.tedu.basic;
// 这个类用来测试 运算规定
public class Test7 {public static void main(String[] args) {
1, 计算结果的数据类型,与最大类型统一
System.out.println(3/2); //1 , int/int->int
System.out.println(3d/2); //1.5 , double/int -> double
System.out.println(3.14*10);//31.4 , double*int -> double
2,byte,short,char 三种比 int 小的整数,运算时会先主动转换成 int
byte a = 1;
byte b = 2;
右侧拿着两个 byte 类型的值, 做运算时, 会变成大类型 int 类型 -- 须要强转
byte c = (byte) (a*b);
3, 整数运算溢出 -- 因为在运算时曾经超出了 int 的范畴!!-- 须要加后缀 L 扩大范围
光速运行一年的运行是多少米?-- 3 亿 m /s
System.out.println(300000000L * 60 * 60 * 24 * 365);
4, 浮点数的非凡值 -- 因为小数运算中, 呈现了不应该呈现的景象: 分子或者分母为 0 了!!
System.out.println(3.14/0);//Infinity
System.out.println(0/0.0);//NaN
}
}