Java基本概念
Java的三大版本
-
JavaSE: 标准版,用于桌面开发,也是学习的起点
-
JavaME:嵌入式开发,没多少人用
-
JavaEE:企业级开发,服务器端的王者
JDK:Java Development Kit,学习java必备的开发工具
JRE:Java Runtime Enviroment
JVM:Java Virtual Machine这个虚拟机是java跨平台的关键
Java生态圈
Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大,Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。
作为一个平台,Java虚拟机扮演着举足轻重的作用。除了 Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、 JRuby、Kotlin等都是Java平台的一部分,它们依赖于Java虚拟机,同时,Java平台也因为它们变得更加丰富多彩。
作为一种文化,Java几乎成为了 “开源”的代名词。在Java程序中,有着数不清的开源软件和框架。如Tomcat、Struts, Hibernate, Spring等。就连JDK和JVM自身也有不少开源的实现,如OpenJDK、Apache Harmony。可以说,“共享”的精神在Java世界里体现得淋漓尽致。
作为一个社区,Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到Java的身影。其应用形式之复杂、参与人数之众多也令人咋舌。可以说,Java社区已经俨然成为了一个良好而庞大的生态系统。其实这才是Java最大的优势和财富。
配置环境变量:
我的电脑右键属性——高级系统设置——配置环境变量;
系统变量下点新建,变量名填入JAVA_HOME,变量值输入JDK的安装路径;
配置path变量,输入%JAVA_HOME%bin和%JAVA_HOME%\jre\bin
测试是否安装成功
cmd输入java -version
java安装目录下的文件夹用途:
- bin:存放了各种可执行程序,javac和java就放在这个目录
- include:放一些c、cpp的头文件
- lib:放一些补充的JAR包
- legal:放JDK各模块的授权文档
- db:db目录是一个小型的数据库。从JDK 6.0开始,Java中引入了一个新的成员JavaDB,这是一个纯 Java 实现、开源的数据库管理系统。这个数据库不仅很轻便,而且支持JDBC 4.0所有的规范。在学习JDBC时,不再需要额外地安装一个数据库软件,选择直接使用JavaDB即可。
常用DOS命令
打开命令行窗口的方式:
- win + r打开运行窗口,输入cmd,回车。
- 开始菜单点击。
- 任意文件夹下,shift+鼠标右键点击,在此处打开命令行窗口。
- 任意文件夹地址栏前输入cmd加空格。
操作 | 说明 |
---|---|
盘符名称: | 盘符切换。E:回车,表示切换到E盘。 |
dir(directory) | 查看当前路径下的内容。 |
cd itheima(change directory) | 进入同级的其他目录。用tab键可以自动补全 |
cd .. | 返回到上一级目录。 |
cd 目录1\目录2... | 进入多级目录。cd itheima\JavaSE |
cd \ | 回退到盘符目录。 |
rd 目录(remove directory) | 删除文件夹。 |
md 目录(make directory) | 创建文件夹。 |
cd>text.txt | 创建文件。 |
del>text.txt | 删除文件。 |
cls | 清屏。 |
exit | 退出命令提示符窗口。 |
ipconfig | 查看电脑ip地址。 |
ping www.baidu.com | 获取网站的ip地址 |
hello world程序:
public class hello(){
public class main(String args[]){
System.out.print("hello world");
}
}
在cmd中输入javac hello.java即可对源文件进行编译,编译会生成一个java.class的可执行文件。然后输入java hello即可运行。
Jshell
如果想要简单测试一些java语句,或者测试一些java的函数,比如1+1之类的,不需要写一个.java文件,直接在cmd窗口输入jshell就可以测试了。jshell的用法有点像python那样的解释性语言。
Java的特点
早期的Java是解释型的。现在Java虚拟机使用了即时编译器,因此采用Java编写的“热点”代码其运行速度与C++相差无几,有些情况下甚至更快。
在Java中,整型的范围与运行Java代码的机器无关。这就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题。与此相反,C和C++程序需要针对不同的处理器选择最为高效的整型,这样就有可能造成一个在32位处理器上运行很好的C程序在16位系统上运行却发生整数溢出。由于Java程序必须保证在所有机器上都能够得到相同的运行结果,所以各种数据类型的取值范围必须固定。Java没有任何无符号(unsigned)形式的int、long、short或byte类型。
浮点数值不适用于无法接受舍入误差的金融计算中。例如,命令System.out.println(2.0–1.1)将打印出0.8999999999999999,而不是人们想象的0.9。这种舍入误差的主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确地表示分数1/10。这就好像十进制无法精确地表示分数1/3一样。如果在数值计算中不允许有任何舍入误差,就应该使用BigDecimal类。
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。在C++中,数值甚至指针可以代替boolean值。值0相当于布尔值false,非0值相当于布尔值true。在Java中则不是这样。
命名规范:
- 类名称:每一个单词首字母大写
- 变量名:第一个单词小写,之后每个单词首字母大写,如studentName
- 方法名:同变量名,如printInfo()
- 常量名:每个字母都大写,如MAX
- 包名:每个字母都小写