java第一次课程
认识jdk
JDK 是 java development kit 的缩写,是一个java开发工具包,是编写java程序员使用的软件,它包含jre
而 jre 又包含 jvm (java虚拟机)。
jre是Java运行环境,不包括任何开发工具,要知道光有jvm是不能执行由jdk编译后 class 的字节码,因为在jvm解释class字节码时,需要调用jre的类库lib。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2owzltwf-1646228152895)(C:\Users\moutainman\AppData\Roaming\Typora\typora-user-images\image-20220227155605003.png)]
java跨平台性,可移植性
-
Jvm是java跨平台的核心部分,对于源代码文件,我们只需要一次编译,其对应的***class*** 字节码文件就可以多次执行,且是跨系统,前提是你的机器装有jvm。
-
对于可移植性 我们举个简单例子,在学习C语言时,像int double等基本数据类型,在不同的操作系统中如64位,32位。其范围也是不同。但Java规定,任何位数系统,int都为32位。所以可移植性高,可曾听闻向下兼容真要命!
Java第一个简单程序
public class Helloworld{
public staic void main(Stirng[] args)}{
System.out.println("Hello world!");
}
}
hello world由c语言之父首次引出,随后成为了每门语言的入门程序,接下来,做个简单说明:
将 上述编写并保存到文件Helloworld之后,还需要进行编译才能运行。java编译器对原文件编译后,会产生Helloworld.class 字节码文件(这是一种二进制文件)。然后jvm调用 lib的类库解释字节码翻译成机器语言,最后便在屏幕上显示了 :Hello world!
NOTE: 那个***class***字节码文件,二进制查看是乱码的,在经过杰哥的讲述下,我们应该以十六进制格式打开此文件。 下面附上两种情况
1.乱码二进制文件(这个文件不是 hellowrld 文件的class)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lfZoGazB-1646228152897)(C:\Users\moutainman\AppData\Roaming\Typora\typora-user-images\image-20220228200012260.png)]
2.十六进制下的文件
case穿透
这个东西一直C语言就经常接触过,但这名字还是第一次听过 ,产生这种现象的原因:由于某个case语句中缺少或者漏写break语句所导致的结果. 例如:
int i = 2;
switch(i)
{
case 1:System.out.prinln("哈巴狗");break;
case 2: System.out.prinln("舔狗");
case 3:System.out.prinln("国服第一狼狗");break;
case 4:System.out.println("中华田园犬");break;
}
该列,屏幕输出
舔狗
国服第一狼狗
驼峰式命名法
这个东西顾名思义;是指混合使用大小写字母来构成变量和函数的名字 咱们还是直接看代码:
void removeStudent(ArrayList<Student> list);
void addStudent(ArrayList<Student> list);
String studentName;
总之:除第一个单词之外,其他单词首字母大写。
数值类型转换
-
基本数据类型
类型 存储要求 byte 1 byte short 2 byte int 4 byte long 8 byte float 4 byte double 8 byte boolean 1 byte - 窄转换:存储范围大往小的转,强制类型转换。(但是精度会有损失)
- 宽转换:反之即可。不会损失精度
代码执行的铁律
这个东西也是第一听说,我直呼牛逼,老师请受我一拜
- 顺序执行
所有代码的执行过程都是顺序执行,但绝不是想当然的从上到下,而是他的底层的逻辑顺序
-
从右到左
int b = 5;
先出现5,然后就会再去内存找位置,如果内存有余,则会将内存分配