Java学习1-基本概念
Java三大版本的含义
- JavaSE(Java standard Edition):保准版,定位在个人计算机上的应用,这个版本是Java平台的核心,提供了丰富的API来开发一般个人计算机上的应用。
- JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用,javaEE是JavaSE的扩展,增加了用为服务器开发的类库。
- JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上,不过逐渐被安卓开发替代。
Java的特性和优势
- 跨平台/可移植性:这是Java的核心优势。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
- 安全性:Java适用于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒、防篡改的系统。
- 面向对象:面向对象是一种程序设计技术,非常适合大型软件的设计和开发。
- 简单性:Java就是c++语法的简化版
- 高性能:通过虚拟机的优化提升了几十倍的运行效率,比如,通过JIT即时编译技术提升运行效率,将一些“热点”字节码编译成本机器码,并将结果缓存起来,在需要的时候重新调用,这样的话,使Java程序的执行效率大大提高。
- 分布式:Java是为Internet的分布式环境设计的,因为它能处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI),使程序能够通过网络调用方法。
- 多线程:多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
- 健壮性:吸收了C/C++语言的优点,但是去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃,即使Java程序也可能有错误,如果出现某种出乎意料之事,程序也不会崩溃,而是把异常抛出,通过异常处理机制加以处理。
Java的运行机制
- 计算机高级语言类型:解释型和编译型,而Java语言是两种类型的结合。
- Java首先利用文本编译器编写Java源程序,源文件的后缀名为“.java”,再利用编译器(javac)将源文件编译成字节码文件,字节码文件的后缀名为“.class”,最后利用虚拟机(解释器,java)解释执行。
JVM、JRE和JDK
- JVM(Java Virtual Machine):就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”,JVM负责将Java字节码解释运行,边解释边运行,这样速度就会收到一定的影响。不同的操作系统有不同的虚拟机,Java虚拟机机制屏蔽了底层运行平台的差别实现了“一次编译,随处运行”,Java虚拟机是实现跨平台的核心机制。
- JRE(Java Runtime Enviroment)包含:Java虚拟机、库函数、运行java应用程序所必须的文件
- JDK(Java Development Kit)包含:JRE、以及增加编译器和调试器等用于程序开发的文件
如果我们开发一个Java程序必须安装JDK,如果只是运行一个Java程序,只需要安装一个JRE就够了(JRE很小)
JDK的下载与安装
下载地址:www.oracle.com/technetwork/java/javase/downloads/index.html
进入JDK的安装目录C:\Program Files\Java\jdk1.8.0_131,可以看到如下的结构:
其中:
- bin目录是存储一些可执行的二进制文件;
- lib存储相关jar包;
- src.zip是JDK相关JAVA类的源代码。
环境变量的配置: 环境变量是操作系统中的一个具有特定名字的对象,它包含了一个或者多个程序所将要使用到的信息。 Path 是一个常见的环境变量, 它告诉操作系统,当要求操作系统当前系统运行一个程序而没有告诉程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应该到哪些目录下寻找。
- 复制java安装的目录,在系统变量处点击新建
- 新建一个 JAVA_HOME 变量(用于说明JDK的安装目录)
- 修改系统变量的Path变量,需要在最前面追加%JAVA_HOME%\bin(JAVA_HOME变量指代java的安装目录,其实这里是把“java安装目录\bin”这个目录放到了Path下面,之所以定义一个JAVA_HOME变量,是为了方便以后其他服务器、软件寻找JAVA_HOME这个路径,所以必须要设置它),并以分号与其他路径分隔,注意所有符号都是英文输入法下的
测试JDK安装成功
在cmd命令行中输入“java -version”(输入一个java,它就会通过Path,找到“java安装目录\bin”目录下的java.exe文件),回车会显示你安装的java的版本号,如果出现“xxx不是内部或外部命令…”说明你的环境变量配置的是有问题的。
第一个java程序
- 打开记事本开发第一个java程序,输入以下代码,保存为“Welcome.java”,注意文件名必须是Welcome,大小写也必须一致
- 编译(编译器创建class字节码文件):打开命令行,进入java文件所在的目录,输入:javac Welcome.java,生成class文件
- 解释并运行,执行“java Welcome”,即运行编译生成的Welcome.class文件,输出执行结果
常见的错误
- 提示“javac不是内部或外部命令…”:Path变量配置错误导致没有找到javac命令
- 文件夹中可以看到“Welcome.java”,但是编译时出现“javac找不到文件…”:可能是操作系统显示设置的问题,隐藏了文件的扩展名
- 编译时出现的语法等错误:编程的问题,根据错误提示,查找错误
小结
- 1、java对大小写敏感,如果出现大小写错误,程序无法运行
- 2、关键字public被称为访问修饰符,用于控制程序的其他部分对这段代码的访问级别
- 3、关键字class的意思是类,java是面向对象语言,所有的代码必须位于类里面
- 4、一个源文件至多只能声明一个public的类, 其他类个数不限 ,如果源文件中包含了一个public类,源文件名必须和其中定义的public的类名相同,且以“.java”为扩展名
- 5、正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,并将字节码文件自动命名为类的名字且以“.class”为扩展名
- 6、main方法是java应用程序的入口方法,它有固定的书写格式:public static void main(String[] args){…}
- 7、java中的每个语句必须以分号结束,回车不是语句的结束标志,所以每一个语句可以跨多行
常见的java开发工具
Notepad++、eclipse、NetBeans…
总结
- 1、java的核心优势:跨平台,跨平台是靠JVM(虚拟机)实现的
- 2、java各版本的含义:
- JavaSE(java standard edition)标准版,定位在个人计算机应用
- JavaEE(java enterprise edition)企业版,定位在服务器端的应用
- JavaME(java micro edition)微型版,定位在消费电子产品的应用
- 3、java程序的开发运行过程为:编写代码、编译、解释运行
- 4、JDK用于开发java程序,JRE是java运行环境,JVM是JRE的子集,JRE是JDK的子集
- 5、JDK配置,需要新建JAVA_HOME环境变量,需要修改Path环境变量
- 6、java是面向对象的语言,所有代码必须位于类里面。main方法是java应用程序的入口方法
Java学习1-基本概念相关推荐
- Java学习之接口概念
Java语言只支持单重继承,不支持多继承,即一个类只能有一个父类.但是在实际应用中,又经常需要使用多继承来解决问题.为了解决该问题,Java语言提供接口来实现类的多继承问题. 接口(英文interfa ...
- Java学习笔记(五):一张图总结完JVM8基础概念
Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...
- 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式
[JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...
- 我的WEB之路(一)-2.JAVA学习路线
第一阶段:针对性夯实JAVA基础 课程名称 核心要点 完成目标 Java基础入门 搭建Java开发和运行环境等,IDE工具的学习和使用,Java语言基础,数据类型,运算符,条件和循环,数组使用等,Ja ...
- 转:Java学习路线图,专为新手定制的Java学习计划建议
转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
- Java学习之 多态 Polymorphism
Java学习之多态 多态的概念 多态==晚绑定. 不要把函数重载理解为多态. 因为多态是一种运行期的行为,不是编译期的行为. 多态:父类型的引用可以指向子类型的对象. 比如 Parent p = ne ...
- 区分 JVM 内存结构、 Java 内存模型 以及 Java 对象模型 三个概念
本文由 简悦 SimpRead 转码, 原文地址 https://www.toutiao.com/i6732361325244056072/ 作者:Hollis 来源:公众号Hollis Java 作 ...
- Java必备:java入门、java学习
2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1.Java入门 1-1.Java具有那些适合在Internet环境中 ...
最新文章
- 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度
- 【资源干货】港中文《深度学习导论》2021课件,李鴻升老师讲授
- 前端渐进式框架Vue讲解
- Angularjs与weui的握手
- ibatis动态查询条件
- MySQL之mysql客户端工作的批处理一些使用手法
- Medoo 开源项目发布,超轻量级的PHP SQL数据库框架
- python中字典的键是唯一的吗_在python3中反转字典中的键和值(值不唯一)
- 关于.NET的单元测试
- scanf()中的%c 不能正常输入的问题
- 在IAR下移植CC2650 contiki工程
- LeetCode所有题目答案汇总
- 图片的灰度处理(Unity Shader)
- ECCV 2020 best paper: RAFT算法解析
- Android Studio editText去掉下划线的办法
- 灵活的Vue组件——原来这么简单
- 开发工具之VisualStudio
- ESP8266 Arduino Hard resetting via RTS pin...
- 基于Python Django Mysql 开发的宠物用品商城
- Word中如何创建自动编号的标题?
热门文章
- 抖音删除作品会有哪些影响,限流降权该如何挽回丨国仁网络资讯
- android ui的绘制流程图,使用jsPlumb绘制流程图
- 监控电脑屏幕python
- Python 修改AD账号密码(三)- 简易网页版
- pjsip 设置麦克风语音输入量 扬声器播放
- C++实现动态烟花,噼里啪啦过新年啦
- 《信息与编码》考试复习笔记6----第六章连续信源熵和信道容量(考点在连续信道容量)
- day68 Django--中间件
- 试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次? 在1到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。
- 若两素数之差为2 ,则称两素数为双胞胎数,打印出[31,600]之间所有的双胞胎数,并求有多少对双胞胎数。