01 java开发前小知识

1.常见的dos命令

盘符: 进入指定的盘符下。

dir : 列出当前目录下的文件以及文件夹

md : 创建目录

rd : 删除目录    注意:rd不能删除非空的文件夹,而且只能用于删除文件夹。

cd : 进入指定目录

cd.. : 退回到上一级目录

cd \ : 退回到根目录

echo "hello java">a.txt  写入文本到指定文件 

type a.txt 显示文件内容命令

del : 删除文件    注意:不能删除文件夹,只能删除文件。

exit : 推出dos命令行

cls  : 通知计算机将当前的命令清空

*:  是通配符。

tab  命令补全。

方向键上下是找回上次你写过的命令。

2. 跨平台

即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。Java的跨平台是通过Java虚拟机(JVM)来实现的。

3. Java虚拟机(JVM:Java Virtual Machine)

jvm在整个jdk中处于最底层,负责于操作系统的交互,用来屏蔽操作系统环境,提供一个完整的java运行环境,因此也就虚拟计算机。Java源程序想象成我们的C源程序,Java源程序编译后生成的字节码(.class)就相当于C源程序编译后的二进制可执行文件。JVM虚拟机相当于计算机系统(操作系统+硬件环境),Java解释器相当于CPU。

.exe文件直接在windows操作系统下运行,在CPU上运行的是机器码(.exe文件)

.class字节码文件是运行在JVM虚拟机下的,在Java解释器上运行的是Java字节码。

Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一 个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台 下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

4.JDK目录介绍

  1. bin目录:存放Java的编译器、解释器等工具(可执行文件)。
  2. db目录:JDK7附带的一个轻量级的数据库,名字叫做Derby。
  3. include目录:存放的调用系统资源的接口文件。
  4. jre目录:存放Java运行环境文件。
  5. lib目录:存放Java的类库文件。
  6. src.zip文件:JDK提供的类的源代码。

安装JDK需要注意的事项:1、安装路径中不要包含中文。2、安装路径中不要包含空格。

JRE (Java Runtime Environment Java)运行环境。包括Java虚拟机和Java程序所需的核心类库等,如果要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JRE = JVM + 核心类库

JDK = JRE + java开发工具(Java编译器等)

5.配置path环境变量

编译的过程中面临的问题:每次编译的时候都需要写上java源文件的完整路径()。 烦!

解决方案: 如果可以在任意的路径下都可以找到java的开发工具,则该问题就解决了。

目前在控制台窗口下只能在jdk安装目录的bin目录下才能使用jdk的开发工具在控,如果想制台窗口下想要在任意目录下都可以使用javac与java或者jdk其他的开发工具那应该怎么做呢?

5.1.在dos窗口敲上javac

我们在随意的一个目录敲javac或者java命令时候,发现dos窗口显示这个不是内部命令,然后我们在上面敲上notepad命令时,打开了一个记事本的程序,但是在当前目录下页没有存在notepad.exe的可执行文件,那么为什么能启动呢?

错误原因:原来在dos窗口上写上一个命令时候,如果在当前目录下找不到指定的可执行文件,那么它会根据path环境变量保存的路径去搜索是否存在这个可执行文件,如果存在则启动该程序,否则就没有这个命令。

5.2.解决方法:

1、  进入jdk的安装目录的bin目录。

2、  在dos命令上敲javac。(如果出现了以上的图信息则配置成功)

5.3 为什么要配置path环境变量: 在任意的路径下都可以找到java的开发工具

5.4 javac 生成的.class 文件的名称取决于类名,跟.java名没有关系。

6 .classpath环境变量: 设置了class文件的路径信息。

6.1. classpath的引入:

编译好的Hello.class文件在F盘,当前路径在E盘,直接输入命令

Java Hello运行class文件时,报错,找不到类。。。。

6.2解决:

既然class文件(字节码文件)是java的运行文件,可不可以实现,在任意目录下都可以执行某一目录下的class文件呢?根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中。例如set classpath=F:\ 但是这设置的是临时变量。如何能一劳永逸呢?设置classpath环境变量

要使用已经编写好的类,前提当然是能够找到它们了。(1)当没有设置classpath环境变量的时候,启动jvm(java虚拟机)的时候,那么java虚拟机就会在当前路径下寻找对应的class文件。(2)设置了classpath环境变量的时候,jvm就会根据classpath环境变量所保存路径信息下去寻找对应的class文件。

设置classpath环境变量信息的有分号与没有分号 的区别:分号相当于当前路径。1. 如果配置classpath环境变量信息没有加上分号,那么JVM仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜索了。2. 如果配置classpath环境变量信息加上分号,那么JVM除了会在classpath所保存的路径下去搜索对应 的class文件之外,如果能找到对应的class文件.那么就马上指定对应的class文件,否则还会去 当前路径下去搜索。

7.Java是编译型语言还是解释型语言?

编译型语言:源程序经过编译之后,生成系统可直接运行的二进制文件的语言.

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,

但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型.

8.JVM是以什么形式存在的,是包含在jdk中吗?他的文件叫什么名字?

