Java基础(第一篇)
一、Java的发展史和三大版本
1、Java的发展史
Java由sun公司开发,Java之父James Gosling。Java是一门面对对象编程语言,也是一门高级语言。1994年由sun公司推出,Java前身叫oak语言,开源免费。
Java 的版本从JDK1开始到目前的JDK13。
目前开发常用的版本以jdk8.0和jdk9.0为主。
2、Java语言能做什么
Java语言主要用于互联网应用程序开发。列如:天猫、京东、公司项目管理系统,手机APP的后台数据支撑系统等。主要开发web系统(基于浏览器访问),还有后台存储的数据分析,数据查询等相关系统。
3、Java的版本分类
(1)JavaSE(J2SE)全称Java PlatForm Standard Edition,Java的标准版本(称为Java基础)。
(2)JavaEE(J2EE)全称Java PlatForm Standard Edition,Java的企业版。
(3)JavaME(J2ME)全称Java PlatForm Microsoft Edition,Java的微型版本。
二、Java开发环境
1、配置开发环境
第一步:下载jdk(官网下载https://www.oracle.com/)
第二步:配置环境变量
此电脑—》属性—》高级系统设置—》环境变量—》系统变量
首先新建:变量名JAVA_HOME:D:\java(这里写你jdk安装相对的路径,我的是安在D盘下的Java文件夹里)
然后在Path路径下配置%JAVA_HOME%\bin或者写成jdk相对路径\bin也是一样的(D:\java\bin) (jdk1.5以后就无需再配置CLASSPATH)
此时还需要在Path路径下配置D:\java\jre\bin。
最后快捷键Win+R 输入cmd,输入javac,如果显示如下界面说明环境配置成功了!
输入java -version,可以查看你自己的安装的jdk版本信息。
***为什么要配置jdk呢?
(1)JDK(Java Development Kit):Java开发工具,包括Java开发中运用的所以的工具(包、接口API、运行环境等)。
(2)JRE(Java Runtime Environment):Java的运行环境,运行Java程序需要的相关的依赖。
(3)JVM(Java Virtual Mechine):Java虚拟机,用于运行Java程序,实现跨平台虚拟计算机。
关系图如下
三、编写Java第一个程序
用记事本新建一个.java结尾的文件,在里面编写第一个程序。然后Win+R输入cmd,输入javac 文件名.java(这里的件名就是你建的.java文件名),产生.class文件,输入java 文件名。
public class Hello
{
public static void main(String[] args){
System.out.println("hello world!");
}
}入代码片
运行原理:
Java程序需要运行,必须经过两个步骤:先编译再运行,将源程序编译成.class文件,编译后的class文件称为“字节码”文件,然后再由Java虚拟机(JVM)运行文件,最后得到结果。
四、Java的关键字
1、定义:在Java程序中,已经定义好了的被预先使用的一些特殊的单词称为关键字,一共有50个关键字(48+2个保留字),关键字都是小写的英文单词。
2、分类:
数据类型关键字 | 解释 |
---|---|
byte | 字节型 |
short | 短整型 |
int | 整型 |
long | 长整型 |
char | 字符型 |
float | 单精度浮点型 |
double | 双精度浮点型 |
boolean | 布尔型 |
null | 空 |
流程控制关键字 | 解释 |
---|---|
break | 退出条件或循环 |
continue | 退出当前循环,继续下一次循环 |
if | 条件语句的引导词 |
else | 用于条件语句中,表明当条件不成立时的分支 |
switch | 分支语句结构的引导词 |
case | 用于switch语句中,表示其中的一个分支 |
default | 默认 |
do | 用在do…while循环结构中 |
while | 用在循环结构中 |
for | 一种循环结构的引导词 |
return | 方法返回(注意在条件语句中它和break的不同) |
面对对象关键字 | 解释 |
---|---|
class | 定义类 |
interface | 定义接口 |
extends | 继承一个类 |
implements | 实现一个接口 |
super | 超级(用于调用父类的成员) |
this | 当前类 |
instanceof | 判断一个类的类型(只能判断引用数据类型) |
import | 表明要访问指定的类或包 |
package | 定义一个类所在的包 |
new | 用来创建新实列对象 |
修饰符关键字 | 解释 |
---|---|
abstract | 修饰抽象类 、抽象方法 |
final | 修饰常量 |
native | 本地的,也用于修饰变量 |
private | 私有的 |
protected | 受保护的 |
public | 公共的 |
static | 静态的 |
synchronized | 修饰方法或代码块,用于线程安全的(表示一段代码需要同步执行) |
transient | 瞬时状态(声明不用序列化的成员域) |
volatile | 瞬时状态(表明两个或者多个变量必须同步发送变化) |
异常关键字 | 解释 |
---|---|
try | 尝试一个可能抛出异常的程序 |
catch | 用在异常处理中,用来捕捉异常 |
finallly | 最后执行的代码块 |
throws | 声明在当前定义的成员方法中所需要抛出的异常 |
throw | 抛出一个异常 |
其他关键字 | 解释 |
---|---|
assert | 测试中的断言 |
stictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
enum | 定义枚举 |
保留字 | j解释 |
---|---|
goto | 没有具体含义 |
const | 没有具体含义 |
五、标识符
1、定义:在Java程序中所有由程序员自己命名的元素统称为“标识符”。
2、标识符命名规则:
(1)标识符由数字、字母、_和美元符号组成
(2)标识符不能以数字开头
(3)标识符区分大小写
(4)标识符不能是关键字
*注意:
a.定义类名的标识符:首字母必须大写后面单词的首字母大写,遵循大驼峰命名法。
b.定义方法的标识符:首字母尽量小写,后面单词的首字母大写,遵循小驼峰命名法。
c.定义变量标识符:全部小写。
d.定义包名:全部小写,域名倒写(按模块分层级,使用公司的域名)。列如:com.公司名.模块名。
e.定义项目名:尽量使用英文(Java项目可以使用中文,Javaweb项目一定要使用英文)
列:#stu(标识符中没有#)、7y(以数字开头了)、7_(以数字开头了)等不符合标识符命名规则。
六、常量和变量
1、常量
(1)定义:在Java中,固定不变的数据量称为常量,常量也有内存(存放在常量池内存中(JVM中))
(2)常量分类
常量类型 | 含义 | 示例 |
---|---|---|
整数常量 | 所有的整数 | 1,100,-20,0 |
小数常量 | 所有的小数 | 1.5,-3.4,3.1415926 |
字符常量 | 由单引号引起来,只能写一个字符,不能为’’ | ’ '(里面有个空格就可以),‘a’ |
字符串常量 | 由双引号引起来,可以写多个字符 | “hello,”\n","\t" |
布尔常量 | 用于条件判断的,只有两个常量 | true,false(注意只有这两个常量) |
空常量 | 用于表示空对象 | null |
(3)常量的修饰符final
final int n = 100;//定义常量语法,n的值只能为100,不能再次改变,其中n就是常量
这里的n与上面表格中的常量不一样,上面是Java固有的,已经存在Java常量池内存中。这里的n是分配一个地址其值不变。
2、变量
(1)定义:用于报错一个数据的最小的内存单元称为变量。变量中每次只能存放一个值,变量的数值是可以改变的。
在定义变量时候,需要明确三要素:数据类型、变量名(标识符)、变量值
(2)变量语法
数据类型 变量名 = 初始值; 或 数据类型 变量名1,变量名2;
变量在赋值的时候必须满足与数据类型匹配,如果不匹配可能出现异常或丢失精度。
(3)变量分类
a.全局变量(global variable):在Java的类结构中,定义在类中,方法外的变量,它的作用范围是整个类所有方法。
b.局部变量(loca variable):一般声明在方法或代码块(条件语句块、循环语句块、静态语句块等)中,它的作用范围只能在声明声明范围内。
注意:当类中的局部变量名与全局变量名同名时,变量名使用“就近原则”。