今日心情
不断的受到焦虑的贩卖,自己当然知道他们是希望你过的好还是看到你一落谷底。打着关心你的旗帜进行着期望看到你笑话的行为,不必在意这些庸人,毕竟自己的生命也只有一次,不能浪费在他们身上。这也是自己不断要向前的一个原因吧!减少无意义的社交吧!
这是第一篇博客,总结下自己之前在毕向东视频课上学习的基础知识(过于基础),写上一些自己掌握不好的地方以及重要的地方。主要以借鉴为主,会加上自己的一些理解。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
原文链接:https://blog.csdn.net/qq_38003454/article/details/82882185
前期总结
一:java概述:
名词缩写:
1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
即 JDK (开发运行环境)包含 JRE(运行环境=类库+JVM) 包含 JVM
编译与运行:
1.要知道java是分两部分的:一个是编译,一个是运行。
编译:avac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。编译即是检查语句的正确与否(目前理解)
运行:java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.
一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.
二:java语法基础:
变量(域):其实就是内存中的一个存储空间,用于存储常量数据。 格式:数据类型 变量名称 = 变量的初始化值(对象数组字符串皆为一个变量)
什么是引用数据类型:区别:基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。(目前的理解是 引用数据类型的作用可以进一步的解放栈内存)
类型转换:
1.自动类型转换:小转大(如byte-short)会是自动的,因为这是不丢失精度的。特殊地,对于默认为int型的数值,当赋给一个比int型小的数值类型,会进行自动判断,若超出为错,若在内,JVM会进行一次隐式类型转换。 而对于x = x+y 的操作是不可以的,因为无法判断x+y的值是否超过了原x类型的精度。
2.强制类型转换:将高级别的数赋为低级别的数。转换格式为在圆括号内给出想要转换的目标类型,后面紧跟待转换的变量名。示例:(int)x。类型转换后其实是存在了一个新的变量,即此时有两个变量。对象的子类转父类也在这其中。
3.运算符: %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。
&&:短路与:如果左边为false,那么右边不参数与运算。
4.方法(函数):为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
java中的函数的定义格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){
执行语句;
return 返回值;
}
函数的作用:
1)、用于定义功能。
2)、用于封装代码提高代码的复用性。
注意:函数中只能调用函数,不能定义函数。
重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。
如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。
5.java分了5片内存。
1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
1:每一个实体都有内存首地址值。
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3:垃圾回收机制。