目录
冯诺依曼体系:
外存:磁盘,U盘,硬盘,光盘等等。
计算机之父: 冯诺依曼
常量即程序运行期间,固定不变的量称为常量,比如:一个礼拜七天,一年1 2个月等。
字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型。
在Java中数据类型主要分为两类:基本数据类型和引用数据类型。
基本数据类型有四类八种:
四类:整型、浮点型、字符型以及布尔型
在Java中不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节
例如int a=10; 这里的 a 是一个整型变量,它的大小就是固定的,是不分平台的,就是4个字节。
整形和浮点型都是带有符号的。
整型默认为int型,浮点型默认为double
字符串属于引用类型。
Java的集成开发环境:IDEA,MyEclipse,Eclipse 等。
IDEA创建项目的过程:
选中src,然后右键,新建一个项目
运行方法,点击绿色三角形 ,然后点击Run'文件名.main()'
一些快捷方式:
被final修饰就不能修改它的值了 ,它就成为常量了。
例:final int a=10; 这里a的值就不能修改了。
单位及其换算:
bit(比特) byte(简称B)(字节) KB MB GB TB PB EB ZB YB BB
1Byte = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
int所表示的范围: -2^31 到 2^31-1
int是4个字节,就是32bit 。
包装类:(只有8种基本数据类型才有包装类)
int 的包装类是:Integer
long 的包装类型为: Long
short 的包装类型为: Short
byte 的包装类型为: Byte
char 的包装类型为:Character
double 的包装类型为:Double
float 的包装类型为:Float
boolean 的包装类型为:Boolean
包装类是基本数据类型对应的类类型。
String是字符串类型 。
数据类型分为:1,基本数据类型 (8种基本数据类型)
2,引用数据类型 (String ,包装类,数组,接口等)
long类型:
运行截图:long类型的表示范围
short在任何系统下都占2个字节,
short可以表示的范围为: -32768 ~ 32767
short的包装类是Short
Java的安全性,超过可表示的范围就直接报错
这个当中定义的sh的范围超过了short所能表示的范围,所以会报错的。
1. byte在任何系统下都占1个字节
2. byte 的范围是: -128 ~ 1273. 字节的包装类型为 Byte
之所以有多种数据类型是因为在不同的使用适用场景中,有各自不同的适用类型。就像衣服的尺码一样。
小数的最大值和最小值我们不去研究。
这个结果是0,如果想出现小数需要a或者b有一个是小数才可以;或者乘以1.0也是可以解决的,就可以输出小数了。
其他的输出方法,(注; printf在Java中很少使用.)
在Java中如果等号右边的值的类型 的范围比等号左边的值的类型的范围大,就必须进行强制类型转换或者其他的处理,使得等号2边的类型保持一致,要不然就会报错。
float类型
这个里面的float类型的f的赋值,12.5默认是double类型的,想不报错让12.5是float类型的,一个办法就是在12.5的后面加一个f,就可以了。
字符类型: char
(2个字节)可以是单个字符,可以是汉字,可以是数字(数字可以是0到2^16)(输出时输出的是数字对应的字符)。
计算机中的字符本质上是一个整数 . 在 C 语言中使用 ASCII 表示字符 , 而 Java 中使用 Unicode 表示字符 . 因此一个字符占用两个字节 , 表示的字符种类更多 , 包括中文 .char 的包装类型为 Character
boolean类型
在Java的boolean类型中,真就是true ,假就是false,对于boolean,在JVM中并没有明确它的大小,在boolean中只可以给它赋值true或者false,其他的赋值会报错的。
例:
这里给boolean类型的flg赋值了1,不是true或者false,所以报错了。
但是在C语言中,0代表假,非0即为真。
这2种语言在这里是有区别的。
类型转换:
类型提升:
注:对于小于4个字节的类型,在运算的时候,会被先提升为4个字节的,然后在参与运算。
例如:byte,char 类型。
a和b参与运算的时候,a是int类型是 4个字节的,b 是long类型是 8个字节的,所以a会被先提升为long类型是 8个字节,然后和b参与运算,最后a+b 的结果也就是long类型的是 8个字节的,但是c是int类型的是 4个字节的,所以就会报错。
可以把a+b的结果强转成为4个字节的int类型, -------> int c=(int)(a+b);
也可以使用8个字节的long类型来接收a+b的值。 -------> long d=a+b;
str存的也是h 的地址,但是在Java中的字符串不是以\0截止的。
它是靠字符的个数来打印字符串的。
字符串相加
在字符串中,如果2个字符串进行相加,那么就是这2个字符串进行拼接的意思
并且字符串加上任何类型都会变成字符串 (字符串拼接任何类型都会变成字符串 类型)
(注: 运算都是从左向右运算的。)
对于这个里面:a=10; b=20;
运算从左到右进行计算,所以第一个输出结果是:a=10
第二个输出结果是:b=20
第三个输出结果是:a+b=1020
对第三个特殊解释一下:因为字符串加上(+)任何类型都会变成字符串,从左到右的进行运算所以,首先 “a+b=" 是字符串(a+b=),然后加上 a 所以 “a+b=" +a 也是一个字符串了( a+b=10),所以 “a+b=" +a+b 就也是一个字符串了(a+b=1020)
使用 . valueOf 来进行 类型转换:
以String.valueOf为例:
通过点号 . 来调用类里面的方法 -----》 String.valueOf(变量名 )
例如: String.valueOf(a )
这个可以把其他类型转换成String类型。(转换成字符串类型)
还有一种可以把其他类型转换成为字符串的方法,就是把这个变量名+一个字符串(可以是空格)例如:int a =12345 ; String aa= a+ " " ;
以Integer.valueOf 为例:
在Integer 这个类里面,的valueOf在它的函数内部调用了 parseInt 这个函数,
所以 String str= "12345" ; int ret = Inreger.valueOf(str) ;
int ret3 = Integer.parseInt(str);
这2种写法是一样的。
以Integer.valueOf 为例:(代码)
String.valueOf 可以把其他类型转换成为String类型Integer.valueOf 可以把其他类型转换成int类型Double.valueOf 可以把其他类型转换成double类型
下面是double的valueOf 的内部函数调用:
以Double.valueOf为例:(代码)
这种转换是不能成功 的,abc本身就不是int类型的,所以肯定转换是成功不了的。