第一章:初始Java
Java核心机制:
1、垃圾收集机制 :Java消除了程序员回收无用内存空间的职责;提供一种系统级线程跟踪存储空间的分配情况。在JVM的空闲时,检查并释放可被释放的存储器空间
自动进行,无法精确干预
后续:
1. 垃圾收集器有几种
2. 垃圾收集器底层原理剖析
3. 垃圾收集器算法,优化
2、跨平台:一次编译到处运行
“.java"编译后的字节码文件”.class" 在各个平台通过JVM翻译成可执行文件
API(应用程序编程接口) 是一些预先定义好的函数,目的是提供应用程序以及开发人员基于某软件或硬件得以访问一组例程的能力
注释:
- 单行注释: //
- 多行注释: /* & */
- 文档注释:/** & */
JDK、JRE、JVM区别:
- JDK与JRE:JDK是面向开发者的,JRE是面向使用JAVA程序的用户。JDK里的工具几乎是用Java所编写,因此要使用JDK所附的工具来开发Java程序,需要附一套JRE才能运行。JRE运行时,JDK中java.exe先从自身目录中找,然后父级目录中找,如果都没有就去注册表中找。
- JRE与JVM:JVM就是java虚拟机,它是整个java实现跨平台的最核心的部分。JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
第二章:标识符
注:不可以以数字开头,不可以使用java中的关键字
变量的声明:如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义
类型级别:(从低到高的)
byte,short,char,int,long,float,double
数据转换:在进行运算的时候:
- 左=右 : 直接赋值
- 左<右 :强转
- 左>右 :直接自动转换
第三章:运算符
"++"规则:如果++在后:先运算,后加1;如果++在前,先加1,后运算。(++ > +)
a+=b 和 a=a+b 区别:
- a+=b:可读性稍差,编译效率高,底层自动进行类型转换
- a=a+b:可读性好,编译效率低,手动进行类型转换
例:下面的代码哪一句出错:(4)
byte a = 10; —>1
int b = 20; —>2
a+=b; ---->3
a = a+b ;---->4
更正: a = (byte)(a+b);
逻辑运算符:
- 逻辑与 &:只要有一个操作数是false,那么结果一定是false
- 短路与 &&:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
- 逻辑或 | 和 短路或 || 同理
条件运算符:a?b:c(可以代替if-else)
其中a是一个布尔类型的表达式,返回结果要么是true要么false,通过a的结果决定最终表达式的结果:
- 如果a的结果是true,那么表达式最终结果为b
- 如果a的结果是false,那么表达式最终结果为c
2、请问a+=b相当于a=a+b,那么也相当于 a=b+a吗?
- 对于基本数据类型来说没区别
- string类型决定着拼写顺序