阅读记录追踪:前言部分

阅读前先看:简介、目录和勘误!

Java编程语言是一种多用途、并发的、基于类的、面向对象的编程语言;编译时通常包括将持续转化成机器无关的字节码表示。运行时活动包括加载和链接执行持续所需的类,生成可选的机器代码,动态优化持续和执行实际的程序。

Java提供代码的可移植性、内存垃圾回收器,以及大型的API库(庞大的库——优质的资源),提供奇特的绘图功能、网络连接功能和数据库存取功能。可以从以下11个关键字对Java进行描述:简单性、面向对象、网络技术、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程和动态性。

针对简单性而言,Java的目标之一是支持开发能够在小型机器上独立运行的软件;基本的解释器以及类支持大约仅为40KB;再加上基础的标准类库和对线程的支持(基本上是一个自包含的微内核)大约需要增加175KB。

Java的网络技能在于:一个扩展的例程库,用于处理像HTTP和FTP这类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

Java语言的健壮性体现在两方面:出错倾向的检查和指针模型(并没有采用指针,而是对C++指针的封装)。但没有指针的语言,许多数据结构很难实现。Java是如何实现这些数据结构的?

Java的安全性机制:Java设计能够防范各种袭击,包括:运行时堆栈溢出,在自己的处理空间之外破坏内存,未经授权读写文件等等。(这一点怎么和Linux的权限系统如此相似!)

体系结构中立,指的是:使用了虚拟机。(这一部分需要重点把握)生成的中间代码,可以应用于所有已经正确安装解释器的机器上。

可移植性体现在:基本数据类型的大小以及有关算法都做了明确说明;Java中的数据类型具有固定大小,消除了代码移植时可能遇到的问题。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。

Java的解释型体现在哪里?导致的结果在于:对关键应用程序运行速度较慢。现今JVM采用即时编译器,其代码运行速度和C++相差无几。

在一些特定的场合需要更加高效的性能,Java编译后的字节码可以(在运行时)快速地翻译成运行这个应用程序的特定CPU机器码,以进一步提高执行速度。

Java的多线程执行,带来更好的交互响应和实时行为。只要操作系统支持,Java中的线程就可以利用多个处理器。在底层,主流平台的线程实现机制各不相同,Java并没有话费太大的力气对此实现平台无关性。在不同的机器上,只是调用多线程的代码完全相同;Java把多线程的实现交给了底层的操作系统或线程库来完成。

Java和applet,当今如果需要在浏览器上显示动态效果时,大多数网页都会直接使用JavaScript或Flash,而不是applet。

Java语言的发展状况如下:

可见:在2004年加入新特性后,API有爆炸性的增长。

Java的常见术语

容易混淆的是:JRE指Java运行环境,包含有虚拟机但不包含编译器。这并不是开发者所想要的环境,而是专门为不需要编译器的用户而设计的。JDK,很形象得被称为是:开发工具箱(tool-kit)。

注意:在安装JDK时,Windows环境下强烈建议不要接受带有空格的默认路径名,而使用如下形式:jdk/bin或jdk1.6.0\bin...此外,还需要将jdk/bin目录添加到执行路径中;所谓执行路径指的是操作系统搜索本地可执行文件的目录列表。

在jdk\bin的同一级目录包含有src.zip文件,该文件就是所有公共类的源代码

获得更多的源代码(编译器、虚拟机、本地方法以及私有辅助类等等)可以访问:oracle.net。

如下是JDK部分的剖析图:

可以明显看出:JDK和JRE的不同之处。

Java的引用类型包括三种:类类型接口类型数组类型。引用类型是由动态创建的对象(类或数组的实例)实现的,可以有多个引用指向一个对象。有用于把基本值包装在对象内部的类,这个类我们称为包装类。

Java基础巩固——《Java核心技术基础·卷一:基础知识》的更多相关文章

  1. Java核心技术卷一基础知识-第11章-异常、断言、日志和调试-读书笔记

    第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果 ...

  2. Java核心技术卷一基础知识-第10章-部署应用程序和applet-读书笔记

    第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可 ...

  3. Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记

    第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...

  4. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  5. java进阶书籍推荐(不包括基础)

    个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “看完书之后再次提升自我的最好途径是看一 ...

  6. 【Java基础】- Java学习路线图

    Java的学习路线图,整理以备自己学习和温习. 1.Java基础 具体内容: 1. 编程基础(开发环境配置.基础语法.基本数据类型.流程控制.常用工具类) 2. 面向对象(继承.封装.多态.抽象类.接 ...

  7. [Java面试二]Java基础知识精华部分.

    一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...

  8. 20145213 《Java程序设计》实验四 Android开发基础

    20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...

  9. 20145225《Java程序设计》 实验四 Android开发基础

    20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...

  10. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...

随机推荐

  1. 论文阅读笔记二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

    论文源址:https://arxiv.org/abs/1506.01497 tensorflow代码:https://github.com/endernewton/tf-faster-rcnn 室友对 ...

  2. JavaScript 高级程序设计 第二版

    function outputNumbers(count) {     (function () {         for (var i =0;i < count; i++) {        ...

  3. Just oj 2018 C语言程序设计竞赛(高级组)D: 四边形面积

    D: 四边形面积 时间限制: 1 s      内存限制: 128 MB      提交 我的状态 题目描述 有一个四边形,现在需要求它的面积 输入 输入四行,每行两个数整数xx, yy (1≤x,y ...

  4. 升级 Apache Tomcat的办法

    1.下载最新的7系列tomcat cd /usr/local/software wget https://www-us.apache.org/dist/tomcat/tomcat-7/v7.0.92/ ...

  5. 下载离线VS2017

    1.下载工具 版本 文件 Visual Studio Enterprise (企业版) vs_enterprise.exe Visual Studio Professional (专业版) vs_pr ...

  6. JDK1.7 Update14 HotSpot虚拟机GC收集器

    在测试服务器上使用如下命令可以查看当前使用的 GC收集器,当然不止这一个命令可以看到,还有其他一些方式 第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了 [csii@ ...

  7. Windows Azure 搭建网络代理 Proxy

    额 题目起的有点大 其实就是在 Linux 上使用代理 不过是用的 Azure 上的 Liunx 虚拟机而已 如何在 Azure 上搭建 VPN 见上篇:http://www.cnblogs.com/ ...

  8. PUTTY工具的使用

    Putty工具包简单使用 一.Putty简介 Putty是一款远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行方式).Putty完全免费,而且无需安 装(双击即可运行),支 ...

  9. UOJ#30/Codeforces 487E Tourists 点双连通分量,Tarjan,圆方树,树链剖分,线段树

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ30.html 题目传送门 - UOJ#30 题意 uoj写的很简洁.清晰,这里就不抄一遍了. 题解 首先建 ...

  10. byte数据常量池问题

    [代码] public class BufferPoolDemo { public static void main(String[] args) { Integer i1=127; Integer ...