黑马程序员_毕向东_Java基础_DAY01学习笔记

----------- android培训、java培训、期待与您交流! ------------

/*
黑马程序员_毕向东_Java基础视频教程——

0101-基本常识.avi
0102-Java的跨平台性.avi
0103-Java环境搭建(安装).avi
0104-Java环境搭建(环境变量配置).avi
0105-Java环境搭建(环境变量配置技巧).avi
0106-Java环境搭建(环境变量临时配置方式).avi
0107-Hello World.avi
0108-classpath配置.avi
0109-Hello World的组成部分.avi
0110-注释.avi

DAY01的学习中的主要包括计算机与java相关常识、java环境的安装与配置、初识java程序三个方面。
 */

一、计算机与java常识


【什么是软件?】

软件(software),一系列按照特定顺序组织的计算机数据和指令的集合。(三个关键点:数据+指令+组织顺序)
简单的说软件就是程序加文档的集合体。

台湾地区叫软体


【什么是系统软件、应用软件?】
windows、linux等
QQ等。


【什么是程序?】

程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。(指令的序列,描述了要完成相应的功能所需的指令步骤,告诉计算机先怎么做再怎么做)
数据结构+算法=程序

港澳台地区叫程式。

注意:程序不等于软件。

软件= 程序 + 数据 + 相关文档。

忽略文档的编写将造成所开发的软件维护困难----软件危机。


【什么是软件开发?】
简单说就是制作软件。


【人机交互】
使用软件的过程其实就是人机交互的过程。

人与计算机之间的交流互动的两种途径:

图形化界面: GUI(Graphical User Interface,GUI)
命令行界面: Command Line Interface,简写:CLI


【DOS命令】:

dir
cd   //cd命令中可包含通配符。
md
rd   //如果目录中有内容的话,则不可以直接删除目录,需要先将目录中的内容删除后再尝试删除目录。
del
exit


【什么是计算机语言】:人与计算机交流的方式。

java:SUN(斯坦福大学网络)公司1995年,面向网络internet。

简单易学,完全面向对象,安全可靠,与平台无关。

JAVASE JAVAEE JAVAME ---- 5.0


【java的跨平台性】:用java虚拟机JVM(Java Virtual Machine)作为java字节码与目标运行环境之间的桥梁,解释执行。-----一次编译,随处运行。

图灵     --- 人工智能之父   ----- 图灵机           ---  处理现实世界的抽象数据,解决一切逻辑问题。(已证)
冯诺依曼 --- 现代计算机之父 ----- 冯诺依曼体系结构 ---  二进制、存储程序、硬盘--内存--CPU


二、java环境的安装与配置


【java环境的搭建】:


安装jdk---配置环境变量---验证是否搭建成功

jre(Java Runtime Environment ,java运行环境):包含虚拟机、核心类库等
jdk(Java Development Kit,java开发工具包):包含jre、还有一些开发工具。

jdk下载地址:
官方:
www.oracle.com  // oracle首页,选择i am a .. java developer进入java页面,首页中也有jdk的下载链接。
java.sun.com    // SUN被Oracle收购,自动跳转到oracle主页中的java子页面中。

jdk中自带jre,所以安装了jdk之后可以考虑不再单独安装jre。

jdk的安装路径推荐使用不含中文和空格的纯英文路径,可以避免发生一些莫名其妙的问题。

只有java的安装过程和编译命令与系统有关------跨平台性。


【环境变量的配置】:

我的电脑--属性--高级--环境变量----选择/新建 环境变量名,修改/ 添加 环境变量值,点击确定。

jdk目录中各文件夹的作用:
bin:编译器与工具
demo:演示
docs:HTML格式的类库文档
include: 用于编译本地方法的文件
jre:java运行环境
lib:java类库
src:类库源文件


1. path变量配置


在path变量中添加jdk目录中的bin目录的所在位置  //为了在任意目录下应用bin目录中的开发工具。

环境变量名不区分大小写。

验证是否搭建成功 :java -version  查看java版本


配置技巧:定义JAVA_HOME:定义单独的java根目录变量,避免java根目录改变时需要重复修改path目录时发生误操作
JAVA_HOME=C:\jdk1.6.0_24
path=%JAVA_HOME%\bin;..............

path中可以不带‘.’,默认包含,且优先选择。

注意:每次修改完环境变量后,需要重开cmd窗口才能应用修改后的配置


【临时配置方法】: set命令

set可查看和修改环境变量值。

set查看所有环境变量
set path查看path的环境变量值
set path=新值,临时修改path变量
set path=新值;%path%,在原有基础上添加新值
set path=   清空环境变量

只在当前窗口和用start开启的窗口有效。


【classpath变量配置】

在系统里设置的classpath要包含.,即当前文件夹。如果没有则不能执行当前文件夹中的程序。
但在临时配置时,即使把classpath重置,依然默认包含着当前文件夹。
但临时配置的路径比默认的当前文件夹优先级高。

