数据类型
世界上有很多努力的人。也有很多聪明的人,努力的人不一定聪明。聪明的人一定都在努力加油以后程序员的世界一定还会有我们的额一席之地
目录
- 数据类型
- 知识回顾
- 整型
- 浮点型
- 字符型
- 布尔类型
- 字符串–它是一个类不是基本类型
知识回顾
由上节课我们学到了,java文件的后缀名是.java 执行过程是 首先使用javac对.java文件进行编译生成.class的字节码文件。如果再对java文件编译时出现一堆看不懂的东西如下图所示:
这种情况说明 咱们的java文件使用GBK编码解释不出来(这一步并不是我们写代码出错了)我们只需要使用 javac -encoding utf-8 文件名.java 即可 也就是使用utf-8编码进行编译
看下图:
看到这个图就说明咱们的编译过程已经了解了一大半了;
编译之后生成class文件叫字节码文件。可是我们看不懂啊,不用慌 这是给机器看的,我们如果想要看 还需要再来一步叫做《运行》 也就是 java+文件名
因为小编的代码里没有任何其他的中文字符之类的东西 所以GBK编码可以识别 所以一次便通过 并生成了大家都可以看懂的Hello World!!(所有程序员的开端)
程序运行在哪里运行的呢?—–》那个东西叫做jvm 也就是java 虚拟机 ;
说到JVM 就要说起JDK、JRE了
- JDK是Java开发工具包 ,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
- JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
- JVM是整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行
介绍完 JDK 、JRE、JVM之后就要看他们三者之间的关系了 。直接拿图介绍
最后小编再来个大概性的复习
- 一个类种,有且只能有一个public的类,这个类一定要和文件名一样
- 一个java文件种可以有多个类。编译的时候每个类都会生成一个字节码文件
- 认识JDK JRE JVM 的概念 且知道区别
- 熟悉mian函数
- 所有类型的字节大小和平台没有任何关系、所以java更容易移植
回顾到这里就算回顾完了 下面开始介绍新课…
整型
整型的关键字是int 包装类是 Integer
整型顾名思义是整数嘛.你用int 型变量存储小数就不对哒
看代码大家看 a是整型变量 存储10.2他就会报错 编译都不用编译直接报。原因是什么呢?看图 告诉我们 10.2是double型(下面会介绍) 存储到int型 java不允许。整数就是整数
当然我们如果使用强制类型转换就不一样了
经过这个图我们能学到什么呢? 首先 强制类型转换是再数据前面加上括号 括号里面写上目标类型。再者就是强制类型转换是用的去尾法 10.9 强制转换为整数就是10。并不是四舍五入。
另外该专题开篇介绍到了包装类 下面我介绍一下包装类看下代码:
看代码的运行结果大家也能猜到包装类名.valueOF是把一个数字字符串转换为 数字 如果不是纯数字会怎么样呢?还是用代码去理解
大家看 报错了。报错信息是告诉我们字符串种不是纯数字 所以不能转换 故而大家要避坑哦!!!!!!
整型家族里面还有long short 既然已经是整型家族了 就一定会有很多相同的 小编在这里就介绍介绍不同把
类型名 | short | int | long |
---|---|---|---|
所占字节数 | 2 | 4 | 8 |
取值范围 | -2^15 – 2^15-1 | -2^31 – 2^31-1 | -2^63 – 2^63-1 |
short 的包装类是Short
long的包装类是Long
区别就这些了大家记住了哦
浮点型
浮点型有两个 单精度浮点和双精度浮点 他们的区别是有效位数不一样 大家通过书籍进行查找哦!!
单精度 float 的包装类是Float 首先看代码
这里为什么报错了呢?首先java是强类型语言 通过int看出 12.0默认的是double 类型 所以这里再java语言种便是不可以的 不要拿C语言的世界看java世界哦!!
另外 浮点数存储的并不是准确的值 可能会有误差。
小编今天测试没有测试出来 在B站 《大博哥VV6》UP讲的时候 测试出来了。大家也可以字节测试一下 用格式化输出 控制多个小数位 他后面会有不精确的值的。当然小编也是跟着博哥努力学习的。博哥讲课全程笑点。一场下来知识也学会了。也没感觉枯燥哦。非常推荐大家去看
public static void main(String[] args) {double c=1.1;System.out.println(c*c);//大家去测一下结果哦}
字符型
字符型有char byte 当然byte也属于整数型 他就是C语言里面的char
看到这里蒙了吧?byte是char 那char是个啥呢?
java 的字符类型采用的是 Unicode编码方案 char 占两个字节
大家可以理解为 char 在java可以存储汉字 而一个汉字就是 两个字节。
byte 的包装类是:Byte
下面开始避坑;
试问byte+byte 为啥会报错呢?
下面我直接解释咯。有两点原因:
- 编译器在看到这个代码的时候,因为a和b都是变量。编译器不知道里面是多少,为了安全起见。只能报错了。
- 就是整型提升了。这里为什么报错 大家看看前面的 任何再了解了解C语言 就懂了。
当然放两个常量就不会报错了。。
public static void main(String[] args) {// byte a=12;// byte b=13;byte c=1+2;System.out.println(c);}
1和2是常量在执行的时候就直接是3了 所以没问题
char 的包装类是:Character 占两个字节大家理解一下哦
char 其实很好理解就是在java中char 必须是正数:
负数的情况下我把代码发出来大家试一下。就不截屏了哦!!动手才是王道
public static void main(String[] args) {char a=-10;System.out.println(a);}
布尔类型
布尔类型的关键字是boolean 包装类是Boolean 在C语言里面没有这个关键字 在c++里面有 布尔类型只有两个值 true 和false;也就是正确和错误
字符串–它是一个类不是基本类型
字符串类型 的关键字是String 这里不介绍了 因为它不属于基础。我才学了两节课 还不会嘞。以后再介绍嗷!!!想知道去B站搜 《大博哥VV6》
变量的命名规则–局部变量以及作用域
-
都是由字母、数字、下划线、和$符组成
-
变量名采用小驼峰的形式命名(第二个单词首字母大写其他的小写);
-
不能用java关键字命名;
软性要求 -
尽量使用名词
-
见名思意
-
不要用拼音!!!!!!!!!!!
首先 局部变量一定要初始化否则会报错
其次 常量值只能初始化一次!java中常量使用final关键字;
大家看初始化的时候没有报错 而使用的时候就报错了。所以再强调一遍常量只能初始化的时候赋值;
关于作用域总的来说就是一句话:一个局部变量作用一个花括号以及这个花括号所包含的花括号。。
关于小编
小编是一名大一学生 一直跟着b站上的大博哥学习java 学校开设的课程是C++ 自己琢磨着 在学校先研究一遍c++回头再仔细研究这样会不很吃力。所以便开始了java学习。希望大家能从一开始学习。努努力,一起变强为了更好的明天奋斗!!!!
小编的QQ号是:2206730228
欢迎大家来骚扰 一起探讨编程的奥秘。
小编是个农村人 别来欺负小编啥都不懂嗷