Java Overview
学习目标
- 基本的数据结构
 - 流程控制语句(if、for、while等)
 - 面向对象的理解(对象、封装、继承、多态)
 - 一些关键字的理解(super、this等)
 - 接口
 - 抽象类
 - ArrayList
 - String
 - Random
 - Math
 
配置java、javac环境(熟悉cmd命令);先用sublime text写代码,培养感觉,熟悉关键字。
第一章 Java程序设计概述
1.2 Java的11个关键术语
- 简单性
    
- 语法:Java语法是C++语法的一个纯净版本,没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。
 - size:小,能够在小型机器上独立运行。
 
 - 面向对象
    
- 将重点放在数据(对象)和对象的接口上,关注的是产品,其次才是使用的工具。
 - Java与C++主要不同点在于多重继承,由更简单的接口概念取而代之。相比C++,Java提供了更丰富的运行时自省功能。
 
 - 分布式
    
- Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络对象,如同访问本地文件一样便利。
 
 - 健壮性
    
- Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
 
 - 安全性
    
- Java设计成能够防范各种攻击,运行时堆栈溢出,破坏自己的进程空间之外的内存,未经授权读写文件。
 - Java浏览器插件不再相信任何远程代码,除非代码有数字签名而且用户同意执行该代码。
 
 - 体系结构中立
    
- Java虚拟机,即时编译。
 
 - 可移植性
    
- Java中int永远是32位整数等。
 - 除了用户界面相关部分,其他Java库都很好支持平台独立性,不依赖底层操作系统。
 - 不仅程序是可移植的,Java API同城也比原生API质量更高。
 
 - 解释型
    
- 快捷而具有探索性,比如Lisp、Smalltalk、VB、Python、R或Scala
 
 - 高性能
    
- 性能就是“适用性更强”
 - 即时编译器因为含有更多可用信息,某些情况下甚至超越了传统编译器
 
 - 多线程
    
- 摩尔定律的完结,并发性愈发重要
 
 - 动态性
    
- 将某些代码添加到正在运行的程序中。比如,从Internet下载代码,然后在浏览器上运行。
 - Java允许程序动态地装入运行过程中所需的类;C++ 程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。
 
 
1.5 Java有关的误解
| iOS | 流行语言 | 
|---|---|
| 浏览器 | JavaScript | 
| iOS | Objective C、Swift | 
| Windows | C++,C# | 
| 服务器端,安卓 | Java | 
- Java applet是在网页浏览器中运行的。不如JS可以修改正在显示的文档,applet只能在有限区域控制外观,动态效果处理不如Adobe的flash技术。
 - 早期Java是解释型的,现在Java虚拟机使用了即时编译器,速度很快。java是编译型的还是解释型的.
 
