数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(安全性高,速度慢)
弱类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
Java的数据类型分为两大类
-
数据类型
-
引用类型
-
public class one { public static void main(String[] orgs){ Byte//Ctrl加点击查看 //八大基本数据类型 //整数 int a=99;//最常用 byte b=90; short c=20; long d=99999L;//long类型要在数字后面加一个L //小数浮点型 double f=10.2; float e=2.123415241F;//float类型要在后面加一个F //字符型 char m='栋'; //字符串是String String name= "胡政栋"; System.out.println(name); System.out.println(a); //布尔值:是非 boolean flag=ture; //boolean flag=false; } }
什么是字节
位(bit):是计算机内部数据储存的最小单位,
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
1B=8bit
字符是指计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节1B=8b。
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
数据类型扩展
public class two { public static void main(String[] args) { //整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x int a1 = 10; int a2 = 010; int a3 = 0x10; System.out.println(a1); System.out.println(a2); System.out.println(a3); System.out.println("====================================="); //最好完全避免使用浮点数进行比较 //浮点数拓展?引号业务怎么表示?钱===================================================== //float 有限 含有误差 离散 大约 接近但不等于 //double float a=0.1F; double b=0.1; System.out.println(a==b);//false //最好完全避免使用浮点数进行比较 //最好完全避免使用浮点数进行比较 float d1=21741697; float d2=d1+1; System.out.println(d1==d2);//true //字符拓展========================================================================= System.out.println("======================================"); char b1='胡';//32993 char b2='政';//25919 char b3='栋';//26635 System.out.println((int)b1);//强制转换 System.out.println((int)b2);//强制转换 System.out.println((int)b3);//强制转换 System.out.println("======================================"); char c1='解';//35299 char c2='旭';//26093 char c3='茹';//33593 System.out.println((int)c1); System.out.println((int)c2); System.out.println((int)c3); //字符拓展========================================================================= //所有的字符本质还是数字 //编码 Unicode 表:(97=a 65=A)2字节 0-65536 Excel 2的16次方=65536 //U0000 UFFFF System.out.println("======================================"); char d3='\u0061'; System.out.println(d3); //转义字符 \t一个缩进 \n换行······ System.out.println("======================================"); String oriqinal; String sa = new String ("hello world"); String sb = new String ("hello world"); System.out.println(sa==sb); System.out.println("======================================"); String sc = ("hello world"); String sd = ("hello world"); System.out.println(sc==sd); //对象 从内存分析 //布尔值拓展 boolean flag=true; if (flag==true){ }//新手写 if (flag){ }//老手写 //代码要精简易懂 } }
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换,优先低级转换为高级
注意避免内存溢出的问题
(忽略中间那行字“哭笑”)
public class three { public static void main(String[] args){ //强制类型转换 需要你去在前面加一个类型强制转换 (类型)变量名 高--低 int a=128; byte b= (byte) a;//b=-128内存溢出 System.out.println(a); System.out.println(b); //自动类型转换 直接给你准换了 低--高 System.out.println("======================================================="); int i=99; double j=i; System.out.println(i); System.out.println(j); /**注意点 * 1.不能对布尔值进行转换 * 2.不能把对象类型转换为不相干的类型 * 3.在把高容量转换到底容量的时候,强制转换 * 4.转换的时候可能存在内存溢出,或者精度问题 * */ System.out.println((int)27.3);//27 System.out.println((int)-27.3F);//-27 System.out.println("======================================================="); char c='m'; int d=c+1; System.out.println(d); System.out.println((char)d); System.out.println("======================================================="); //操作比较大的数的时候,注意溢出问题 //JDk7新特性,数字之间可以加下划线’_‘分割 int money=10_0000_0000; int years=20; //int total=money*years;//-1474836480,计算的时候溢出来了 /*long total=money*years;//默认是int计算的时候,转换之前已经存在问题并且溢出了*/ long total=((long)money)*years;//可以先把其中一个参与运算的数值转换为Long System.out.println(total); } }