配置classpath时,如果结尾加分号,则在指定目录未找到的时候,在当前文件夹中寻找。

举例:
set classpath=             清空classpath,默认包含.
set classpath=.            似乎跟上面的一样
set classpath=c:\          设置类路径为c:\,不包含.
set classpath=c:\;         设置类路径为c;\,但包含.

注意:jdk在安装之后,为了方便使用,即使不设置classpath变量,java虚拟机依然可以准确的定位到jre中的lib类库,而不需要手动添加。但对于自己定义的包来说,则需要手动添加。对于class文件,需要指明文件所在根目录,如果class文件被打包成了jar格式,那么还需要jar文件的名称。


【path与classpath的一点区别】:
path默认先找当前路径,再找path路径。(默认包含,不可删除)
而classpath在指定了路径的情况下并在结尾加入了;的情况下,先在指定路径寻找,再在当前目录寻找。
如果在系统的classpath变量中,没有包含‘.’,则不寻找当前文件夹。

三、初识JAVA


一个源文件中可以包含多个类,但只可以包含一个public类。
源文件名可以与类名不同,但不符合编写规范。
如果包含public类,则要求文件名必须与public类名相同,大小写敏感(?)

实验:

实际文件名为Demo.java,包含public类Demo,用javac Demo.java也可编译,生成Demo.class;
实际文件名为Demo.java,包含public类Demo,用javac demo.java也可编译,生成Demo.class;
实际文件名为Demo.java, 包含public类demo,用javac Demo.java编译提示错误:应在demo.java中声明
实际文件名为Demo.java,包含public类demo,用javac demo.java也可编译,生成demo.class;

实际文件名为demo.java,包含public类demo,用javac demo.java也可编译,生成demo.class;
实际文件名为demo.java,包含public类demo,用javac Demo.java也可编译,生成demo.class;
实际文件名为demo.java, 包含public类Demo,用javac demo.java编译提示错误:应在Demo.java中声明
实际文件名为demo.java,包含public类Demo,用javac Demo.java也可编译,生成Demo.class;

总结:

(1)
windows系统下,文件名不区分大小写。即无论文件名是大写还是小写,用javac只要字母相对应就可以定位得到。
windows系统中同文件夹下也不会出现两个字母组合一样但大小写不同的文件。
而Linux操作系统是区分大小写的。

(2)
在java编程规范中,类名首字母应为大写,文件名应与公有类名完全相同。在此情况下不会发生问题。
但即使不按照编程规范书写(类名小写),也可通过编译并正常使用。
在windows系统中,只有文件名、编译目标文件名二者都与类的实际文件名大小写不同的情况下才会发生编译错误。


源文件修改之后需要重新编译。



【Hello World总结】:

main方法是程序的入口。非public类也可以含有main方法(比如用于单元测试),与此相对应的,public类也可以不含有main方法。

文件名必须与public类名相同,但如文件中没有public类,则不用与某个非public类名相同,可以任取,而且不强制要求符合命名规范(虽然规范是要求的)。编译出来的class文件以类名命名,与文件名无关。

main方法必须是public的,不然运行时会提示main方法不是public的。(1.4之后)

main方法必须是static的,因为只有这样JVM才能在无任何对象的情况下访问main方法。

main方法不能有返回值,必须是void。

main方法的参数String[] args中间可以无空格,如写成String[]args。args可以任意取名。如写成String sb[]的形式。

main方法可以如同一般方法一样被其他方法调用。



【关于注释】

// 这是单行注释

/* 这是多行注释
可以跨越多行
但是不可以嵌套使用
*/

java的特殊注释方法: 文档注释。使用javadoc.exe进行编译为一个网页文档。/** 文档注释可用于自动生成文档。 */

注释主要用于增加程序的可读性,提高程序的可维护性,一个合格的程序员一定要注意注释的使用,完全不用注释是大忌,但也不要用得太多。

写程序,刚上手不一定要埋头敲代码,可以先写一个多行注释,标示一下需求、思路、步骤等,理一下思路,同时增加了程序的可读性。
同时注释也可以用于调试程序。

注释不会被虚拟机编译,因此不用担心编写大量注释会增加编译后的字节码的体积。


thinking in java风格的注释:

//: 代码开头标注文件相对路径与文件名
//  文件用途

}/* Output:
结尾标注预期/实际运行结果
可以让程序的功能变得更加直观
这个貌似不错
后面的那堆冒号波浪线神马的貌似是标注程序结尾用的
书里也没做过解释
*///:~

/* 用星号标注连续的多行注释
 * 让注释变得更醒目
 * 这也是一种不错的编程习惯

 * Eclipse可以自动实现这个功能

 *///:~


----------- android培训、java培训、期待与您交流! ------------

你可能感兴趣的:(黑马自学课程)