Java发展史
Java语言始于1991年,由sun公司带领的开发小组进行开发,Java曾用名“oak”,后来才改为Java;
1995年,Java语言被大量用于浏览器开发;
并在1996年发布了第一个Java版本:Java 1.0;
1998年,推出J2SE、J2ME、J2EE三个版本;
1999年,发布了Hotspot虚拟机;
2004年Java语言实现里程碑跳跃,从原来的1,5版本直接跳跃到5.0版本;
2005年sun公司将J2SE、JSEE、J2ME改名为Java SE、Java EE、Java ME;
2006年,sun公司宣布JDK开源;
2009年sun公司被Oracle公司收购;
2017年,Oracle公司将Java EE移交给开源组织,就是Java EE更名为Jakarta EE(雅加达);
2018年发布了Java 11 LTS稳定版本。
Java三大平台
Java SE:以前称J2SE,是允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序(Java SE是做电脑上运行的软件);
Java EE:以前称J2EE,开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序;(Java EE是用来做网站的)
Java ME:以前称J2ME,为在移动设备坏人嵌入式设备上运行的应用程序提供一个健壮且灵活的环境;(Java ME是做手机软件的)
Java三大平台
(注:JDK面向开发人员)
1、JDK(Java Development kit)Java开发工具包
(1)编译器
(2)解释器
(3)源代码
2、JRE(Java Runtime Environment)Java运行环境
(1)源代码
(2)JVM
3、JVM(Java Virtual Machine)Java虚拟机
Java语言跨平台的原理
不同平台编译Java代码从而生成的字节码文件(.class)是相同的,但是字节码不能直接运行,必须通过不同平台对应的JVM翻译成机器码才能运行,这个过程是不需要Java程序进行任何改变的,只需要通过对应平台需要的JVM就行实现运行。
Java程序执行的过程
分为编辑、编译、运行三大步骤:
编辑:编写Java源代码xxx.java;
编译:编译xxx.Java生成字节码文件xxx.class;
运行:JVM中的类加载器加载字节码文件(xxx.class),JVM中的执行引擎找到入口方法main(),执行其中的方法;
Java文件和class文件的区别
Java文件是当前正在或已经编写好的文件,后缀为.Java;
class文件是.Java文件进行了编译后生成的文件,后缀为.class;
安装JDK后为什么要配置环境变量
安装JDK并打开cmd后,直接使用javac命令是不可行的,因为系统还并不知道javac这个编译程序在哪里,通过在环境变量中添加javac编译程序的目录使系统能够找到javac命令。
idea卸载:
安装时后缀为exe的需要双击uninstall.exe进行卸载;
安装时后缀为Zip的直接删除。
Javac和Java的区别
编译是对源代码进行编译
javac.exe是编译程序,Java.exe是执行程序。
javac是编译命令,将Java源文件编译成.class字节码文件;
Java是运行字节码文件,如Java hello;
编译遇到的问题
左红圈是通过win+R打开的cmd窗口,默认是当前用户目录,右红圈是在Hello.java目录下打开的cmd窗口,默认是code目录。
运行遇到的问题
运行需要如右红圈,在源代码目录下运行。
idea使用的注意点
1、idea不可以在同目录(一个包)下写同名文件,但可以在不同的包写同名的文件(包:package,类:class)
每个包都有独立的命名空间
2、(1)编写程序需要使用注释来对某行代码进行注释,注释能更好让整个程序被理解,注释也可以隐藏有问题或者编写以后不需要的代码。书写单行注释可以使用//+注释的内容;书写多行注释可以使用/*+注释的内容+*/。
(2)增强文档注释:Java语言提供了一种强大的注释形式:文档注释。通过JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一份系统的API文档。(Javadoc默认只处理public或者protected修饰的内容)
3、分隔符:Java语言中对语句的分隔是使用“;”来完成,一个语句可以跨越多行,但是一个字符串、变量名不能跨越多行;
代码块:“{......}”,花括号里代表的是一个代码块,逻辑上是一个整体;
方括号:“[......]”,主要用于访问数组元素,方括号通常紧跟在变量名后面,方括号里指定希望访问的数组元素的索引;
圆括号:“(......)”,定义方法时必须使用圆括号来包含所有的形参声明,调用方法也必须使用圆括号来传入实参值,圆括号还可以改变计算的优先顺序以及作为强制类型转换的运算符;
圆点:“.”通常作为类/对象和它的成员(包括成员变量、方法和内部类)之间的分隔符。
4、关键字:定义标识符时,不要让标识符和关键字相同。
计算机四大核心
CPU 运算
内存 运算+存储(临时存储)
硬盘 永久存储
网络 与外界交换数据、数据通信
数据类型(四类八种)
数值
整数:
byte(存储范围:-2^7~2^7-1)
short(存储范围:-2^15~2^15-1)
int(存储范围:-2^31~2^31-1)
long(存储范围:-2^63~2^63-1)
byte、short、int、long的区别:存储空间的大小和取值范围不同
浮点数:
float(存储范围32比特):单精度浮点数
double(存储范围64比特):双精度浮点数
字符
char:例如:'A',字符型值必须使用单引号(')括起来
布尔
Boolean:用于判断逻辑真假,一般用于if、while、do...while...、for、(?:)中
类型转换:
自动类型转换:把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量的过程(该过程在等号右边,变量左边不需要加(数据类型));
强者类型转换:把一个表数范围大的数值或变量直接赋给另一个表数范围小的变量的过程(该过程在等号右边,变量左边不需要加(数据类型));
表达式类型的自动提升:
当一个算术表法师包含多个基本类型的值时,整个算术表达式将会发生自动提升。(整个算术表达式的数据烈性自动提升到与表达式中最高等级操作数同样的类型)
运算符
位运算符:
&:按位与;
|:按位或;
~:按位非;
^:按位异或;
<<:左移运算符;
>>:右移运算符;
>>>:无符号右移运算符
逻辑运算符:
&&:与,前后两个操作数必须都是true才返回true,否则返回false;
&:不短路与,作用与&&相同,但不会短路;
||:或,质押奥两个操作数中有一个是true,就可以返回true,否则返回false;
|:不短路或,作用与|相同,但不短路;
!:非,只需要一个操作数,如果操作数为true,则返回false,如果操作数为false,则返回true;
^:异或,当两个操作数不同时才返回true,如果两个操作数相同则返回false。
三目运算符:
只有一个:?:,语法如下:
(expression) ? if-true-statement :if-false-statement;
计算机单位
最小的单位:比特 一个bit只能存储一个0或者一个1;
最小的存储空间:每八个bit是一个存储空间,称为byte(字节)
BIT、B、KB、MB、GB、TB、PB分别是什么单位,换算是什么
bit:比特;
b:byte(字节);
kb:千字节;
mb:兆字节;
gb:吉字节;
tb:太字节;
pb:拍字节;
1b=8bit;
1kb=1024b;
1mb=1024kb;
1gb=1024mb;
1tb=1024gb;
1pb=1024tb;