《疯狂Java讲义》 1-概述
01 发展历史:Sun->Oracle
02 编译型语言:一次性翻译成机器码,效率较高,通常无法移植 ,C、C++……
解释型语言:逐行解释,立即执行,效率较低,可跨平台(特定平台的解释器)
伪编译型语言:如VB,先别编译成P-代码,可执行的的exe文件包含链接解释程序的代码
03 Java的运行机制
编译并非生成机器码,而是生成与平台无关的字节码(*.class),字节码不可执行,需用Java解释器解释执行。具有双重特性。
04 JVM:Java虚拟机,可运行字节码文件的虚拟计算机;字节码面向JVM
不同平台的JVM不同,但提供了相同的接口(不同笔搭配相同笔帽的转化器)
05 JDK:Java SE Development Kit,即Java标准版开发包,提供了编译、运行Java程序所需的所有工具或资源
编译器,运行时环境(JRE),常用类库
JDK(开发)>JRE(运行)>JVM 核心虚拟机+其它环境支持
06 javac:编译;java:运行 安装后将命令添加到PATH环境变量(用户变量与系统变量)
javac -d dir srcFile javac -d . srcFile javac srcFile
java Java类名 java -classpath dir1;dir2;dir3 Java类名 (Windows文件夹可直接在向导栏copy路径名)
07 Java程序的基本规则:
- 类是Java程序的最小程序单元,main作为入口写法几乎固定 public static void main(string[] args)
- 源文件命名规则;文件名必须与public类的类名相同,其它建议与类名相同,且一个文件只定义一个类
- 严格区分大小写;关键字都是小写的,数据类型呢
- 路径最好不要包含空格
08 CLASSPATH,现在一般不用设置,如要则加 . 表示当前路径,可用于加载第三方类库,可作为java参数设置搜索Java类的路径
09 输出 System.out.print()不换行 System.out.println()换行
10 JDK9开始引入jshell工具
REPL(Read-Eval-Print Loop)交互的命令行窗口,很像Python啊,可方便的测试新API
/help /exit
11 C/C++显式进行垃圾回收:错误回收->系统崩溃;忘记回收->内存泄露
垃圾回收(GC) Java的内存分配与回收是由JRE在后台(提供线程自动检测与控制)自动进行
碎片:内存块之间的内存空闲区;碎片整理:将占用的内存移到堆的一端
练习:
01 开发环境OK
02 最初String忘记首字母大写,emmm,int?