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目录介绍
- bin目录:存放Java的编译器、解释器等工具(可执行文件)。
- db目录:JDK7附带的一个轻量级的数据库,名字叫做Derby。
- include目录:存放的调用系统资源的接口文件。
- jre目录:存放Java运行环境文件。
- lib目录:存放Java的类库文件。
- 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类。
01 java开发前小知识的更多相关文章
- java开发必学知识:动态代理
目录 1. 引言 2. 代理模式及静态代理 2.1 代理模式说明 2.2 静态代理 2.3 静态代理局限性 3. 动态代理 3.1 JAVA反射机制 3.2 JDK动态代理 3.2.1 JDK动态代理 ...
- iOS APP开发的小知识(分享)
亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...
- 01.Java 开发简单的计算器
难度为一般,适合具有 Java 基础和 Swing 组件编程知识的用户学习一. 实验介绍1.1 实验内容本次实验利用Java开发一个可以进行简单的四则运算的图形化计算器,会使用到 Java Swing ...
- <Win10开发>一些小知识。
这篇文章分享一下UWP开发的一些零散的小知识. 1.设置应用的最小尺寸 主要用在PC上,UWA在PC可以被鼠标随意摆弄,可大可小,界面的响应式设计是一大特点.不过有些时候还是要考虑,我们的App界面元 ...
- java开发-前后端分离
众所周知,做java开发是后端的开发,我们时常与前端打交道,但更加注重后端代码的实现,前台的页面都是由前端开发人员做的,那么,是怎么做到前后端分离的呢? 首先,是后端的开发, 在mapper层:Stu ...
- java开发前的配置
JAVA语言是1995年由Sun公司退出的一门高级编程语言,在2009年4月20被ORACLE公司收购 看看java体系图
- 关于java的一些小知识(课程作业01)
1,在java源代码中加空格注释不会影响程序的编译速度. 2,一个java类文件中真的只能有一个公有类吗? 如果只在第一个public类里面定义实体,或者两个都不定义并没有报错且程序可以运行.每个编译 ...
- Java开发培训基础知识解析之反射机制
Java是老牌编程语言,是当前应用最广泛的编程语言之一.想要学习Java你就一定要掌握Java基础知识,而反射对于初学Java的人来说绝对是非常重要的知识点.什么是反射?如何理解反射机制?如何使用反射 ...
- ArcGIS Engine开发前基础知识(1)
ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现 ...
随机推荐
- 最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi
最新版CentOS6.5上安装部署ASP.NET MVC4和WebApi 使用Jexus5.8.1独立版 http://www.linuxdot.net/ ps:该“独立版”支持64位的CentOS ...
- 一个简单的Linq to TreeNode
最近两天写单元测试,碰到需要验证一个树是否是期望的,但是树这个结构要验证起来还真是有点烦... 我的树大概是这样的: class TreeNode<T> { ]; public TreeN ...
- 【Beta版本】七天冲刺——日志集合贴
No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 Day1 Day2 Day3 Day ...
- spring的AOP
最近公司项目中需要添加一个日志记录功能,就是可以清楚的看到谁在什么时间做了什么事情,因为项目已经运行很长时间,这个最初没有开来进来,所以就用spring的面向切面编程来实现这个功能.在做的时候对spr ...
- springMVC Aspect AOP 接口耗时统计
在接口开发中,我们通常需要统计接口耗时,为后续接口性能做统计.在springMVC中可以用它的aop来记录日志. 1.在spring配置文件中开启AOP <!--*************** ...
- 软媒魔方 v6.2.1.0 绿色纯净版及经典版
软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...
- 在canvas中使用html元素
让div悬浮于canvas之上 使用z-index控制层及顺序 慕课网canvas demo <div id="canvas-wrapper"> <canva ...
- Bzoj1597 [Usaco2008 Mar]土地购买
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4005 Solved: 1460 Description 农夫John准备扩大他的农场,他正在考虑N ...
- React Native 开发之 (01) 配置开发环境
一 React Native React Native 是由Facebook发布的开源框架,着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台.(Learn once, write an ...
- Day4-python基础之函数
本次学习内容: 字典查询快的原因 字符编码 函数定义 局部变量.全局变量 返回值 嵌套函数 递归(二分查找) 三元运算 map lamba 函数式编程 高阶函数 内置函数 字典查询快的原因: 字典占用 ...