java基础语法(3)数据类型及拓展
-
强类型语言:变量的使用要严格符合规定,所有变量都必须先定义后才能使用。(安全性高,速度较慢)
弱类型语言:变量的使用不用完全符合规定(JavaScript),书写较随意。
-
数据类型:
基本类型(primitive type):
数值类型:整数类型:{byte占1个字节范围(-128-127);
short占2个字节范围(-32768-32767);
int占4个字节范围(-2147483648-2147483647);
long占8个字节范围(-9223372036854775808-9223372036854775807)};
浮点类型(小数):{float占4个字节;double占8个字节};
字符类型:char占两个字节;
Boolean类型:占一位其值只有true和false。
引用类型:类、接口、数组。
public class Demo02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 100000; //最常用 对应的类Interger内写了数的范围-2的31次方到2的31次方
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //long类型要在数字后面加个L
//小数:浮点数
float num5 = 50.1F;
double num6 = 3.141592657587932;
//字符
char name = 'A';
//字符串:String不是关键字,是一个类
String namea = "百里守约";
//布尔值:是非
boolean flag = true;
//boolean flag = false;
}
}
-
位:计算机内部数据存储的最小单元,11001100是一个8位二进制数。(bit)
字节:计算机中数据处理的基本单位,一般用B表示。(byte)
1B(字节,byte)=8bit(位)
操作系统:32位和64位,内存中的寻址能力不同,32位只能支持4G的内存,64位能支持128G内存。
-
数据类型扩展:
public class Demo02 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x 进制开头的标志
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x11; //十六进制0x 0-9 A-F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("============================================");
//===========================================================
//浮点数拓展:银行业务,计算钱数
//一般银行业务都用BigDecimal这个类来比较
//float 能表示的数位是有限的(有的数是无限循环的) 离散 舍入误差 是一个接近 大约 但不等于的数
//double
//最好不使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float d1 = 23132323234344234123f;
float d2 = d1 + 1;
System.out.println(d1=d2); //true
//==============================================
//字符拓展
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
// 所有字符本质上还是数字,都是通过Unicode编码,占2个字节,可表示65536个字符甚至更多,2的16次方(Excel表格的最大长度)
// Unicode编码表可以查到字符与数字的映射表,U0000-UFFFF,97代表a,65代表A;
char c3 = '\u0061'; //\u代表转义字符
System.out.println(c3);
//转义字符: \t 制表符 \n 换行
System.out.println("hello\tworld");
System.out.println("==============================================");
String sa = new String(original:"hello world");
String sb = new String(original:"hello world");
System.out.println(sa==sb);
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);
//对象 从内存分析,从底层分析为什么眼睛看到一样的东西,在程序里却不一样
//布尔值扩展
boolean flag = true;