万能的编译器:
1. 默认添加 import java.lang.*;
2. 如果一个类中没有定义构造方法,默认添加公开无参的构造方法
3. 如果访问一个属性和方法时,没有加引用,则默认添加 "this."
4. 如果一个构造方法的第一行既不是this,也不是super , 默认添加 "super()"
5. 如果不明确指定一个类的父类, 默认继承Object
Java好处:
1.跨平台 2.简单 3.面向对象 4.开放
Java运行机制:先编译 后解释
编译
源文件 ----> 机器码文件 无法跨平台 C C++
解释
源文件 ----> 可以跨平台 Basic JS
编译器 解释器
源文件(.java) ----> 字节码文件(.class) ----> 平台中立
1) 编译器 javac javac 源文件名 (带.java)
2) 解释器 java java 类名(不带.class)
3) JVM
JDK (编译器 解释器 JVM 工具 类库)
环境变量
Java_Home : JDK安装目录
Path: JDK安装目录/bin
ClassPath: . 类路径 指示编译器或JVM到哪去找所需要的类
公开类类名必须和源文件名相同,包括大小写.
一个源文件中可以定义多个类,但只能有一个公开类Java程序的基本结构
package 0-1
import 0-n (1-n)
class 1-n 公开类 0-1
编程习惯 可读性
1.注释 描述代码的文字
// 单行注释
/* */ 多行注释 不允许嵌套
/** */ 多行注释 配合JavaDoc工具 生成API帮助文档
2.缩进
1)每行一句代码
2)同层次代码左对齐
3)每进入一个代码块, 缩进一次
3.标识符
语法:字母 数字 下划线 货币符号$ 数字不能开头
没有长度限制
不能使用关键字,保留字,true ,false
大小写敏感
习惯:望文知义
大小写
类名 单词首字母大写 HelloWorld
变量名/方法名 首单词小写,后面的单词首字母大写 helloWorld
包名 全小写 helloworld
常量名 全大写 HELLOWORLD
变量 强类型 变量类型和变量中的数据类型必须一致
局部变量: 定义在函数的内部的变量
1.必须先赋值,再使用
2.作用范围:从定义开始,到所在的代码块结束
3.重合范围内,不允许2个局部变量重名
数据类型 2种
1 基本数据类型 8种
1) byte 1B -128 -- 127
2) short 2B -32768 -- 32767
3) int 4B -2147483648 -- 2147483647 10 010 0x10 0b10(since 1.7)
4) long 8B -2^63 -- 2^63-1 字面值加L或者l
5) float 4B 字面值加F
6) double 8B 字面值加D或者不加
7) boolean 字面值 true false
8) char 2B 字面值 'A' 65 '\u0041' 转义字符 \n \t \\ \' \"
2 对象类型
String 字面值 "ABCD" 支持 + 运算 字符串连接
运算中的类型自动提升
a ? b
if a,b有double ---> double
else if a,b有float ---> float
else if a,b有long ---> long
else ---> int表达式 运算符
=
+ - * / %
+= -= *= /= %= a+=2 a=a+2
++ -- a++ a+=1
== != > < >= <=
&&(逻辑与) ||(逻辑或 ) !(逻辑非)
(布尔表达式)?值1:值2
& | ^ ~ >> << >>>
()控制优先级
流程控制
if(布尔表达式) { }
if(布尔表达式) { 代码块1 } else { 代码块2 }
if(条件1){} else if(条件2) { } else if
switch(int表达式) byte short int char String(since 1.7)
{
case 值1:
case 值2:
...
default:
}
break 跳出swtich-case结构
while(布尔表达式){} 0-n
do{} while(布尔表达式); 1-n 不确定循环
for( 循环变量初始化 ; 循环条件 ; 循环变量变化 ) 0-n for(int i=1; i<4; i++){ }
确定循环
break 跳出循环
continue 跳出本次循环
数组 一次性定义多个同类型的变量
定义数组 int[] a;
分配空间 a = new int[5] 数组元素的默认值: 数值类型 0 ; 布尔类型 false ; 对象类型 null
数组名.length : 表示数组长度
数组特点: 存储空间必须连续 查询快 增删慢 长度固定
函数的作用
1.减少冗余代码 , 提高程序的可维护性
2.提高代码的可重用性
3.利于分工
非结构化编程 代码单位:语句
结构化编程 代码单位:函数 面向过程
面向对象编程 代码单位:类
函数语法:
1.函数的声明 : static 返回值类型 函数名 (形参列表) 形参:函数内部有效的局部变量
2.函数的实现 : {}
函数的调用: 函数名(实参列表) 实参:为形参赋值的数据