Java 入门
JAVA 简介
- 95 年正式推出的,java 之父:james Goalsing
- 1996 年 1 月,Sun 公司发布了 Java 的第一个开发工具包(JDK 1.0)
- 2006 年 11 月 13 日,Java 技术的发明者 Sun 公司宣布,将 Java 技术作为免费软件对外发布。Sun 公司正式发布的有关 Java 平台标准版的第一批源代码,以及 Java 迷你版的可执行源代码。从 2007 年 3 月起,全世界所有的开发人员均可对 Java 源代码进行修改
- 2009 年,甲骨文公司宣布收购 Sun 。2010 年,Java 编程语言的共同创始人之一詹姆斯·高斯林从 Oracle 公司辞职。2011 年,甲骨文公司举行了全球性的活动,以庆祝 Java7 的推出,随后 Java7 正式发布。2014 年,甲骨文公司发布了 Java8 正式版
JAVA 特点
- 高级语言
- 面向对象
- 垃圾回收
- 跨平台的(可移植的)
JDK 目录结构
- src:存放 java 源代码文件
- bin:包含可执行文件
- db: 小型数据库
- jre:java 的运行环境,有了 jre 可以运行 java 程序,但是不能开发
- lib:java 开发时所需要的类库和文档
JDK、JRE、JVM 的关系
-
JDK(Java development kit)java 开发工具包
-
JVM(java virtual machine)java 虚拟机
-
jdk 包含 jre,jvm
-
jre 包含 jvm,它包含在 jdk 中
安装 JDK
-
下载 JDK
Oracle 官网下载地址
(建议不要下载到有中文目录的文件夹或者多级目录下) -
配置环境变量
复制 JDK 路径到高级系统设置->环境变量->系统变量->path 变量->编辑->首行
如果以上不行,在 path 中新建一个配置
变量名:classpath
变量值:C:\Program Files\Java\jdk1.7.0_80\lib;(分号:在 win7、8 中用来隔开不同路径) -
检测方法
cmd,输入 java 或者 javac
有帮助信息弹出说明配置成功。能在 windows 下执行 java
主程序入口
目前为止必须在大括号中,才能执行所有的 java 代码
pubilc static void main(String[] args){
}
在主程序入口,执行打印语句
打印语句:
System.out.println("hello java");
ln: 代表换行
编写第一个 java 程序
-
创建以。java 为扩展名的文件
-
创建一个类,在程序中用 class 去表示
public class 类名(等同于文件名){ 程序入口 输出语句 }
-
在第二步中大括号中,输入主程序的入口的指令
-
在主程序入口执行打印语句
-
输入 cmd,输入 d:
编译文件
javac 文件名。java
javac.exe 是编译器,编译后会产生一个 xx.class 文件,也称字节码文件(半编译文件)
执行文件
java 文件名
java.exe 是解释器,在半编译的文件中执行的结果
会显示执行语句的输出内容。
在 Eclipse 中创建第一个工程
命名规范
- 工程名:可以用中文和英文,建议用英文
- 包名:一般小写,企业应用 com.first.demo 或者 org.demo1
- 类名:一般首字母大写去表示,如果两个以上的单词,第二个单词首字母用大写
- 变量:首字母小写和驼峰原则
- 常量:大写字母和下画线,如 MAX_VALUE
- 标识符:所有工程名,包名,类名,关键词,统称为标识符。
标识符引用范围:可以用 26 字母,0-9 数字,_
、$
来命名 - 关键字:对 java 编译语言有特殊意义的单词。
带有紫色字体的,映射到 java 程序中,我们称之为关键字
驼峰法则
文件名——所有首字母大写,称为大驼峰
HelloWorld.java
变量——用小驼峰
shangHai helloWorld
常量全部大写且用、_分隔单词
SHANG_HAI
不能使用中文命名!!
以下命名是否通过编译:
命名 | 判断 | 原因 |
---|---|---|
user111 | √ | |
111user | × | 不能以数字开头 |
user_111 | √ | |
$user | √ | |
do | × | 不能使用关键词命名 |
class | × | 不能使用关键词命名 |
注释
注释作用
- 将不需要的代码做标记(方便修改报错代码)
- 做备注
注释符号
// 单行注释
/*
多行注释
*/
/**
*文档注释
*/
/*// 多行注释嵌套单行注释 AAA;BBB;/*/
/** /* 文档注释不能嵌套多行注释 AAA;BBB;*/
*/
常量与变量
我们可通过变量名或者常量名来访问“对应的存储空间”,从而操纵这个“存储空间”里存储的值
- 常量:固定不变的值,一旦确定就无法改变的值
- 变量:生活中存在大量可变的数据,存储数据的能力
变量声明的格式
type varName [= value][,varName [= value]...];
数据类型 变量名 [= 初始值][, 变量名 [= 初始值]...];
int age; // 只声明不赋值
int x = 1 // 声明一个变量 x 指向值 1 (初始值为 1)
不同数据类型的常量会在内存中被赋予不同的空间大小
常量
- 常量使用
final
关键字修饰 - 通常使用全大写英文命名
final String CONSTANT = "常量";
变量
- 必须有名字(变量)和值
- 必须有数据类型
定义变量步骤
- 先声明: 数据类型 变量名; int x;
- 后赋值: 变量名=值; x=3;
简化步骤: 数据类型 变量名=值; int x=3;
声明方式 | 判断 |
---|---|
int x=5,y,z; | √ |
int x=y=z=5; | × |
int x,y=5,z; | √ |
int x,z=y=5; | × |
变量的分类
类型 | 声明位置 | 从属于 | 生命周期 |
---|---|---|---|
局部变量 | 方法或语句块内部 | 方法或语句块 | 从声明位置开始,知道方法或语句块执行完毕 |
成员变量(实例变量) | 类内部,方法外部 | 对象 | 跟随对象创建、消亡 |
静态变量(类变量) | 类内部,static 修饰 | 类 | 跟随类加载、卸载 |
总结
变量其实就是在内存中独立的开辟了一个区域空间
该区域有自己的独立命名,数据类型及数据
数据类型
基本数据类型
整数型
- byte:取值范围-128 到 127。(占一个字节,8 位)
- short:短整型,2 字节,16 位 取值范围:65536 之间
- int:整形,4 字节 32 位 取值范围:21 亿
- long:长整型,代表 8 个字节 64 位 取值范围:接近无穷大。一般用于科学应用,科学计算。
long y=31415926
数字太长会报错,一般在末尾加L
以区别
浮点型(小数型)
- float:4 个字节 32 位 单精度
float f=1.0f;
不可写成小数f=1.0;
必须末尾加f
区别 - double:8 字节 64 位 双精度
double d=1.0d;
可以写成小数d=1.0;
但是也可以末尾用d
区别
浮点数一般都存在舍入误差,很多数字无法精确表示,二进制浮点数不能精确表示 0.1、0.01、0.001 这样 10 的负次幂。并不是所有的小数都可以精确地用二进制浮点数表示
float f = 0.1f;
double d = 1.0 / 10;
System.out.println(f == d);
// 结果为 false
float f1 = 423432423f;
float f2 = f1 + 1;
System.out.println(f1==f2);
// 结果为 true
注意:浮点类型 float、double 的数据不适合用于不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用 BigDecimal 类
字符型
- char:2 字节 16 位
char c='你';
布尔类型
- boolean 1 字节
只有两个值:true 和 false
科学计数法
double d = 314e2;
double d2 = 314E2;
double d3 = 314e-2;
double d4 = 314E-2;
31400.0
3.14
引用数据类型
- 数组
- 类
- 接口
- String:字符串类型。不属于基本数据类型,而属于特殊的引用数据类型
System.out.print('a'+1); // 98 a=97
System.out.print("a"+'c'); // ac +号不仅有加法功能还有连接拼接功能
数据类型 | 特征 | 声明 | 使用 |
---|---|---|---|
基本数据类型 | 没有方法 | Int i = 4; |
I++; |
引用数据类型 | 具有方法 | Cat cat = new Cat(); |
Cat.legs=4; |
数据类型转换
自动类型转换(隐式类型转换)
byte b = 1;
short s = b;