【Java入门】初识Java的前世今生
目录
java语言发展史
1.1创造与迭代
詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。
SUN(Stanford University Network,斯坦福大学网络公司)
B:Java语言版本
* JDK 1.1.4 Sparkler 宝石 1997-09-12
* JDK 1.1.5 Pumpkin 南瓜 1997-12-13
* JDK 1.1.6 Abigail 阿比盖尔--女子名 1998-04-24
* JDK 1.1.7 Brutus 布鲁图--古罗马政治家和将军 1998-09-28
* JDK 1.1.8 Chelsea 切尔西--城市名 1999-04-08
* J2SE 1.2 Playground 运动场 1998-12-04
* J2SE 1.2.1 none 无 1999-03-30
* J2SE 1.2.2 Cricket 蟋蟀 1999-07-08
* J2SE 1.3 Kestrel 美洲红隼(sǔn) 2000-05-08
* J2SE 1.3.1 Ladybird 瓢虫 2001-05-17
* J2SE 1.4.0 Merlin 灰背隼 2002-02-13
* J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16
* J2SE 1.4.2 Mantis 螳螂 2003-06-26
* JAVASE 5.0 (1.5.0) Tiger 老虎
* JAVASE 5.1 (1.5.1) Dragonfly 蜻蜓
* JAVASE 6.0 (1.6.0) Mustang 野马
* JAVASE 7.0 (1.7.0) Dolphin 海豚
1.2JVM,JRE,JDK的概述
什么是跨平台?
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)
A:什么是JVM(JVM Java Virtual Machine java虚拟机)
JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
B:什么是JRE(Java Runtime Environment java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JRE:JVM+类库。
C:什么是JDK(Java Development Kit java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
JDK:JRE+JAVA的开发工具。
D:为什么JDK中包含一个JRE
为什么JDK中包含一个JRE呢?
开发完的程序,需要运行一下看看效果。
E:JDK,JRE,JVM的作用和关系
JDK包含JRE 和开发工具包
JRE 包含 核心类库和JVM
1.3常用dos命令
打开控制台
- win + R,然后cmd回车
常用命令
- d: 回车 盘符切换
- dir(directory):列出当前目录下的文件以及文件夹
- cd (change directory)改变指定目录(进入指定目录)
- 进入 cd 目录;cd 多级目录
- 回退 cd.. ; cd\
- cls : (clear screen)清屏
- exit : 退出dos命令行
1.4JDK安装与环境部署
JDK下载百度云盘链接:https://pan.baidu.com/s/1mF6N4V-ByAgj60EPVu4kwA 提取码:2tx7
注:第一次安装路径是JDK,第二次安装路径是JRE,建议一个文件不不同目录
W10环境部署参考:https://jingyan.baidu.com/article/db55b609fa946e4ba20a2f56.html
1.5编译测试
在E:\Java\JDK\bin目录下创建.java,用编辑器编写代码
关键字:被java语言赋予特定含义的单词
特点:组成关键字的单子全部小写
public class HelloWorld{
/*main方法是程序的入口方法
所有的程序执行都是从main方法开始*/
public static void main(String[] args){
//输出语句
System.out.println("HelloWorld");
}
}
cmd窗口输入:
先进入JDK下bin目录:cd E:\Java\JDK\bin
输入:javac HelloWorld.java --读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件
输出:java HelloWorld --执行
1.6常量
常量:在程序的执行过程中,其值不可以发生改变的量
常量分类:
A.字符串常量 "HelloWorld"
B.整数常量 12,-23
C.小数常量 12.23
D.字符常量 "a","0" 字符0
E.布尔常量 true,false
F.空常量 null
public class ChangLiang{
public static void main(String[] args){
//字符串常量
System.out.println("HelloWorld");
//整数常量
System.out.println(12);
System.out.println(-23);
//小数常量
System.out.println(12.23);
//字符串常量
System.out.println("a");
System.out.println("0");
//布尔常量
System.out.println(true);
System.out.println(false);
//空常量
System.out.println( );
}
}
1.7变量
变量:是内存中的一小块区域,在程序的执行过程中,其值可以在一定范围内发生改变
组成:
A.对区域要有限度
如何限定:数据类型来限定
B.必须对区域给一个名称
C.区域内必须有内容
初始化值
定义格式:
数据类型 变量名=初始化值;
变量的定义格式:
数据类型 变量名 = 初始化值
数据类型:Byte,short,int,float,double,char,bloolean
注意:
定义long类型变量的时候,最好直接加L
定义float类型变量的时候,最好直接加F
public class VariableDemo{
public static void main(String[] args){
//定义byte类型的变量
byte b = 10;
System.out.println(10);
System.out.println(b);
//定义short类型
short s = 100;
System.out.println(s);
//定义int类型的变量
int i = 1000;
System.out.println(i);
//定义long类型的变量,不加L默认int
long l = 100000000000000L;
System.out.println(l);
//定义float类型的变量,不加F默认double
float f = 12.23F;
System.out.println(f);
//定义double类型的变量
double d = 12.34;
System.out.println(d);
//定义char类型的变量
char c = 'a';
System.out.println(c);
//定义boolean类型的变量
boolean bl = true;
System.out.println(bl);
}
}
cmd 编译
javac -encoding UTF-8 VariableDemo.java 编译成class
java VariableDemo 执行编译文件
VaribaleDemo2
变量定义的注意事项:
a.变量未赋值,不能直接使用
b.变量只在它所属的范围内有效
变量属于它所在的那对大括号
c.一行上可以定义多个变量,但是不建议
public class VariableDemo2{
public static void main (String[] args){
int a = 10;
System.out.println(a);
int b;
b = 20;
System.out.println(b);
{
//代码块
int c = 30;
System.out.println(c);
}
//System.out.println(c); 错误,只在所属括号内有效
int a1,b1;
a1 = 10;
b1 = 20;
System.out.println(a1);
System.out.println(b1);
}
}
1.8数据类型
数据类型:Java是一种强类型语言,针对每一种数据都给出了明确的数据类型
数据类型分类:
A.基本数据类型
B.引用数据类型(类、接口、数组)
基本数据类型:4类8种
A.整数 占用字节数
byte 1
short 2
int 4
long 8
B.浮点数
float 4
double 8
C.字符
char 2
D.布尔
boolean 1
注意:
a.整数默认是int类型,浮点数默认是double类型
b.定义long类型数据的时候要加L或者l,建议加L
定义float类型数据的时候,要加F或者f,建议加F
1.9标识符
标识符:就是用来给包,类,方法,变量等起名字的符号
组成规则:
A.unicode 字符
数字字符,英文大小写字母,汉字(不建议使用汉字)
B.下划线 _
C.美元符 $
注意事项:
A.不能以数字开头
B.不能是Java中的关键字
常见命名规则:
a.包 (其实就是文件夹,用于对类进行管理)
全部小写,多级包.隔开
举例: com ,com.itheima
b.类
一个单词首字母大写
举例: Student ,Cat
多个单子每个单子的首字母大写
举例:HelloWorld
c.方法和变量
一个单词首字母小写
举例: age,show()
多个单词组成从第二个单词开始每个单词首字母大写
举例: maxAge,getAge()
public class BiaoShiFu{
public static void main(String[] args){
//数据类型 变量名=初始化值;
int a = 10;
int b2 = 20;
//int 2b = 20; 错误
//int class = 100; 错误
}
}
1.9类型转换
+:这是一个运算符,用于加法运算
我们在做运算的时候,一般要求参与运算的数据类型必须一致
类型转换:
隐式转换:
byte,short,char 默认转换int 更大long 有则float double
强制转换:
目标类型 变量名 = (目标类型)(被转换的数据);
建议数据做运算结果应该是什么类型就用什么类型接收,不随意转换,否则精度损失
public class TypeCastDemo{
public static void main(String[] args){
//定义两个变量
int a=3;
int b=4;
int c=a+b;
System.out.println(c);
//定义一个byte类型变量,一个int类型的变量,默认int
byte b1 = 2;
int c1 = 3;
System.out.println(b1+c1);
//我们直接输出这个结果是可以的,说明我们也应该可以接收这个数据
//我们要求数据类型一致,现在不一致,我们应该用什么类型接收呢
//隐式转换
int e1 = b1+c1;
System.out.println(e1);
//强制转换
byte d1 = (byte)(b1+c1); //可能损失精度
System.out.println(d1);
}
}