Java 简单介绍及 Java 生态

本贴最后更新于 1963 天前,其中的信息可能已经物是人非

核心思想:面向对象编程,继承,高兼容(代码移植性强),避免重复造轮子,开源.

  Java 的起源和发展细节就不介绍了,Java 是高级开发语言,类似 C++,语法和 C++ 有很多类似之处,但是做了些优化,主要是在编码写程序上的优化,避免内存泄露,避免指针复杂错用等,Java 中不可以直接操作指针,被隐藏。

Java 程序从编写到运行

    A 编写出正确的 Java 代码 .java 文件 --> B 通过工具编译成 class 文件 .class 文件 --> C 运行在系统中的 jvm 虚拟机加载 class 文件 --> D jvm 读取 class 文件中的 main 方法开始一个系统进程 --> E 完成 Java 程序开始运行 。

    在 D 过程中有一个过程 --> jvm 虚拟机加载 class 文件后,将.class 翻译成机器码(类似系统底指令) 因系统而异,同一个 class 文件,在 window 环境 翻译出的机器码与 Linux 环境翻译出的机器码是不同的: 代码移植性强的根本(jvm 虚拟机)

Java 中的成员 : jvm 虚拟机,jre,jdk

  jvm 虚拟机

    Java 代码的加载器、编译器、引擎 负载加载(读取).class 文件

    上文中有提到虚拟机,将 class 文件翻译成系统能识别的机器码,因此 jvm 是 Java 程序的必要环节,也说明不同的系统,jvm 虚拟机版本是不同的。

    jvm 虚拟机由 C 语言和汇编语言编写构成,  是 Java 程序运行的根本,Java 程序运行首先需要运行 jvm.

    网络解释: JVM(JavaVirtualMachine,Java 虚拟机)是 JRE 的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM 有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java 语言最重要的特点就是跨平台运行。使用 JVM 就是为了支持与操作系统无关,实现跨平台。

  jre (Java Runtime Environment) 

    Java 程序运行环境,其中包含了 jvm 虚拟机。Java 程序需要运行时需要的环境,既 jre.

  jdk (Java Development Kit)

    Java 语言的软件开发工具包 (SDK) Java 软件开发环境,程序员编写 Java 程序时需要的工具。 与 jre 的区别 包含 jre,多了一些编译工具,比如将.java 文件编译成 .class 文件

Java 开发中常用的技术思想、框架、工具  

  技术思想  

  面向对象

    Java 中任何事物都可以看做对象,任何事物从对象角度出发,解决问题从对象角度出发。

  继承

    Java 中对象可以被继承,将可以使用被继承对象所有公共属性,公共方法。继承者为子类,被继承者为父类,在 Java 中一切对象的顶级超类是 Object

  多态

    多态是同一个行为具有多个不同表现形式或形态的能力。

    多态就是同一个接口,使用不同的实例而执行不同操作。 具体涉及到 java 中接口的知识。

  多线程 

    一个线程处理一个事物,多个线程在同事间内执行各自的事物,互不影响。

  高并发

    在有限的硬件资源情况下,短时间内大量线程启动运行并处理事物。

  长连接

    在与可通信端频繁通信交换数据时需要用到的技术,如数据库连接一般是长连接;特点:连接数较少,通讯频繁。 想对的短连接:连接数多,同一连接短时间内连续通讯较少。

  nio

    非阻塞 io,解决网络数据传输阻塞问题,当两端通信有连接时,不一定马上接受数据,这样会引起线程等待发送数据造成的阻塞,nio 提供缓冲区,有数据的时候通过通道将通信数据写入缓冲区,没有数据则先执行别的线程,避免阻塞。

  框架

  spring

    SpringFrameWork,春天。核心是控制反转 IoC(Inversion of Control 也称依赖注入)和面向切面编程 AOP(Aspect Oriented Programming)java 中非常流行的技术框架与框架设计思想。 秉承高内聚,低耦合的思想。没有侵略性,对所有别的技术框架能够很好的兼容。(避免重复造轮子的一种具体实现)

  springmvc

    Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块(摘自百度)。web 框架,前端控制层访问框架。

  mybatis

    轻量级持久层框架,持久层开发较高效框架,在迭代开发、网络项目中使用较多。

    MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java 对象)映射成数据库中的记录。(摘自百度)

  hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。(摘自百度)

  springboot

    springboot 是以 spring 为基础的多技术集成的高效快速项目开发框架,核心还是 spring,但是集成封装好了很多其他技术(如 redis、mybatis 等),免去了项目开发中一些重复繁琐的过程

  springcloud

    springcloud 是分布式架构技术,springcloud 建立在 springboot 的基础上,主要是在分布式环境下,将 springboot 项目集中管理的的分布式开发架构。

  netty

    nio 技术具体实现框架。

  工具

  eclipse

    使用 java、C 等语言来开发项目的工具。

  idea

    使用 java、C 等语言来开发项目的工具,和 eclipse 一样是比较好用的项目开发工具,甚至比 eclipse 功能更多更强大,不过需要付费。

  maven

    项目开发 jar 资源依赖管理工具,项目打包工具,使项目开发更高效。

  tomcat

    web 项目运行容器,现在 springboot 框架内用集成 tomcat,使用 springboot 开发可以不需要额外配置 tomcat。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...