Hey guys,欢迎你收看我最新一期的文章,这篇文章我补充了一些关于《Java基础核心总结》的内容,修改了部分错别字和语句不通顺的地方,并且对内部类、泛型等内容进行了一定的补充,并且我在文章有些地方给出了一些链接,这些链接都是我自己写的硬核文章,能够更好的帮助你理解 Java 这门语言,那么废话不多说,下面开始正文。

Java 概述

什么是 Java?

Java 是 Sun Microsystems 于1995 年首次发布的一种编程语言和计算平台。编程语言还比较好理解,那么什么是 计算平台 呢?

计算平台是在电脑中运行应用程序(软件)的环境,包括硬件环境软件环境。一般系统平台包括一台电脑的硬件体系结构、操作系统、运行时库。

Java 是快速,安全和可靠的。 从笔记本电脑到数据中心,从游戏机到科学超级计算机,从手机到互联网,Java 无处不在!Java 主要分为三个版本:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)

JavaSE 是 JavaEE 和 JavaME 的基础,JavaSE 就是基于 JDK 和 JRE,然后还包含了一些支持 Java Web 服务开发的类

  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)

JavaEE 一开始叫 J2EE,后来改名为 JavaEE,它是 JavaSE 的一个扩展,这是我们企业级开发使用的一个版本,包括一些 Java Web 工具包。

  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

JavaME 一般用于移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

Java 的特点

  • Java 是一门面向对象的编程语言

什么是面向对象?面向对象(Object Oriented) 是一种软件开发思想。它是对现实世界的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。

相对的另外一种开发思想就是面向过程的开发思想,什么面向过程?面向过程(Procedure Oriented) 是一种以过程为中心的编程思想。

再举个例子:比如你是个学生,你每天去上学需要做几件事情?

起床、穿衣服、洗脸刷牙,吃饭,去学校。一般是顺序性的完成一系列动作。

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 **等。

从设计的角度上来说,所有语言的设计目的都是用来把人类可读的代码转换为机器指令。下面是一幅语言分类图。

动态语言是为了能够让程序员提高编码效率,因此你可以使用更少的代码来实现功能。静态语言设计是用来让硬件执行的更高效,因此需要程序员编写准确无误的代码,以此来让你的代码尽快的执行。从这个角度来说,静态语言的执行效率要比动态语言高,速度更快。这是特点四。

  • Java 具有平台独立性和可移植性

Java 有一句非常著名的口号: Write once, run anywhere,也就是一次编写、到处运行。为什么 Java 能够吹出这种牛批的口号来?核心就是 JVM。我们知道,计算机应用程序和硬件之间会屏蔽很多细节,它们之间依靠操作系统完成调度和协调,大致的体系结构如下

那么加上 Java 应用、JVM 的体系结构会变为如下

Java 是跨平台的,已编译的 Java 程序可以在任何带有 JVM 的平台上运行。你可以在 Windows 平台下编写代码,然后拿到 Linux 平台下运行,该如何实现呢?

首先你需要在应用中编写 Java 代码;

Eclipse 或者 javac 把 Java 代码编译为 .class 文件;

然后把你的 .class 文件打成 .jar 文件;

然后你的 .jar 文件就能够在 Windows 、Mac OS X、Linux 系统下运行了。不同的操作系统有不同的 JVM 实现,切换平台时,不需要再次编译你的 Java 代码了。这是特点五。

  • Java 能够容易实现多线程

Java 是一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如 Java 是如何实现多线程的。从操作系统的角度来说,实现多线程的方式主要有下面这几种

在用户空间中实现多线程

在内核空间中实现多线程

在用户和内核空间中混合实现线程

而我认为 Java 应该是在 用户空间 实现的多线程,内核是感知不到 Java 存在多线程机制的。这是特点六。

  • Java 具有高性能

我们编写的代码,经过 javac 编译器编译称为 字节码(bytecode),经过 JVM 内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分 JVM 的实现比如 Hotspot JVM 都提供了 JIT(Just-In-Time) 编译器,也就是通常所说的动态编译

