Java是强类型语言

整数:long类型要在数字后面加个L

long num1 = 30L;
int num2 = 30;
byte num3 = 30;
short num4 = 30;

拓展

int i = 10;
int i2 = 010;//八进制o
int i3 = 0x11;//十六进制0x

System.out.println(i); //输出10
System.out.println(i2); //输出8
System.out.println(i3); //输出17

浮点数:float类型要在数字后面加F

float num5 = 50.1F;
double num6 = 3.14159;

拓展

float f = 0.1f;
double d = 1.0 / 10;
System.out.println(f == d);   //输出 false  f:0.1 d:0.1

float d1 = 23131312312312313f;
float d2 = d1 + 1;
System.out.println(d1 == d2); //输出 true

原因:

float(浮点数):有限、离散、存在舍入误差、近似数,因此最好不用浮点数进行比较

解决方案:用BigDecimal——数学工具类


字符串:string不是关键字,是一个类

char name='A';
char namea='中';
String nameb="中国";

拓展

1.所有的字符本质还是数字

char c1 = 'a';
char c2 = '中';
System.out.println(c1); //输出 a
System.out.println((int) c1); //输出 97  强制转换
System.out.println(c2);  //输出 中
System.out.println((int) c2); //输出 20013 强制转换

unicode编码表:(97=a 65=A) U0000-UFFFF占2个字节 可表示 65536 个字符

2.转义字符:\t \n \u

char c3 = '\u0061'; //十六进制 61H=97D 
System.out.println(c3); //输出a

3.对象 从内存分析

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb); //输出false

String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd); //输出true

布尔值:是非

boolean flag1=true;
boolean flag2=false;