注意:本教程适合有C/C++基础的, 没有也没关系, 需要费点劲
跟我学Java, 带你入门带你飞
· 编程语言发展史:
二进制 → 汇编语言 → 高级语言(面向过程) → 高级语言(面向对象)
· Java的诞生:
1991年诞生于爪哇岛-咖啡豆(bean),由Sun公司开发(2009年被甲骨文公司收购),最初是为了适应不同的消费电子平台,提高代码复用率而生,后来借互联发展的东风,java被大量使用来进行Web开发。
· 发展历程:
版本 JDK1.0 →JDK1.2→JDK1.3 → J2SE1.4 → J2SE 5.0 → Java SE 6 →Java SE 7 →Java SE 8→Java SE 9
· Java体系:
Java SE:基础
Java EE: Web服务(企业级)
Java ME: 移动设备和嵌入式设备
· Java的特性:
简单的、面向对象的、适用于网络应用的、解释的、健壮的、安全的、结构自然的、可移植的、高性能的、多线程的、动态的。去除了难以掌握的C/C++指针运算、运算符重载、多重继承、内存管理。有时被称为C++--。
· 几个概念:
JDK:java开发工具包 (Java Development Kit)
JRE:java运行环境 (Java Runtime Environment)
JVM:java虚拟机 (Java Virtual Machine):Java保证可移植性的关键
· 编写java程序并运行过程:
编辑 编译 运行
编辑:创建*.java文件,按java语法编写java代码。
编译:调用javac命令将*.java文件编译成*.class文件(字节码文件)
运行:有JVM解释字节码文件运行,由于并不是直接运行在硬件平台上,实现了与特定硬件平台,从而实现了可移植性。
遇到的问题:没有遇到问题。
· 标识符和关键字
Java标识符命名规则:采用基本符号集Unicode字符集
(1)Java标识符是一个由字母、数字、下划线 _ 或美元符号$构成的字符序列。(2)首字母必须是字母、下划线 _ 或美元符号$。
(3)Java标识符不能与关键字相同(也不能是true、false和null常量)。
(4)Java标识符长度没有限制。
(5)Java标识符区分大小写字母。
小注:由于java使用Unicode字符集,其实这里的字母是广义的(包括一个汉字都可以作为字母(百度得到))。
一些约定俗成:
变量/方法:首字母小写,驼峰原则
常量:全大写,单词通过下划线分割(其实由于早先并没有形成规范,JDK源码中有的常量并未按此规则,需注意)。
类/接口名:首字母大写,驼峰原则。
包名:全小写。
关键字:Java预定义的单词
数据类型:byte、short、int、long、char、float、double、boolean
包引入和包声明:import、package
类和接口的声明:class、extends、implement、interface
流程控制:if、else、switch、case、break、default、while、for 、do、continue、return
异常处理:try、catch、finally、throw、throws
修饰符:abstract、final、private、protected、public、static、synchronized
其他:new、instanceof(前是否是(属于)后(类))、this、super(父类)、void、enum(枚举)
(其实goto也是java关键字,但并没有goto语句(原因显而易见),在命名时需注意!!)
· 基本数据类型、变量、常量
包括基本数据类型,引用数据类型
基本数据类型:byte 、short 、int 、long 、float 、double、char、boolean
引用数据类型:class、内置数组、interface
字面常量注意事项:java中的整型常量默认为int,表示long型整数后面加后缀;在java中的实型常量默认为double,所以写单精度的实数时要在数字后面写f,如3.14f;不允许数值类型和布尔类型之间进行转换。
符号常量:Java中必须用final关键字(与C++中const区分)声明符号常量只能被赋值一次,一旦被赋值就不能够再更改
· 运算符
与C++基本一样,无需赘述。
· 表达式的类型转换
注意范围小的可以隐式的转换到范围大的,如需反转需强转,格式:(type)exp
boolean与数值不能转换
· 流程控制,与C++一样
分支语句:if-else, switch
循环语句:while, do-while, for
与程序转移有关的其它语句:break(跳出当前循环), continue(调向下一次loop), return(结束当前方法执行,并返回相应的值(void不用返回值))