萨达撒 这篇 Java 基础,我吹不动了相关推荐

  1. Java从小白到大牛第1篇 Java基础-关东升-专题视频课程

    Java从小白到大牛第1篇 Java基础-3042人已学习 课程介绍         本视频是智捷课堂推出的一套"Java语言学习立体教程"的视频第一部分,读者以及观看群是初级小白 ...

  2. Java新手小白入门篇 Java基础(一)

    Java新手小白入门篇 Java基础 Java新手小白入门篇 Java基础(知识点体系汇总) Java新手小白入门篇 Java基础(一) Java新手小白入门篇 Java基础(二) Java新手小白入 ...

  3. 转一篇Java基础的文章,比较有深度的,就转来收藏了

    Java基础知识[上] 收藏 此文于2009-09-29被推荐到CSDN首页 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没有考虑到会坚持往后边写,这次应该是更新该内容 ...

  4. 这篇 Java 基础,我吹不动了

    Hey guys,这里是程序员cxuan,欢迎你收看我最新一期的文章,这篇文章我补充了一些关于<Java基础核心总结>的内容,修改了部分错别字和语句不通顺的地方,并且对内部类.泛型等内容进 ...

  5. java第二篇Java基础

    Java分为三个版本:Java SE(标准版).Java EE(企业版).Java ME(微型版).其中JavaSE就是大家学JavaEE和JavaME的基础,换而言之学Java先从JavaSE开始, ...

  6. [起源篇]---Java基础(了解运算符)

    目录 Java基本语法 1.运算符(一句话) 算术运算符 赋值运算符 关系运算符 逻辑运算符 三元运算符 其他运算符 下节预告:Java基础-学会流程控制(一段话) 上一章,我们一起了解了Java内容 ...

  7. 这篇面试指南我吹不动了,凭借这份pdf拿下了蚂蚁金服、字节跳动、小米等大厂的offer

    关于程序员,除了做项目来提高自身的技术之外,还有一种提升自己的专业技能就是:多!看!书! 小编整理出一篇Java进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其 ...

  8. 34篇Java基础总结博客陪博主入门Java

    博客内容: 1.JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点 2.Java原码.反码.补码 3.Java位运算实例详解--(&).(|).(~).(^).( ...

  9. 第一篇Java基础知识 复习博客

    目录 学习笔记(p14) java的基本格式 学习笔记(p15)  java中的注释 学习笔记(p16)  Java中的标识符 学习笔记(p17)  java中的关键字 学习笔记(p18)  Java ...

  10. 第一篇Java基础知识复习

    全章节学习目标: 1.掌握Java基本语法.常量.变量.流程控制语句.方法以及数组 2.了解Java代码的基本格式 3.熟悉Java运算符的使用 Java代码的基本格式 学习笔记(p14): 编写Ja ...

最新文章

  1. ERROR: Unable to load class 'org.gradle.api.internal.component.Usage'.
  2. Java中正则表达式的学习
  3. matplotlib将图绘制在多福图中
  4. 2019年六月刷题列表
  5. springboot设置欢迎页
  6. “3遍读书法” 我是这样自学编程的
  7. tomcat在conf/Catalina/localhost目录下配置项目路径
  8. 数据结构之树的相关名字解释
  9. excel单元格斜线_掌握Excel的这个制表技巧,“小白老师”也能变“超神”!
  10. 远程办公使用单位内网Excel【内网穿透】
  11. oracle 对象不在回收站中,Oracle 10G 中的回收站
  12. python | 统计频次
  13. kali 2020 换源、中文支持
  14. oracle系统资源,oracle占用系统资源很高sqlplus无响应
  15. SAP 物料账未分摊差异分析
  16. windows系统下完全卸载mysql数据库
  17. PCL+VS+Qt+Win10 的综合配置精华
  18. 项目实训 - 智能车系统 - 第七周记录
  19. 2021年茶艺师(初级)免费试题及茶艺师(初级)复审考试
  20. python爬虫Pragmatic系列II

热门文章

  1. word替换妙用小技巧:批量去除多余空格、空行、换行
  2. 【NYNU 1151】轻羽飞扬 数塔DP
  3. 2022年危险化学品经营单位安全管理人员考试练习题及模拟考试
  4. python移位运算,python移位运算
  5. 微信小程序 display: flex 与inline-flex的区别以及应用
  6. 计算机视觉开篇---读史可以明智
  7. 路在脚下--我的程序员之路
  8. 西数推出首款SanDisk驱动器:蓝盘和绿盘
  9. 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件
  10. win10桌面右键一直转圈_吐血推荐:掌握这些技巧,win10工作效率提升9999%