- java是一种强类型语言,要求十分严格。要求变量必须先定义后使用。一旦定义了某个变量指定了某个数据类型,如果不经过转换他就永远是这个类型了。
- 强类型好处是安全性高,但速度会比较慢。
- 强类型语言对应的是弱类型语言,强类型语言更严谨可以避免更多的错误。比如javascript可以随便玩变量,字符串的’12’加上3就可以变成两种类型,'123’或者123 。他们之所以写的那么随意,是因为他们的编辑器做了一些规范化。
public class Demo02 { public static void main(String[] args) { // String a = ""; String a; System.out.println(a); } }
- 上面这个代码没有给String a 赋值,会出现以下报错
- 假如把String a 赋值 10,就会报错。因为他不是字符串
String a = 10;
- 10可以用int来类型。如果int用一个字符串来表示也会报错
int num = "hello";
- 可以写成这样hello跟10都被输出出来了。变量时可以变化的量,需要一个数据类型,变量名字然后给他赋一个值。
public class Demo02 { public static void main(String[] args) { String a = "hello"; int num = 10; System.out.println(a); System.out.println(num); } }
- java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type)
- 基本类型分为数字、字符,数字还分为小数和整数,最后还有一个布尔类型表示是非。
- 整数里面分为 byte、short、int、long,他们都可以代表整数,但是大小范围不一样。byte占一个字节范围:-128~127。short占两个字节范围:-32768 ~ 32767。int占4个字节范围:-2147483648 - 2147483647。long占8个字节范围:-9223372036854775808-9223372036854775807 。
- 小数里分为double和float 。double占8个字节,我们一般用double。float占四个字节。float是单精度类型,精度是8位有效数字,取值范围是10的-38次方到10的38次方。double是双精度类型,精度是17位有效数字,范围是10的-308次方到10的308次方。当你不声明的时候,小数都用double来表示,所以用float的时候要在后面加上f。
- char 表示一个字符。占两个字节
- boolean类型只有true和false两个,占一位。
- 现在来看一下八大数据类型。假如byte超出127就会报错
byte num2 = 200;
- long是比较特殊,long这么长那么是怎么知道他用了long呢?一般定义这个类型会在数字最后加上大写L
long num4 = 30L;
- 而小数Float后面也要跟个F标志,不然他会找到double类型
float num5 = 40.1;
float num5 = 40.1F; double num6 = 3.1415926535;
- 字符类型(要用单引号)。假如我写两个字符,他就会报错。只能写一个
char name = ‘秦疆';
- 表示字符串的String他没有颜色,他不是一个关键词。他是一个类。
- 最后还有布尔值boolean
boolean flag = true; boolean flag2 = false;
- int 会对应一个类Integer
- 最大值是 2的31次方减1,最小值是-2的31次方。除了int,byte也有(Byte)
- 后面学到类对应的基本类型的包装类会学到。
- 除了基本类型之外还有一种引用类型。有类、接口、数组
- 位是计算机最小计算单位,11001100是一个八位二进制数,最底层的单位。
- 字节是计算机处理数据的单位,一个字节等于八个位。
- 电脑32位和64位的区别:32位只能装32位的cpu,而64位既能装64也能装32位的cpu。寻址能力:64支持128g内存,32只能支持4gb。
- 字符:是指计算机中使用的字母、数字、字和符号。
- 1024b = 1Kb ,1024kb = 1Mb , 1024Mb = 1Gb, 1024Gb = 1Tb 。
- 整数拓展,进制。二进制、八进制、十进制、十六进制在java当中怎么表示呢?
- 二进制一般以0b开头
- 十进制直接表示即可
- 八进制是以0开头的
- 十六进制是以0x开头的
int i = 10 ; int i2 = 010; // 代表八进制 int i3 = 0x10; //代表十六进制 System.out.println(i); System.out.println(i2); System.out.println(i3);
- 十六进制还有 A-F
- 浮点数拓展。银行业务怎么表示?在用float关键词、double都是有问题的。下面代码,从中文他们都代表0.1 ,我们来看看他们是否相等
float f = 0.1f; double d = 1.0/10; System.out.println(f==d); System.out.println(f); System.out.println(d);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)