阅读记录追踪:前言部分

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

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. js获取url协议、url, 端口号等信息路由信息

    以路径为 http://www.baidu.com  为例 console.log("location:"+window.location.href); >> &quo ...

  2. windows客户端走代理上网

    前提:在大型网络中,由于众多服务器及安全性考虑,内网服务器是不能上外网的,但是为了满足某些服务的需要,一定会搭建代理服务器的. 以下是windows客户端走代理服务器的操作:       两下确定就可 ...

  3. 步步为营-74-Request,Response和server的其他成员

    Request 1 Request.UrlReferrer 获取请求的来源 2 Request.UserHostAddress 获取访问者的IP地址 3 Request.Cookies 获取浏览器发送 ...

  4. windows上编译boost库

    要用xx库,编译boost时就指定--with-xx.例如: # 下载并解压boost_1.58 # 进入boost_1.58目录 bjam.exe toolset=msvc-14.0 --build ...

  5. 一脸懵逼学习keepalived(对Nginx进行热备)

    1:Keepalived的官方网址:http://www.keepalived.org/ 2:Keepalived:可以实现高可靠: 高可靠的概念: HA(High Available), 高可用性集 ...

  6. C++ ifstream ofstream

    原文出自[比特网],转载请保留原文链接:http://soft.chinabyte.com/database/460/11433960.sh [导读] ofstream是从内存到硬盘,ifstream ...

  7. PyTorch中的backward [转]

    转自:https://sherlockliao.github.io/2017/07/10/backward/ backward只能被应用在一个标量上,也就是一个一维tensor,或者传入跟变量相关的梯 ...

  8. 封装curl的get和post请求

    /** * GET 请求 * @param string $url */ function http_get($url){ $oCurl = curl_init(); if(stripos($url, ...

  9. centos6.5上安装redis3.2.1遇见的坑

    解决方法: 安装gcc即可解决 解决方法: make MALLOC=libc 原因分析: 说关于分配器allocator, 如果有MALLOC  这个 环境变量, 会有用这个环境变量的 去建立Redi ...

  10. sparkStreaming运行yarn,提交任务报错

    op.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302) ...