java SE 入门之语言与环境(第一篇)
Javase的语言与开发环境
Keke
2016年03月08日
Java属于-Oracle公司(甲骨文)
创始人:Gosling
1995年诞生
1998年12月发布jdk1.2
2002年2月发布:jdk1.4
2006年12月发布:jdk1.6
2007年sun倒下,google推出android依托java的jvm
2009年4月20日被oracle收购。
2011年7月28日,oracle发布了jdk1.7,这个版本引入了swtich语法,菱形泛型,多异常捕捉,自动关闭资源等。
2014年3月18日,发布jdk1.8版本,带来全新的Lambda表达式,等大量的新特性.
JDK全称是Java Se Development Kit;即Java标准开发包,是sun公司提供一套用于开发Java的应用程序开发包,它提供了编译,运行Java程序所需的各种工具和资源,包括Java编译器,Java运行时的环境以及常用的Java类库等。
提问:jvm和jre是什么关系:
Jre是包含jvm。Jvm是运行Java核心的虚拟机。而运行Java程序不进需要核心虚拟机,还需要其他的类加载器,字节码校验器以及大量的基础类库,JRE除了jvm以外,还包括运行Java程序的其他环境。
01:下载和安装JDK
Oracle公司把Java分成了JavaSe,JavaEE和JavaME三个部分,而且JavaSe和JavaEE分别提供了JDK和JavaEE SDK两个开发包,后续的中级班中我们学习的Servlet/JSP都是属于JavaEE的范畴。
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
02:Java程序的运行机制和JVM
Java语言是比较特殊,有Java语言编写的程序需要经过编译,但是编译过程中不会生成特定的机器码,而是生成一种与平台无关的字节码,(也就是.class文件),当然这种字节码不是可执行的,必须使用Java解析器来解释执行,因此可以认为:Java语言是编译型语言,也是解释型语言。Java程序执行必须经过编译(javac)和后解释(java)两个步骤,
Java语言里负责解释执行字节码文件的是Java虚拟机,即JVM(Java Virtutal Machine)。JVM是可以运行字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口。
JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它赋值执行指令,管理数据,内存和寄存器等。
编译型语言:都需要编译以后才能运行,也就说如果编写任何一行新的代码都可能需要重新编译,然后在运行。注释除外 比如:java,c++,c,object-c
解释型语言:不需要,比如:javascript /ruby/python
03:jdk路径的介绍和说明
安装过程中最好不要使用空格路径
安装完成后,可在jdk安装路径下看到如下路径:
Bin 该路径存放了JDK的工具工具命令,常用的javac和java等命令就放在这里已经应用程序的监控都在这里,编码的转码工具等。
Db:改路径是安装javadb的路径.
Include:一些平台的特定头文件。
Jre:该路径下安装的就是运行java程序所必须的jre环境。
Lib:该路径存放的是JDK工具命令实际执行程序,有tools.jar,javafx-src.zip,src.zip等.
04:环境变量的配置
第一步:我的电脑右键--属性---高级系统设置
第二步:系统变量--新建--JAVA_HOME-你安装的JDK的目录--C:\Program Files\Java\jdk1.8.0_73
第三步:系统变量---新建--CLASSPATH,值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
注意前面有一个点。
第四步:选择系统变量中---Path--编辑--在PATH尾部添加如下代码:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,注意在添加之前一定要加一个分号分割
第五步:打开窗口---点击运行--输入cmd打开命令窗口---输入java-version命令
为什么要配置环境变量:
配置环境目录就为了方便不需要切换可执行文件的目录下。方便我程序的执行和控制。配置环境变量就是为了让系统帮我们直接根据环境变量的参数直接帮我寻找可执行文件。如果你配置它自动匹配出来。如果找不到找不到可执行文件吗?
环境变量的疑问:用户变量和系统变量的区别是什么:
用户变量和系统变量其实都没什么差别,只是用户变量只针对当前用户有用。而系统变量针对所有用户有用,为了减少自己所做的修改对其他人的影响,固设置用户变量避免影响其他人。对于当前用户而言,设置用户变量和系统变量的效果是一样的。如果两个地方都配置了优先选择系统变量的配置。
05:我的第一个Java程序--HelloWorld.java 文件,可以建立记事本修改文件扩展名即可
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello world....");
}
}
javac srcFile 如: javac HelloWorld.java
java类名 如 java HelloWorld
比如:结果是:Hello world
这个时候我们在打开dos ,如下图
这个时候我们在看E盘会多出一个 hello.class的文件,
我们使用javac 进行编译,使用 java 命令去执行
06:Java的命名规则
Java源文件程序的后缀必须是.java,不能是其他的文件后缀名。
Java程序源文件可以是任意的,但是有一种情况例外,如果Java程序源代码里的类定义的是一个public类,则该文件源文件名必须和类名一致。由于Java程序源文件名必须和Public类名相同,因此,一个Java源文件最多只能够定义一个public类.
大小写是区分的
类名必须大写开头.
public class和class的区别
public是一个访问修饰符,表示任何地方均可引用
class是声明一个类的关键字,如:class A{}//声明一个类,名为A
class只能由public 修饰,如果没有public则为默认访问修饰符,默认访问修饰符的访问权限是:同一个包内的成员可以访问引用
所以public class的意思就是:声明一个任何地方均可引用的类
08:何时使用ide工具
Editplus,myeclipse,eclipse,netbeans等
总结:
课的配置环境变量,编写HelloWorld.java类主要是让大家明白java是一种先编译后执行的语言。运行于jvm中,说明在未来java代码的编写中我们修改了代码(指:添加了属性,修改了方法的特征)需要重新编译代码,才能可运行,大家也不要纠结于现在这个阶段能够明白java是基于编译和运行的就够了,其他的了解即可,因为毕竟开发是不可能使用命令窗口去开发的。
java SE 入门之语言与环境(第一篇)的更多相关文章
- Java基础知识常见面试题汇总第一篇
[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后 ...
- java SE 入门之八大内置基本类型(第二篇)
本文采用eclipse 工具演示,如果您对eclipse 工具不了解,请先学习下 eclipse 工具的使用,这个里面只是简单的介绍下输出和注释: 安装完成eclipse 以后,双击进入 后一次点击 ...
- java SE 入门之输入输出(第四篇)
在第一篇,八大基本类型的时候,我就介绍了输出,当然,这些输出都是简单的,后续写到流的时候,在细化输入输出. 现在只要求看懂输入输出.输入其实就是接受键盘的输入. public class Hello ...
- java自学入门心得体会 从环境配置开始
java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...
- java SE 入门之运算符(第三篇)
在 java 中主要有以上运算符,分为 赋值运算符 ,算术运算符.关系运算符(比较运算符),逻辑运算符和三目运算符(三元运算符). 我们一起来学习下吧! 一.赋值运算符 赋值运算符主要有五个.分别是 ...
- 《R语言入门》语言及环境简单介绍
简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
- Java SE 9(JDK9)环境安装及交互式编程环境Jshell使用示例
目的 安装JDK 9, 练习Jshell工具的使用, 体验Java的交互式编程环境. 什么是Jshell 其实就是一个命令行工具,安装完JDK9后,可以在bin目录下找到该工具,与Python的解释器 ...
- java SE 入门之控制语句&方法&递归算法(第五篇)
一 控制语句(选择结构) 在学习控制语句之前,我们要先明确两件事情,什么是顺序结构(也叫做顺序执行),什么是选择结构 (分支结构或分支执行或选择执行),我们的代码执行是分为先后顺序的,就像我们之前写的 ...
- 从零开始搭建Java开发环境第一篇:Java工程师必备软件大合集
1.JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 目前主流的JDK版 ...
随机推荐
- 关于Select选中问题
jquery根据text选中option的问题: 网上找了好多,但发现因为jquery版本问题,很多并不能用. 最后成功了,写法如下: $('#shop option:contains(' + ...
- 四两拨千斤式的攻击!如何应对Memcache服务器漏洞所带来的DDoS攻击?
本文由 网易云发布. 近日,媒体曝光Memcache服务器一个漏洞,犯罪分子可利用Memcache服务器通过非常少的计算资源发动超大规模的DDoS攻击.该漏洞是Memcache开发人员对UDP协议支 ...
- 使用libxml2进行xml开发(一)
(一)Windows下使用MinGW和Code::Blocks环境配置libxml2 笔者此次是在windows 7下使用MinGW和Code::Blocks开发C程式的,手上的一个项目需要使用soc ...
- sublime text3---Emmet:HTML/CSS代码快速编写神器
Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...
- 读Lock-Free论文实践
论文地址:implementing Lock-Free Queue 论文大体讲的意思是:Lock-Base的程序的performance不好,并且a process inside the critic ...
- day 31 html(二) 和css入门
前情提要: 本次主要是继续昨天学的简单的html 补充以及 css的简单入门 一:表单标签 >1:get请求 <!DOCTYPE html> <html lang=" ...
- klee 测试一个简单的正则表达式匹配函数
函数源代码位于 klee源码 的examples/regexp文件夹下面:c程雪源码文件名为 Regexp.c First Step: 使用clang编译器将c源代码转化为llvm位码形式.如果你的 ...
- 多线程学习:Volatile与Synchronized的区别、什么是重排序
java线程的内存模型 java的线程内存模型中定义了每个线程都有一份自己的共享变量副本(本地内存),里面存放自己私有的数据,其他线程不能直接访问,而一些共享变量则存在主内存中,供所有线程访问. 上图 ...
- css之px自动转rem—sublime 插件CSSREM
CSSREM CSSREM 是一个CSS的 px 值转 rem 值的Sublime Text3自动完成插件.先来看看插件的效果: 一个CSS的px值转rem值的Sublime Text 3自动完成插件 ...
- ubuntu编译安装ruby1.9.3,从p551降级到p484
在升级redmine的时候遇到ruby版本适配的问题.找了些资料. ruby安装包除了官方网站,可以参考 http://ftp.ruby-lang.org/pub/ruby/1.9/ 需要从1.9.3 ...