• 从零开始学java ( 初始java)


    java语言的诞生

       java诞生于1995年,由jemes Gosling和他的团队所研发,最初java并未找到一个精准的定位,同时也不知道自己的存在的理由,直到1998年12月,sun公司发布了java最终要JDK版本:jdk1.2同时伴随着JDK还有JSP/Servlet以及EJB,而且也将java分成了J2EE,J2SE,J2ME三个版本

      J2EE:Java 2 Platform Enterprise Edition 企业版,用于企业应用,支持分布式部署。

      J2SE:Java 2 Platform Standard Edition 标准版,用于桌面应用,也是J2EE的基础。

      J2ME:Java 2 Platform Micro Edition 移动版用于小型设备,是J2SE的一个子集。

      不仅如此jdk1.2还把API分成三个部分:

      核心API,可选API,特殊API(java诞生就说到这,有兴趣的可以去看看JDK1.2到java SE8的发展史)

    高级语言

      什么是高级语言,相信很多的初学者都很好奇,高级语言是相对于低级语言的;

      低级语言分为:汇编语言和机器语言;汇编语言:是一种用于电子计算机微处理器微控制器或其他可编程器件的低级语言,亦称为符号语言(百度百科),机器语言:(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据;

      高级语言的分类是按照执行方式来分,分为:编译型和解释型;

      因为计算并不能直接去理解高级语言,所以需要把高级语言编译为机器语言才可以执行程序,而编译与解释也只是编译的时间不同,一个是程序执行前需要去编译,另一个是执行时才去编译。(后期会针对编译型语言和解释型语言写一篇)

    JVM与java的运行机制

       java语言比较特殊,Java语言编写的程序需要经过编译步骤,但是编译的步骤并不会产生特定平台的机器码,而是另一种与平台无关的字节码也就是.class文件,这种字节码也并不是可执行性的,它必须由java解释器来解释执行,所以可以说java不是纯粹的编译型语言也不是纯粹的解释型语言。

      java语言中负责解释执行字节码的文件就是java虚拟机,即为JVM(java virtual Machine)。JVM是可运行Java字节码文件的虚拟计算机,所有平台上的JVM向编译器提供相同的编程接口,而编辑器只需要面向虚拟机即可。即:由程序人员编写代码,编辑器只用编辑为虚拟机可以理解的代码,然后虚拟机再来解释执行,在这个过程中,虚拟机会把代码转换为特定系统的机器码执行,从而来提高效率(我们都知道java跨的平台最多,这也是它的特点)。

      同时JVM也是一个抽象的计算机,和我们所见的物理机一样,它具有指令集并使用不同的储存区域,它负责执行指令,还要管理数据,内存和寄存器。

      Oracle公司制定的java虚拟机规范在技术上规定了JVM的统一标准,细节如下:

      指令集

      寄存器

      类文件的格式

      栈

      垃圾回收堆

      存储区

     ps:JVM先说这么多,后期会写一期深入JVM的

    Java的组织形式与源文件的命名规范

      java程序是一种纯粹的面向对象的语言的程序设计语言,因此java程序必须以类(class)的形式存在,类(class)是java程序的最小单位。java程序不允许可执行性语句,方法等成分独立存在,所有程序必须在类中定义

      这是最最简单的一个java程序,这个程序定义了一个Test类,这个类中没有任何的类成分,是一个空类,但是这个编写规范是绝对正确的,它用javac命令是能通过编译的,但是java命令它则会报错,因为java解释器规定,如需要某个类能被解释器直接解释执行,则这个类必须包含main方法

      java源文件的命名不是随意的,java文件的命名必须满足如下规则:

      java程序源文件的后缀必须是java(即为:xxx.java),不能是其他的后缀(有些同学可能会说我能不能写个.class文件呢,emm..针对这个问题,我....),通常情况下,java程序源文件的主文件名必须与该public类的类名相同(由于java程序源文件的名必须与public修饰的类名相同,所以一个类中只能有一个由public修饰的类)。

    简单说垃圾回收机制GC(Garbage Collection)

      传统的C/C++等编程语言需要负责回收已经分配的内存。这是显式垃圾回收,比较困难,因为程序员并不是总是知道内存应该在何时释放。所以显式垃圾回收有两个缺点:

        1.程序忘记及时回收无用内存,从而导致内存泄露,降低了系统的性能。

        2。程序错误的会后程序核心类库的内存,从而导致系统崩溃。

      java的语言是不需要直接控制内存回收(这对于C/C++程序员的福音,简直良心到掉眼泪),而且实际上除了释放掉没用的对象 外,垃圾回收也可以清楚内存的记录碎片。垃圾回收不仅能自动释放内存空间,还可以减轻编程的负担,这使java虚拟机具有两个显著的优点:

      1.垃圾回收机制能很好的提高编程的效率,在没有垃圾回收机制时,可能要花很多时间去解决一个难懂的存储器问题。

      2.垃圾回收机制保护程序的完整性,垃圾回收也是java的安全性策略的一个重要部分。

      但是GC也不是都是好,它的缺点就是:它的开销影响程序性能。(但是伴随这jdk的版本提高,垃圾回收的算法也不断的在提高)

      ps:其实还想说下GC的几个特点,以及GC的算法,这个等JVM专题的时候会好好拿出来说的,现在主讲java的基础 - -!

    数据类型与注释

       其实讲这个之前要说下java的面对对象的思想的,这个放到高级里去把。

      注释:

        java中的注释分三类:

        单行注释

        多行注释

        文档注释

                  

        在编写java源代码时添加了合适的文档注释, 然后通过JDK提供javadoc工具可以直接将源码里的文档注释提取成一份系统的API文档。

        所有的注释在开发的过程中是非常重要的,非常重要的,非常重要的。

        下期就开始讲 java 标示符与关键字,数据类型了。

    J2EE是一系列技术标准所组成的平台,包括:

    • Applet - Java Applet

    • EJB - 企业级JavaBean(Enterprise Java Beans)

    • JAAS - Java Authentication and Authorization Service

    • JACC - J2EE Authorization Contract for Containers

    • JAF - Java Beans Activation Framework

    • JAX-RPC - Java API for XML-Based Remote Procedure Calls

    • JAX-WS - Java API for XML Web Services

    • JAXM

    • JAXP - Java XML解析API(Java API for XML Processing)

    • JAXR - Java API for XML Registries

    • JCA - J2EE连接器架构(J2EE Connector Architecture)

    • JDBC - Java数据库联接(Java Database Connectivity)

    • JMS - Java消息服务(Java Message Service)

    • JMX - Java Management Extension

    • JNDI - Java名字与目录接口(Java Naming and Directory Interface)

    • JSF - Java Server Faces

    • JSP - Java服务器页面(Java Server Pages)

    • JSTL - Java服务器页面标准标签库(Java Server Pages Standard Tag Library)

    • JTA - Java事务API(Java Transaction API)

    • JavaMail

    • Servlet - Java Servlet API

    • StAX - Streaming APIs for XML Parsers

    • WS - Web Services

  • 相关阅读:
    习题四 答案
    习题五 答案
    习题三 答案
    习题二 答案
    习题一 答案
    mysqldump 备份
    centos mysql 数据迁移
    常用操作命令
    mysql 日期处理
    thinkphp3.2.3 使用配置
  • 原文地址:https://www.cnblogs.com/Cgosling/p/9813790.html
Copyright © 2020-2023  润新知