黑马程序员——一、java基础之java初体验(1)
来源:互联网 发布:wind软件使用 编辑:程序博客网 时间:2024/05/20 03:06
---------------------- android培训、.java培训、期待与您交流! ----------------------
java初体验,在接触毕老师视频之前,我对java没有多少概念。而学习后,通过第一天的内容,让我知道了java是做什么的,用什么软件做的,以及那个黑乎乎的CMD窗口是做什么用的。这篇博文记载的是我学习毕老师java基础视频第一天内容之后的一些对java的认识。
什么是软件?什么是系统?什么是虚拟机?以下是我的一些浅显的比喻理解:
要说软件,就需要先有硬件的基础。以人为例,一个人必须出生后才有生命,有了硬件,随着生长学习不断地更新新的能力——软件。软件的重要性有多大?看一下植物人就知道了。不同的人擅长的领域不同,意味着有不同的软件来实现这些功能。
系统呢,可以理解为不同的国家、民族。不同地域的人之间是有不同的生长环境的,就是系统。比如美国和中国,中国地大人多,美国人员不那么密集;两国教育环境不同……这就是不同的系统。不同系统下人的功能大同小异,就好比今天linux、windows下都能上网,都能新建文件等。但是不同系统间是有根本性差异的。
虚拟机,可以理解为中国人在美国生活。本来,中国人和美国人语言不通,是不能交流的,但是一个中国人在学习了英语并且了解美国的文化后,可以很好地融入并生活在美国。中国人在美国生活,需要的是他对美国的语言和文化的调用。这就是虚拟机的作用,在不同系统下模拟出一个需要的环境并调用不同系统底层的资源。
不恰当的比喻,但是是我对这三大块简单的认识。
接下来,通过毕老师讲解的内容来详细了解java语言。
1.1软件开发
1.1.1、什么是软件?
软件:一系列按照特定顺序组织的计算机数据和指令的集合。使用计算机就是在使用软件,只有硬件没有软件的计算机只能作为武器防身。
常见的软件:系统软件,如DOS,windows,Linux等;应用软件,如扫雷,迅雷,QQ等
1.1.2、什么是开发?
顾名思义,就是制作软件。也是学习这门课程的最终目标之一。
1.2、人机交互方式
分为图形化界面:目前最常用的,包括windows及应用在其上的绝大多数软件;命令行方式:通过指令操作计算机,是以前的主要操作系统linux等常用的。
1.3、常用的DOS命令
dir : 列出当前目录下的文件以及文件夹
md : 创建目录
rd : 删除目录
cd : 进入指定目录
cd.. : 退回到上一级目录
cd/ : 退回到根目录
del : 删除文件
exit : 推出dos命令行
以下是自己对几个dos命令的小的测试:
1.3.1、cd命令
进入指定文件夹,书写格式 :cd 具体文件夹位置。
可直接进入指定的子文件夹。且可以使用“*”代替部分文件夹名称,如cd d:\Study\Edit*\day01,其中,Edit*为“EditPlus_3.4.1.1123”,因为书写麻烦,则用“*”代替部分内容,简化书写。
cd/和cd\功能一致,“/”和“\”无差别使用,包括进入子文件夹时,如cd Study/day01和cd Study\day01。
但是统一书写成为“\”为宜,为规范。
1.3.2、md命令
创建文件夹命令,书写格式:md 文件夹名称。
md可以创建文件夹,并且可以直接创建文件夹的子类文件夹,如md Study2\day01。此处不可以用“/”,如md Study/day01,提示“命令语法不正确”(区别于cd命令)。当已有同名文件时,如md Study,提示“子目录或文件Study已经存在”。
且md命令不受是否已经打开此文件夹影响。
实验:
接下来尝试md命令能否直接创建一个文件夹,并同时创建多个子文件夹。
使用“md Study2\day01;day02”和“md Stuey2\day01 day02”命令。
得出的结论是不能。且失败同时,也没有建立文件夹Study2.
1.3.3、rd 命令
删除文件夹命令,书写格式:rd 指定文件夹名称。
文件夹内有内容时不能直接删除文件夹。
疑问:rd Study2/day01命令返回提示“无效开关”的原因
实验:
接下来重新新建Study2文件夹,并且让文件夹内存在两个子文件夹day01和day02(day01和day02均为空文件夹),做出尝试。
rd命令不能使用*来删除所有子文件夹。
1.3.4、echo命令
创建文件命令,格式:echo 内容>文件名.文件类型
①创建文件时无同名文件,创建一个新的文件,并将文件内容写入。
②创建文件时如果已有同名文件存在,则将原文件内容替换。例:存在1.doc,其中内容为lisi,现在执行echo wangwu>1.doc,那么不会报错也不会新建一个1.doc文件,而是将wangwu替换原有内容“lisi”,1.doc内内容为“wangwu”。
异常:如果写成echo lisi>2.txt;kangri>1.doc,则文件内容更改为“lisi;kangri”;写成echo lisi>2.txt kangri>1.doc,则文件内容更改为“lisi kangri”。即第一个>后的内容从出现分号或者空格符开始读取,并将分号或者空格符写入。
③如果“echo 内容>文件名.文件类型”中内容为纯数字,负数可以正常写入文件,0和正数则返回提示“echo为打开状态”,文件内无数据(如果已存在文件且含有内容,原内容被清空)。此规则适用于创建和更改文件时。
④发现更改.doc文件时,如果此文件已打开,则返回提示“另一个程序正在使用此文件,进程无法访问”,命令无效;而更改.txt文件时,不会出现此提示,只是需要重启文件后才显示更改内容。猜测与不同类型文件自身的机制有关,不做深究。
1.3.5、del命令
删除文件命令,书写格式del 文件夹名称或者del 文件名称或者del *.文件类型。
①del命令是删除文件且只能删除文件,并且其删除的文件不进回收站。
②“del 文件夹名称”命令默认删除文件夹内所有类型文件;要想删除文件夹下指定类型文件(如.txt文件)使用del Study2\*.txt命令。
注意:第二种方法只能一次删除一种类型,del Study2\*txt;*.doc与del Study2\*.txt *.doc(为明显,“;”用的是中文分号,且空格加大,但是这两种格式中空格个数均不产生影响)均只能删除Study2中的.txt文件,然后从根目录下寻找,很容易删错文件。在根目录下可以使用此命令。
③“del 文件名称”命令可以删除指定的文件,可以使用“del 文件名.*”来删除不同类型的同名文件,且可以使用“del 文件名1.*;文件名2.*”来同时删除同一目录下, 文件名1和文件名2的不同类型的同名文件。
④发现删除.doc文件时,如果此文件已打开,则返回提示“另一个程序正在使用此文件,进程无法访问”,命令无效;而更删除.txt文件时,不会出现此提示,直接删除txt文件,如果将已经打开的.txt文件不做任何改动关闭,则被删除,如果做出改动,那么关闭之前会提示是否保存,直接保存也可以重新生成一个原名txt文件(猜测为原文件)。猜测与不同类型文件自身的机制有关,不做深究。
1.4、计算机语言
首先呢,我对语言的理解就是:语言的存在只有一个目的——交流。中国有不同的方言,而普通话是所有人都能听懂的,所以普通话就是我们需要学习的;和外国人交流就需要英语,因为英语普及范围广,而不会英语,我们也可以用肢体语言交流,比如,揍老外一拳就是告诉他看他不爽。。。
所以,学习编程就需要学习计算机能懂得语言,而语言的学习并不难,就像我们不是狗,但是也可以知道什么时候它们要咬人。
语言包括要学习的java语言的重点在于思想。
老外有可能永远都学不会,原来“我艹”除了表示愤怒还可以表示惊讶。
所以,我们重点要学习的是,编程的思想。
java语言的概述
是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。在网络兴起时推出,贡献极大。
是一种面向Internet的编程语言。
随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。此处的与平台无关是借助了java虚拟机(JVM Java Virtual Machine),而JVM是需要借助平台的。
1.4.1、语言的架构
以后的开发过程需要用JAVAEE,学习过程中使用JAVASE。
1.4.2、JRE、JDK
JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
1.5、环境变量的配置
配置环境变量原理:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找。
好处:将java工具所在路径定义到path环境变量中,让系统帮我们去找运行执行的程序,而不用每次去bin目录下查找使用。
配置方法:
配置jdk路径path:
(a)我的电脑→属性→高级→环境变量
编辑path环境变量,在变量值开始处加上java工具所在目录,后面用“ ; ”和其他值分隔开即可。
这种方法是永久有效的。为了不因经常移动jdk目录而经常改变path值,可通过3中的动态获取方式进行配置。
(b)临时配置方式:通过dos命令中set命令完成
set :用于查看本机的所有环境变量的信息。
set 变量名:查看具体一个环境变量的值。
set 变量名=:清空一个环境变量的值。
set 变量名=具体值:给指定变量定义具体值。
(c)想要在原有环境变量值基础上添加新值呢?
首先,通过%变量名%操作符获取到原有环境变量的值。然后加上新值后在定义给该变量名即可
举例:给Path环境变量加入新值
set path=新值;%path%l 注意:这种配置方式只在当前dos窗口有效。窗口关闭,配置消失为了不因为jdk的目录或者目录名称的改变,而不断更改path的值,而导致对path变量值的误操作,可以通过以下技巧完成。
新创建一个环境变量JAVA_HOME 记录住jdk的目录。
在path中通过%%动态的获取JAVA_HOME的值即可。
JAVA_HOME=F:\jdk1.6.0_01
path=%JAVA_HOME%\bin;%path%
%path%:动态获取path环境变量的值。
%JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值。
配置classpath
既然class文件(字节码文件)是java的运行文件,可不可以实现,在任意目录下都可以执行某一目录下的class文件呢?
根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中。
例:set classpath=c:\classpath变量值是java类文件的目录
JVM查找类文件的顺序:
如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。
值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次。
值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。
建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用“.”表示。
path和classpath的差异:
1、path变量是windows程序文件的路径;classpath是字节码文件的路径。
2、path是先查找当前路径,再找Path;classpath是先查找classpath中的路径,找不到时视设置情况决定是否查找当前。
1.6我的“Hello World”
最简单的java程序,第一次手打的java代码,纪念意义非凡。并且重要的是在简单的“Hello World”中,出现了错误,更值得纪念。
class Demo//定义类{public static void main(String[]args)//主函数作为入口必须存在,固定的格式 //简单的主函数格式在书写时出错,String错写成string,忘记加main{System.out.println("hello world");//输出语句}}/*看完了全部视频后再写hello world竟然出错,编程真的必须靠敲出来啊。简单的hello world写出来后, 真的很爽,是没写之前不能体会到的,尤其是出了错。*/
黑马能给我我需要的,所以,黑马,我来了!
——爱编程,爱黑马,我是快乐的小32
---------------------- android培训、.java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
- 黑马程序员——一、java基础之java初体验(1)
- 黑马程序员——Java之编程基础(一)
- 黑马程序员—Java基础(一)
- 黑马程序员——Java基础---基础语法(一)
- 黑马程序员——Java基础一
- 黑马程序员——Java基础(一)之Java概述
- 黑马程序员-----java基础一(之java配置)
- 黑马程序员 Java基础之API(一)
- 黑马程序员—java基础之集合
- 黑马程序员—java之基础加强
- 黑马程序员—JAVA基础之异常
- 黑马程序员—JAVA基础之集合
- 黑马程序员——Java基础语法(一)
- 黑马程序员——java基础加强(一)
- 黑马程序员——Java语言基础组成(一)
- 黑马程序员——Java语言基础(一)
- 黑马程序员——Java基础学习笔记(一)
- 黑马程序员——java基础--集合(篇一)
- 自定义SeekBar中progress无法覆盖background区域 解决方案
- javascript--正则表达式--更新中
- 字符串匹配问题(int countABC(* s) 输入任何一串字符串,计算机其
- 4A_Watermelon
- JAVA第十三弹(异常处理一)
- 黑马程序员——一、java基础之java初体验(1)
- 高并发数据计算器(这里是个人爱好,仅作分享)
- 怎么样让 LVS 和 realserver 工作在同一台机器上
- hpux-hp superdome 9000 升级微码
- try{}中return和finally{}
- .net 2010 chart控件绘制饼状图
- 自己实现的对象池
- 内存分析和优化总结
- 高并发数据缓存池(基于EHcache)