Java基础知识篇01——Java基本介绍
一、什么是 Java
Java 是 Sun Microsystems 于 1995 年首次发布的一种编程语言和计算平台。编程语言还是比较好理解的,什么是计算平台呢?
计算平台是电脑中运行应用程序(软件的环境),包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构,操作系统、运行时库。
Java 是快速,安全和可靠的。从笔记本电脑到数据中心,从游戏机到科学超级计算机,从手机到互联网,Java 无处不在!Java 分三个版本
- JavaSE (J2SE) (Java2 Platform Standard Edition java平台标准版)
- JavaEE (J2EE) (Java2 Platform,Enterprise Edition, java平台企业版)
- JavaME (J2ME) (Java 2 Platform Micro Edition, java平台微型版)
二、Java 的特点
1、Java 是一门面向对象的编程语言
什么是面向对象?**面向对象 (Object Oriented) **是一种软件开发思想。他是对现实世界的一种抽象,面向对象会把相关数据和方法组织成为一个整体来看待
相对的另外一种开发思想就是面向过程的开发思想,什么面向过程? 面向过程 (Procedure0riented) 是一种以过程为中心的编程思想。举个例子:比如你是个学生,你每天去上学需要做几件事情?
起床、穿衣服、洗脸刷牙,吃饭,去学校。一般是顺序性的完成一系列动作。
class student{
void student_wakeUp(){...}
void student_cloth(){...}
void student_wash(){...}
void student_eating(){...}
void student_gotoSchool(){...}
}
而面向对象可以把学生进行抽象,所以这个例子就会变为
class student{
void wakeUp(){...}
void cloth(){...}
void wash(){...}
void eating(){...}
void gotoSchool(){...}
}
可以不用严格按照顺序来执行每个动作。这是特点一
Java 摒弃了C++中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期,这是特点二
Java 语言具有功能强大和简单易用的两个特征,现在的企业级开发,快速敏捷开发,尤其是各种框架的出现,使Java 成为一门越来越火的一门语言,这是特点三。
Java 是一门静态语言,静态语言是指就是在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改,比如下面这个例子
public void foo(){
int x = 5;
boolean b = x;
}
静态语言主要有 Pascal, Perl,C/C++,JAVA,C#,Scala 等
相应的,动态语言没有任何特定的情况需要指定变量的类型,再运行时确定的数据类型。比如有 Lisp,Perl, Python、Ruby、JavaScript 等。
从设计的角度来说,所有的语言都是设计用来把人类可读的代码转换为机器指令。动态语言是为了能够人程序员提高编码效率,因此你可以使用更少的代码来实现功能。静态语言设计是用来让硬件执行的更高效,因此需要程序员编写准确无误的代码,以此让你的代码尽快的执行。从这个角度上来说,静态语言的执行效率要比动态语言高,速度更快。这是特点四。
2、Java 具有平台的独立性和可移植性
Java 有一句非常著名的口号: Write once,run anywhere ,也就是一次编写、到处运行。为什么 Java 能够吹出这种牛批的口号来?核心就是 **JVM **。我们知道,计算机应用程序和硬件之间会屏蔽很多细节,它们之间依靠操作系统完成调度和协调,大致的体系结构如下
那么加上 Java 应用、JVM 的体系结构会变为如下
Java 是跨平台的,已编译的 Java 程序可以在任何带有 JVM 的平台运行,你可以在 Windows 平台下编写代码,然后拿到 Linnx 平台下运行,该如何实现呢
首先你需要在应用中编写 Java 代码;
送 Eclipse 或者 javac 把 Java 代码编译为 .class 文件
然后把你的 .class 文件打包成 .jar 文件
然后你的 .jar 文件就能够在 Windows 、Mac OS X、Linux 系统下运行了。不同的操作系统有不同的 JVM 实现,切换平台时,不需要再次编译你的 Java 代码了。这是特点五
3、Java 能够容易实现多线程
Java 是一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如 Java 是如何实现多线程的。从操作系统的角度来说,实现多线程的方式主要有下面这几种
在用户空间中实现多线程
在内核空间中实现多线程
在用户和内核空间中混合实现线程
而我认为 Java 应该是在 用户空间 实现的多线程的,内核是感知不到 Java 存在多线程机制的。这是特点六
4、Java 具有高性能
我们编写的代码,经过 javac 编译器编译称为 字节码(bytecode),经过 JVM 内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分 JVM 的实现比如 Hotspot JVM 都提供了 **JIT(Just-In-Time) **编译器,也就是通常所说的动态编译器,JIT 能够在运行时将热点代码编译机器码,这种方式运行效率比较高,这是编译执行。所以 Java 不仅仅只是一种解释执行的语言。这是特点七。
5、Java 语言具有强壮性
Java 的强类型机制、异常处理、垃圾的自动回收集等是 Java 程序强壮性的重要保证,这也是 Java 与 C 语言的重要区别
6、很容易开发分布式项目
Java 语言支持 Internet 应用的开发,Java 中有 net api,它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的 RMI(远程方法激活) 机制也是开发分布式应用的重要手段。这是特点九。
三、Java 开发环境
1、JDK
JDK(Java Developmet Kir)称 Java 开发包或 Java 开发工具,是一个编写 Java 的 Applet小程序和应用程序的程序开发环境。JDK 是整个Java的核心,包括了 Java运行环境(Java Runtime Environment),一些 Java 工具 和 Java 的核心类库(Java API)
我们可以认真研究一下这张图,它几乎包括了 Java 中所有的概念,我使用的是 jdk1.8 ,可以点进去 Description of Java Conceptual Diagram , 可以发现这里面包括了所有关于 Java 的描述
Oracle 提供了两种 Java 平台的实现,一种是我们上面说的 JDK,Java 开发标准工具包,一种叫 JRE,叫做 Java Runtime Environment,Java 运行时环境。JDK 的功能要比 JRE 全很多。
2、JRE
JRE 是个运行环境,JDK 是个开发环境。因此写 Java 程序的时候需要 JDK,而运行 Java 程序的时候就需要 JRE。而 JDE 里面已经包含了 JRE。因此只要安装了了 JDK,就可以编辑 Java 程序,也可以正常运行 Java 程序。但由于 JDK 包含了许多与运行无关的内容,占用的空间较大,因此运行普通的 Java 程序无需安装 JDK,只需要安装 JRE 即可。
Java基础知识篇01——Java基本介绍的更多相关文章
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- 超详细的Java面试题总结(一)之Java基础知识篇
面向对象和面向过程的区别 面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因 ...
- java基础知识回顾之java集合类-Properties集合
/** java.lang.Object |--java.util.Dictionary<K,V> |--java.util.Hashtable<Object,Obje ...
- java 基础知识一 初识java
java 基础知识一初识java 1.java语言的特点 (1)简洁有效(2)可移植性(3)面向对象(4)解释型(5)适合分布式计算 2.java的源文件扩展名为.java 编译后的扩展名为.cla ...
- java基础知识回顾之java Thread类学习(十)--线程的状态以及转化使用的方法介绍
线程的概述: 线程是程序的多个执行路径,执行调度的单位,依托于进程存在.线程不仅可以共享进程的内存,而且还拥有一个属于自己的内存空间,这段内存空间叫做线程栈,是建立线程的时候由系 ...
- 每日java基础知识(01)
1.java语言的主要特点. 跨平台性:一个应用可以不经过修改,就直接在不同的平台上运行. 面向对象:java是面向对象的语言,可以使用对象封装事物的属性和行为,可以使用面向对象的思想进行分析设计,并 ...
- 超详细的Java面试题总结(二)之Java基础知识篇
多线程和Java虚拟机 创建线程有几种不同的方式?你喜欢哪一种?为什么? 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Callable接口. 我 ...
- Java基础知识学习01
0 项目,包,文件,类 Mytest是自己建的java工程,包含src和JRE System Libery.其中src是存放自己的代码的地方,JRE包含程序运行时所需要的各种文件:在src下包含Tes ...
- Java基础知识篇【gitee】
https://snailclimb.gitee.io/javaguide 一.Java基本功 Java一次编译,字节码通过JVM,处处运行jsp会转化为servlet,也要由jdk编译OracleJ ...
随机推荐
- 【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】
今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C++过程中,都是只学习一些STL的使用方式,并不了解底层的实现.博主本人认为,这样的学习这样的技 ...
- 记录一则exachk进程占用大量CPU资源
有Exadata客户在进行exachk巡检之后反馈,发现系统中,exachk进程占用了大量CPU资源. 了解之前的变更,只是巡检之前升级了AHF,然后进行标准的exachk巡检. 现象: 目前机器整体 ...
- 深入研究Delimiter,发现Delimiter 是自动合并重复的。
即使加上: MyList.StrictDelimiter := True; 也自动合并相邻的重复的.这点有好处也有坏处,坏处 暂时 还没有想到. -------------- 浙江省 绍兴市 越城区 ...
- NC22494 选点
题目链接 题目 题目描述 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi.现在要选出尽量多的点. 对于任意一棵子树,都要满足: 如果选了根节点的话,在这棵子树内选的其他的点都要比根节点的值大 ...
- NC16679 [NOIP2003]神经网络
题目链接 题目 题目描述 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络 ...
- OpenStack调度器
计算使用 nova-scheduler 服务来确定如何调度计算请求 默认配置中,调度程序会考虑以下所有条件的主机: 位于请求的可用区 (map_az_to_placement_aggregate) 放 ...
- 微信小程序云开发项目-个人待办事项-03【主页】模块开发
上一篇: 微信小程序云开发项目-个人待办事项-02今日模块开发 https://blog.csdn.net/IndexMan/article/details/124497893 模块开发步骤 本篇介绍 ...
- VS2019 配置 Qt 库
如标题所说,在 VS 编译器中调用 Qt 库 首先安装一个适合 VS 的 Qt 版本 不知道怎么安装的,可以参考:Visual Studio+Qt配置开发环境 Qt 安装之后,需要在 VS 编译器中 ...
- [BUUCTF][Web][GXYCTF2019]Ping Ping Ping 1
打开靶机对应URL 提示有ip参数 尝试构造url http://714ad4a2-64e2-452b-8ab9-a38df80dc584.node4.buuoj.cn:81/?ip=127.0.0. ...
- Qt实用技巧:Qt从QtCreator更换为VS开发Qt所需要注意的坑
前言 基本都是使用QtCreator开发,使用vs进行一下开发,记录从QtCreator换成VS所遇到的注意的坑. VS装对应的Qt版本助手配置Qt版本 VS装番茄助手 这里 ...