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的垃圾回收机制 ...
随机推荐
- FlashFXP免费版下载
http://www.wocaoseo.com/thread-294-1-1.html 关于互联网的上传下载软件可能有很多种,也有很多安装后免费使用的软件比如8UFTP等,但如果论起速度和功能性,个人 ...
- 面试中的这些点,你get了吗?
一.前言 因为疫情的原因,小农从七月份开始找工作,到现在已经工作了一个多月了,刚开始找工作的时候,小农也担心出去面试技能不够,要懂的东西很多,自己也准备可能会面试一段时间,从找工作到入职花了十几天,总 ...
- mysql 8.0.19 win10快速安装教程
本文教程为大家分享了mysql 8.0.19安装教程,供大家参考,具体内容如下 1.下载.zip安装文件 2.根目录存放my.ini,文件路径用“/”分割,例如: [mysqld] port=3306 ...
- 避免nullpointer 空指针
来自知乎: 一般在服务器返回的数据上我们会做数据合法性检测,所以在api文档上需要注明字段的取值范围,然后客户端根据这个去做数据检测,缺段就直接走数据错误的流程,这个很大程度上避免了不少nullpoi ...
- 【阿里云训练营】python查漏补缺 1
文章来自:微信公众号[机器学习炼丹术]. 有问题疑惑,或者想交流交朋友的可以加个人微信:cyx645016617 参考目录: 目录 1 注释 2 is 与 == 3 运算优先级 4 查找所有属性和方法 ...
- JVM学习第二天(垃圾回收器和内存分配策略)大章
说道垃圾回收器大家应该都会有所了解,GC白,当然说道具体的可能就不是很清楚了,今天我们就来玩一玩; GC要做的事情: 第一步:确定堆中需要回收的对象; 第二步:什么时候回收; 第三步:怎样回收 为什么 ...
- shell小技巧(7)shell运行调试
可以在sh内使用set -x,使用后,会打印每条命令的输出 在shell中设置 set -x 开启 set +x 关闭 也可以在执行脚本时加参数 sh -x *.sh
- [bash] 打印到屏幕相关语法
程序: #!/bin/bash function showAlertMsg(){ echo -e "\e[1;31m"$"\e[0m" } function s ...
- 在遍历ResultSet的循环中再执行SQL会发生什么(前提:同一个Statement)
如下面代码: Class.forName(DBParam.Driver).newInstance(); conn = DriverManager.getConnection(DBParam.DbUrl ...
- roarctf_2019_easy_pwn
这篇博客主要记录当直接在malloc_hook中直接写入one_gadget不起作用时的一些处理方法.题目附件:https://buuoj.cn/challenges#roarctf_2019_eas ...