Java学习day01
1、Java的种类:
JavaSE(Java标准版)
JavaEE(Java企业版)
JavaME(Java微型版)
其中,JavaSE是基础,以后的方向是JavaEE(Java企业版)
2、什么是JDK?
* Java Development Kits
* Java开发工具箱【Java开发必备】
* 可以从Oracle的官网上下载。http://www.oracle.com
* 目前2016-08-30最高版本Java8【Java SE 8u101 / 8u102】
* 下载JDK的时候需要注意:JDK的版本,不同的操作系统需要安装不同版本的JDK。
下载网址:http://www.oracle.com
3、Java分三大块:1999年
* J2SE【Java的标准版本】:
基础,无论是以后走EE还是ME,SE是必须要精通的。
J2SE是SUN公司为java程序员准备的一套“基础类库”,这套基础类库学习之后,可以完成最基本的操作,
例如,文件的读写、线程的控制....
* J2EE【Java的企业版本】:
这是SUN公司为程序员专门准备的一套“类库”,这套类库可以协助程序员完成企业级软件的开发
企业级软件:OA办公系统、进销存系统、超市系统.......
* J2ME【Java的微型版本】
这是SUN公司为java程序员专门准备的另一套“类库”,这套类库可以协助程序员完成微型设备的嵌入式开发,
Java最初就是做微型设备嵌入式开发的。
4、关键术语:
* JDK【Java开发工具箱】
* JRE【Java的运行时环境】
* JVM【Java虚拟机】
三者之间的关系:
JDK 中包含JRE,JRE中包含JVM。
Java的底层是C++,不是C语言。
5、Java语言特性:
* 跨平台/可移植
- 有一种特殊的机制:JVM
- Java程序并没有和底层的操作系统直接交互,java程序实际上运行在jvm当中,JVM屏蔽了操作系统之间的差异。
- 但是有一个前提:不同的操作系统中必须安装不同版本的JVM。
- 在可移植性方面表现非常好,一次编译,到处运行。
- 但是为了达到可移植,必须提前在操作系统中安装JRE,JRE有了之后才会有JVM。【JVM不能单独安装】
这方面体验不是特别好。
* Java号称:开源、免费、跨平台、纯面向对象。
- 开源:开发源代码,SUN公司编写的java类库的源代码普通程序员能看到。众人拾柴火焰高。
这样java程序会很健壮。很少的BUG【漏洞/陷阱】
- 免费
- 跨平台:依靠JVM机制【java程序不和操作系统交互,java程序运行在JVM中,JVM和操作系统交互。】
不同的操作系统有不同版本的JVM。
- 面向对象:人类在认识现实世界的时候多数是以面向对象的方式认知的。
* 简单性:
* 这里的简单说的是相对于C语言来说的。
* 例如:C语言当中有指针,C++中多继承
* java取消了指针的概念,取消了多继承,只支持单继承。
.....
* java支持多线程
* java中还有一种特殊的机制:自动垃圾回收机制。GC机制。
【java运行过程当中有一个“垃圾回收器”一直在守护者。】
6、Java的加载与执行:一个完整的java程序
* Java开发的整个生命周期,包括两个重要的阶段,分别是:编译阶段和运行阶段
* 编译生成的程序被称为:字节码程序。编译生成的文件是:xxx.class文件
* 编译和运行可以在不同的操作系统中完成。
* 程序员在xxx.java文件中编写源代码,源代码必须符合java的语法,这些源代码就是高级语言。
存放源代码的文件被称为源文件。
* 过程:
编译期:【在windows环境中完成】
- 安装JDK,配置环境
- 在硬盘的某个位置创建一个xxx.java源文件
- 打开源文件,在该文件当中编写符合java语法的源程序,然后保存。
- 使用JDK中自带的javac.exe命令对以上的java源程序进行编译。
* 编译通过:说明语法没有问题
- 在硬盘上生成一个或者多个字节码文件【xxx.class】
* 编译失败:说明源程序某个位置不符合java语法格式。
* 编译的语法格式:打开DOS命令窗口,输入:javac 源文件路径
注意:
- 源文件路径可以是绝对路径,也可以是相对路径。
- 编译之后,其实java源文件删除不会影响程序的执行。
- 最好不要将java源文件删除,因为程序最终运行效果不是预期效果的时候,需要
重新修改java源代码,然后进行重新编译生成全新的class字节码文件,再重新运行
字节码程序。
---------------------------------------------------------------------------
运行期:【可以不在windows中完成,可以换一个操作系统,但前提是该操作系统中已经安装java的运行时环境】
- 打开命令窗口,在命令窗口中使用java.exe命令运行java程序,语法格式:
java 类名
注意:java这个命令使用的时候,java命令后面不是文件的路径。必须是一个“类名”。
例如:
java Hello
java Student
java User
java Product
- 以上程序的执行原理:
* java.exe命令执行会启动:JVM
* JVM启动之后,马上启动“类加载器-Class Loader”
* ClassLoader负责去硬盘的“某个位置”上搜索“类名.class”字节码文件。
* 找不到这个.class文件,一定会出现程序异常现象。
* 找到了这个.class文件之后将.class文件转换成"二进制",操作系统可以直接识别二进制,
操作系统执行二进制码和底层的硬件平台进行交互。
7、什么是类名?
* 假设硬盘上有一个文件,叫做Hello.class,那么类名就叫做:Hello
* 假设硬盘上有一个文件,叫做Student.class,那么类名就叫做:Student
* 假设硬盘上有一个文件,叫做User.class,那么类名就叫做:User
* 假设硬盘上有一个文件,叫做Product.class,那么类名就叫做:Product
17、开始第一个java程序的开发
* JDK下载
* JDK安装
- 只安装了JDK,独立的JRE没有安装
* 在硬盘的某个位置上新建一个java源文件:HelloWorld.java
* 在HelloWorld.java文件中编写源代码
* 打开命令窗口,使用javac命令进行编译:
javac 源文件路径
出现以下错误:
C:\Users\Administrator>javac
'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
怎么解决?
第一种方案:切换到javac.exe文件所在的目录,这个时候使用javac.exe不会出问题,但是这种方式比较麻烦。
第二种方案:配置环境变量path,配置完成后,需要退出并重新运行DOS,才能使用javac.exe
原理:windows操作系统在查找某个命令的时候是怎么查找的?
* 首先会从当前目录下找这个命令
* 当前目录下不存在这个命令的话,会去环境变量path指定的路径当中查找该命令。
* 还是找不到则出现错误提示信息。
- path环境变量隶属于windows操作系统,和java无关,这个环境变量主要用来指定命令的搜索路径。
环境变量怎么配置?
计算机 --> 点击右键 --> 属性 --> 高级系统设置 --> 环境变量
环境变量配置包括用户级别和系统级别
任何一个环境变量都有变量名和变量值,例如path环境变量:
变量名是:path
值:路径【多个路径之间必须采用分号隔开,而且要求分号必须是半角分号】
path=C:\Program Files (x86)\Java\jdk1.7.0_75\bin;otherpath;otherpath.....
编译1【绝对路径】:D:\course\JavaProjects>javac D:\course\JavaProjects\02-JavaSE\day01\HelloWorld.java
编译2【相对路径】:D:\course\JavaProjects>javac 02-JavaSE\day01\HelloWorld.java
编译3【相对路径】:D:\course\JavaProjects\02-JavaSE\day01>javac HelloWorld.java
* 运行:
- 必须将路径切换到“D:\course\JavaProjects\02-JavaSE\day01”目录下
- 执行:java HelloWorld
- D:\course\JavaProjects\02-JavaSE\day01>java HelloWorld
Hello World!
---------------摘自B站动力节点教育集团
Java学习day01的更多相关文章
- Java 学习 day01
1. 基本常识 2. Java的跨平台性 3. Java环境搭建(安装) 4. Java环境搭建(环境变量配置) 5. Java环境搭建(环境变量配置技巧) 6. Java环境搭建(环境变量临时配置方 ...
- java学习day01之String的特点,如何实现,并且有哪些重要方法?
1.以主流的JDK版本1.8来说,String内部实际存储结构为char数组,源码如下: public final class String implements java.io.Serializa ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- 分享篇——我的Java学习路线
虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
随机推荐
- soso官方:网页分类技术介绍
http://www.wocaoseo.com/thread-190-1-1.html 1. 技术背景 分类问题是人类所面临的一个非常重要且具有普遍意义的问题.将事物正确的分类,有助于人 ...
- PCIe例程理解(一)用户逻辑模块(接收)仿真分析
前言 本文从例子程序细节上(语法层面)去理解PCIe对于事物层数据的接收及解析. 参考数据手册:PG054: 例子程序有Vivado生成: 为什么将这个内容写出来? 通过写博客,可以检验自己理解了这个 ...
- wmz的数数(数状数组)
wmz的数数(数状数组) 题目描述 \(wmz\)从小就显现出了过人的天赋,他出生的第三天就证明了哥德巴赫猜想,第五天就证明了质能方程,出生一星期之后,他觉得\(P\)是否等于\(NP\)这个问题比前 ...
- vue项目打包上线发现 360 浏览器不兼容?
分享链接: 文档:解决vue 和 360 浏览器兼容问题.note链接:http://note.youdao.com/noteshare?id=41914c6dbb4238d765b26d59aa05 ...
- 设计模式(多个if的处理)
使用场景 如果在代码中出现大量if判断,再执行一些比较复杂的业务操作,类似于以下情况. @Test void test() { String str = "A"; if (str. ...
- input.nextLine()和input.next()的区别
输入:dfjjvh eigdj iugydchdgh 使用input.next()读取到的是:dfjjvh 使用input.nextLine()会读取全部
- Netty内置的编解码器和ChannelHandler
Netty 为许多通用协议提供了编解码器和处理器,几乎可以开箱即用,这减少了你在那些相当繁琐的事务上本来会花费的时间与精力. 通过SSL/TLS 保护Netty 应用程序 SSL和TLS这样的安全协议 ...
- python应用 曲线拟合03
问题 有许多待拟合的曲线,需批量拟合. 解决 写一个类 # -*- coding: utf-8 -*- """ @author: kurrrr ""& ...
- jenkins参数传递
官方说明:https://wiki.jenkins.io/display/JENKINS/Parameterized+Build 1.添加参数传递 参数类型解析: 2.在 Execute shell ...
- 简单编程:如何用java来打印出一个5行的三角形