Java源码学习--前言

jdk1.7版本                                                                    jdk1.8版本

                       

1.8比1.7多了4个.为以下四个

cldrdata.jar        jfxrt.jar          nashorn.jar           sunpkcs11.jar

资源说明
resources存放资源文件(XXX.properties),其中定义了如serverNotFound="IOP00710406: (INTERNAL) Server is not running"等
rj原生Java源文件资源.
jsseJava安全套接字扩展:对原生Java.sequrity及sun.sequrity实现有了更好的实现而添加的扩展
jce提供Java.sequrity.下spec算法的更好实现
charsets字符集:点开后可以看到是sun包下,对nio.cs.ext的扩充
jfr对Oracle,jdk的扩充,更好实现
access-bridge-64只有两个类AccessBridge访问通道,AccessBridgeLoader访问通道加载器
cldrdata都继承了原生的ListResourceBundle
dnsnssun.net.spi.nameservice.dns包下只有两个类对原生sun.net的扩充
jaccessaccess的util工具类的扩充
......
......

   总之,这些都是一些扩充,扩展,对我们学习Java源码一点关系都没用.也不需要关注这个.

 

在学源码之前需要了解一些概念:

编程是一步一步慢慢演变来的.语言分为三类:机器语言,汇编语言,高级语言.

           机器语言:  由于计算机内部只能.接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。

            汇编语言的实质和机器语言是相同的,都是直接对硬件操作.只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。                   通常由三部分组成:指令、伪指令和宏指令。

           高级语言:    是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节, 例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

编程语言:  定义计算机程序的形式语言。一种被标准化的向计算机发出指令。

编程语言          可以以分为语法语义

        语法:说明编程语言中,哪些符号或文字的组合方式是正确的
        语义:对编程的解释
        有些语言是用规格文件定义的.列如C语言,规格文件也是ISO标准中的一部分,
        而其他语言(像Perl)有一份主要的编程语言实现文件,视为是参考实现

计算机每一次动作,一个步骤,都按照已用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都用语言来编写的. 所以人们要控制计算机一定要通过计算机语言向计算机发出命令.       (通过计算机语言向计算机发出命令)

有些语言开发用来解决特定问题的如:
        PHP显示网页
        Perl文本处理
        C语言用于操作系统,编译器的开发(系统编程)
    大多数语言即可被编译又可被解译,但大多数仅在一种情况下能够良好运行.

重要的:         编译器:将源码(人可读)编译/解译成机器(计算机)可执行文件.

                     如果程序代码是在运行时才翻译则叫直译,比编译更慢但更灵活

 

 

           由此知道了Java源码通过定义好的语法及语义编写程序即源代码.通过在运行环境JRE和编译器即JVM来转换成不同操作系统环境下计算机可执行的命令.从而实现操作.而Java时跨平台的,

           因此.在JDK源码中有些定义了类,或对象.不知道为什么能实现这个功能.是因为在编译器中早已定义了Java语言的语法及语义,而Java语言是在C++基础之上发展起来的.吸收了很多C++的优点.所以源码中也可以发现一些原生的C++函数方法如native.会通知jvm去调用外部方法(即C)去执行.

 

       所以阅读源码不要觉得不懂为什么这样就可以了,内部时怎么执行的等疑问.要知道jdk源码只是Java的其中一部分有利于我们开发的参考而已.还有一些实现是在我们看不到的地方去执行了.

      我们阅读源码,学习源码就是通过已有的源码了解Java提供给我们什么功能,可以实现哪些东西.怎么去实现这些东西的.如何通过Java提供的东西去运用到实际需求中去

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值