javaGuide基础1
转载自https://github.com/Snailclimb/JavaGuide (添加小部分笔记)感谢作者!
基础概念及常识 #
Java语言特点
- 面向对象(封装、继承、多态)
- 平台无关性(Java虚拟机)
- 等等
JVM并非只有一种,只要满足JVM规范,可以开发自己专属JVM
JDK与JRE
- JDK,JavaDevelopmentKit,包含JRE,还有编译器(javac)和工具(如javadoc、jdb)。能够创建和编译程序
- JRE,Java运行时环境,包括Java虚拟机、Java类库,及Java命令等。但是不能创建新程序
字节码,采用字节码的好处
- Java中,JVM可以理解的代码称为字节码(.class文件),不面向任何处理器,只面向虚拟机
- Java程序从源代码到运行的过程
- java代码必须先编译为字节码,之后呢,.class–>机器码,这里JVM类加载器先加载字节码文件,然后通过解释器进行解释执行(也就是字节码需要由Java解释器来解释执行)
- Java解释器是JVM的一部分
编译与解释并存
- 编译型:通过编译器将源代码一次性翻译成可被该平台执行的机器码,执行快、开发效率低
- 解释型:通过解释器一句一句的将代码解释成机器代码后执行,执行慢,开发效率高
- 如图
为什么说 Java 语言“编译与解释并存”?
这是因为 Java 语言既具有编译型语言的特征,也具有解释型语言的特征。因为 Java 程序要经过先编译,后解释两个步骤,由 Java 编写的程序需要先经过编译步骤,生成字节码(
.class
文件),这种字节码必须由 Java 解释器来解释执行。Java与C++区别
- 没学过C++,Java不提供指针直接访问内存
- Java为单继承;但是Java支持继承多接口
- Java有自动内存管理垃圾回收机制(GC),不需要程序员手动释放无用内存
注释分为 单行注释、多行注释、文档注释
标识符与关键字 标识符即名字,关键字则是被赋予特殊含义的标识符
自增自减运算符 当
b = ++a
时,先自增(自己增加 1),再赋值(赋值给 b);当b = a++
时,先赋值(赋值给 b),再自增(自己增加 1)continue/break/return
continue
:指跳出当前的这一次循环,继续下一次循环。break
:指跳出整个循环体,继续执行循环下面的语句。return
用于跳出所在方法,结束该方法的运行。
变量
- 成员变量和局部变量
- 成员变量可以被
public
,private
,static
等修饰符所修饰,而局部变量不能被访问控制修饰符及static
所修饰;但是,成员变量和局部变量都能被final
所修饰 - 从变量在内存中的存储方式来看,如果成员变量是使用
static
修饰的,那么这个成员变量是属于类的,如果没有使用static
修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。 - 从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而自动生成,随着方法的调用结束而消亡(即方法栈弹出后消亡)。
- final必须显示赋初始值,其他都自动以类型默认值赋值
- 成员变量可以被
- 静态变量:被类所有实例共享
- 成员变量和局部变量
字符型常量与字符串常量区别
...