在jdk里面,是javaw.exe,因为每次eclipse启动,都有javaw.exe这个进程.Jvm是java程序运行的环境,但是他同时一个操作系统的一个应用程序一个进程,因此他也有自己的运行的生命周期,也有自己的代码和数据空间.操作系统装入jvm是通过jdk中java.exe来完成,通过下面4步来完成jvm环境. 1.创建jvm装载环境和配置 ;  2.装载jvm.dll ;  3.初始化jvm.dll并挂界到JNIENV(JNI调用接口)实例;  4.调用JNIEnv实例装载并处理class类。

时间: 2024-10-10 02:13:31

01 java开发前小知识的相关文章

java开发必学知识:动态代理

目录 1. 引言 2. 代理模式及静态代理 2.1 代理模式说明 2.2 静态代理 2.3 静态代理局限性 3. 动态代理 3.1 JAVA反射机制 3.2 JDK动态代理 3.2.1 JDK动态代理 3.2.2 JDK动态代理与限制 3.4 CGLIB动态代理 4. 动态代理在Spring的应用:AOP 4.1 AOP 概念 4.2 AOP编程 4.2.1 引入aop依赖 4.2.2 定义切面.切点与通知 5. 总结 参考资料 往期文章 一句话概括:java动态代理通过反射机制,可在不修改原代

java开发前的配置

JAVA语言是1995年由Sun公司退出的一门高级编程语言,在2009年4月20被ORACLE公司收购 看看java体系图 来看看一些专业术语: JVM:JAVA虚拟机 那么JVM是怎么工作的呢.看一幅图 是不是还是不知道什么是编译器.什么是字节码.什么是解释器.好吧.在看一个图片 在看看JDK,JRE JDK:没有JDK就没办法进行java程序的开发 JRE:如果想运行一个java程序.就需要安装JRE 从下图中可以看JDK.JRE.JVM之间的关系,当安装了JDK后.就已经包含了JRE和JV

Java Web实用小知识01

${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此, 发现在项目的一个文件内有这样一段话的配置<c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的时候一定不要忘记把带有该配置的

java中一些小知识和面试问题

抽象类的总结几点: · 抽象类与普通类相比最大的不同只是在于抽象类之中存在有抽象方法,所以在抽象类之中依   然可以定义属性.构造方法等 · 抽象类声明时不允许使用 final,抽象类必须要求有子类,而 final 定义的类是不能够有子类的. · 抽象类之中即使没有抽象方法,那么也不能够被直接实例 JAVA 中的主方法可以说创造了一个长的之最,其组成有许多的关键字,下面来分析每一个关键字:  · public:指的是公共的:  · static:使用 static 定义的方法必须由类名称调用: 

ArcGIS Engine开发前基础知识(1)

ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现的功能主要有地图的基本操作.信息查询.专题地图制作.数据编辑.网络分析.空间统计分析.三维分析等. 1.地图的基本操作 地图的基本操作主要包括加载矢量.栅格数据,浏览缩放地图,保存地图,在地图上显示文本注记,绘制点线面几何体等. 2.信息查询 信息查询主要通过矩形圆形或多边形来选中地图上的要素,或者

Java代理的小知识

这篇博客主要是看了一位大牛的博客所写的,该大牛写的是数据库连接池的实现,看了他的代码,顿时觉得很牛牛.所以在这里我也记录下我自己的demo,虽然不提倡重复造轮子,但是很多时候我们在重复造轮子的过程中才会有技术的提高,所以在这里我就重复造下轮子吧 这篇博客主要写的是关于Java动态代理的一个demo 情景如下: 在LOL游戏中,有个现象是代练的问题,实际游戏账号者会请代练,而这个代练在这里就是代理,帮实际游戏账号者进行帮打晋级赛的活动 UML图我就不画了,目前对这方面的知识还没去学,打算过段时间再

Java 字符串比较小知识

使用 String.compareTo 方法: compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序). 1.如果字符串相等,返回值0. 2.如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值,前字符串的值小于后字符串:正值,前字符串大于后字符串). 3.如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度. String

ArcGIS Engine开发前基础知识(4)

ArcGIS不同开发方式的比较 关于GIS应用软件的开发,通常有三种方式:C/S架构.网络GIS和移动GIS.ArcGIS平台提供了对三种开发方式的支持,对于采用从C/S架构的大多数开发者来讲,首先想到的是ArcGIS Engine进行开发.实际上,并不是所有的系统都必须采用这种方式,上述的三种开发方式(VBA.DLL和Add-in)在很多的时候也可以考虑. 作为VB的子集,VBA方式采用Visual Basic语言规范,简单易学,开发者只需要关注自己需要而ArcGIS没有直接提供的功能.对于广

web 开发相关小知识笔记

1.MySQL命令行下执行.sql脚本详解http://database.51cto.com/art/201107/277687.htm 在可视化工具里导出.sql脚本 --> 放命令行里运行 --> source + .sql文件的绝对路径 2.可以主动制造空指针来查看整个调用过程. 3.查看 AJAX 异步请求 4.卧槽这样也行... (返回一个JSON 5.还有这操作 6.Eclipse --> webApp 的对应关系 7.记一次 DEBUG :依然是 IDEA 的锅, 某连接数