01. Java 入门
1 Java jdk环境配置和第一个App
1.1 行业信息
-
java 官网
http://www.oracle.com -
行情类(目前主流技术)
https://www.open-open.com/project/ -
技术类
https://juejin.im/
https://stackoverflow.com/(英文)(了解)
https://github.com/
1.2 计算机语言发展(B)
1.3 Java语言发展(B)
1.3.1 java语言为什么流行?
外部环境
互联网的爆发式发展
互联网上的电脑硬件不同,软件环境差异较大。需要一个跨平台的语言。
1.3.2 JAVA核心优势
跨平台
1.3.3 Java的三个版本(B)
-
J2EE (JAVAEE)
Java 2 Enterprise Edition:
定位在服务器端的应用 -
J2SE (JAVASE)
Java 2 Standard Edition
定位在个人计算机上的应用 -
J2ME (JAVAME) 很少使用
Java Edition
定位在消费性2 Micro电子产品的应用上
1.4 JVM(JAVA VIRTUAL MACHINE) (A)
1.4.1 jvm概念
jvm 是虚拟的用于执行字节码(bytecode)的计算机。jvm可以通过软件实现,也可以通过硬件实现。
java程序编译成字节码(.class)后直接给不同平台的jvm执行,jvm屏蔽了各个平台的差异,并形成一套规范。
1.4.2 跨平台解决方案(B)
1.5 Java开发环境配置(A)
1.5.1 jdk/jre/jvm关系
在java开发中,jvm、运行时类库、编译和运行工具统称为java development kit(JDK)
- JDK=开发工具+运行工具
- JDK = java开发工具 + JRE
- JRE(Java Runtime Environment) = jvm + 运行时类库
jdk安装参考安装文档
1.5.2 java环境变量的配置
-
JAVA_HOME:用于配置jdk的安装目录。
-
PATH(执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件)将 “%JAVA_HOME%\bin” 增加到path中;多个目录用分号隔开。
-
CLASSPATH:类的加载路径
其实,如果使用1.5以上版本的JDK,完全可以不用设置classpath环境变量就能正常运行程序。因为1.5版本以上JDK有一个功能,它会自动搜索当前路径下的类文件,而且使用Java的编译和运行工具时,系统可以自动加载dt.jar(是关于运行环境的类库,主要是swing的包)和tools.jar(是关于一些工具的类库)文件中的Java类,因此不再需要设置classpath环境变量了。
但是其之前的版本并没有这样的功能,所以我们会看到网上会有这样的配置:.;C:\ProgramFiles\Java\jdk1.7.0_05\lib\dt.jar;C:\Program Files\Java\jdk1.7.0_05\lib\tools.jar;
这个配置中前面一点表示当前路径,另外是将dt.jar和tools.jar两个文件添加到classpath环境变量里。
我的电脑->属性->高级系统设置->环境变量
1.6 第一个Java App(A)
基本的控制台命令(新建一个文件夹存放java文件,按shift+右键可打开控制台,java -version
查看是否安装成功。)
命令 | 意义 |
---|---|
F: | 切换到F盘 |
cd 目录 | 进入指定目录 |
cd .. | 返回上级目录 |
Tab x | 查询x开头的文件并快速输入 |
上下键 | 翻阅之前的输入 |
dir | 罗列当前路径的子目录或文件 |
... | ... |
1.6.1 第一个程序
安装Notepad++,修改设置,首选项
新建一个文件存放代码
Test.java 代码
public class Test{
public static void main(String[] args){
System.out.println("hello world");
}
}
保存代码,命名为Test.java(和类名一致),打开控制台编译Test.java 源程序
运行Test程序
1.6.2 程序结构
// 完整的程序结构 Demo02.java
public class Demo02{
public static void main(String[] args){
}
}
1.6.3 第一个App可能出现的问题(C)
[1]java 程序严格区分大小写。只要是编程语言,都区分大小写。
[2]java每条语言必须写在一行,且以分号结束。
[3]...
1.6.4 程序排查错误
1.6.5 控制台输出
System.out.println(“xx”) 输出后换行
System.out.print(“xx”) 输出后不换行
public class Demo03{
public static void main(String[] args){
System.out.println("hello");
System.out.println("hello2");
System.out.print("hello");
System.out.print("hello2");
}
}
1.6.6 转义字符
在java中,控制台输出时用双引号(“”),双引号引起来的内容都会被原样输出。如果要输出双引号本身,需要对特殊意义的双引号(“”)进行转义,使用转义字符 \。
其中有些字符在键盘上不能直接在程序中输出,例如换行、Tab键等,也需要用转义字符表示。
符号 | 意义 |
---|---|
\” | 表示双引号 |
|表示\ | |
\n | 表示换行 |
\t | 表示制表符 |
public class Demo04{
public static void main(String[] args){
System.out.println("http:\\\\www.baidu.com\\");
System.out.println("张三说:\"你好\"");
System.out.println("hello\nworld");
System.out.println("aaaaaaaaaaaa");
System.out.println("hello\tworld");
System.out.println("hell\tworld");
System.out.println("hellabcd\tworld");
System.out.println("中国中国\tworld");
}
}
1.6.7 注释(C)
[1]单行注释
//
[2]多行注释
/*
、、、、
、、、、
*/
public class Demo05{
public static void main(String[] args){
// 输出我的姓名
System.out.println("张三");
// 输出同桌的姓名
System.out.println("李四");
/*
System.out.println("张三");
System.out.println("李四");
System.out.println("王五");
*/
}
}
[3]文档注释 (C)
用于注释类、接口或者方法等
/**
*
*
、、、
*/
/**
* 我的第一个Java App
* 程序主要输出hello world
* @author kallen
* @since 2000-01-01 9:00:00
*/
public class Demo06{
/**
* 程序的入口
* @param String[] args 程序执行时携带的参数
* @return 无返回值
*/
public static void main(String[] args){
System.out.println("hello world");
}
}
作业