Java基础巩固——《Java核心技术基础·卷一:基础知识》
阅读记录追踪:前言部分
阅读前先看:简介、目录和勘误!
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核心技术基础·卷一:基础知识》的更多相关文章
- Java核心技术卷一基础知识-第11章-异常、断言、日志和调试-读书笔记
第11章 异常.断言.日志和调试 本章内容: * 处理错误 * 捕获异常 * 使用异常机制的技巧 * 使用断言 * 日志 * 调试技巧 * GUI程序排错技巧 * 使用调试器 11.1 处理错误 如果 ...
- Java核心技术卷一基础知识-第10章-部署应用程序和applet-读书笔记
第10章 部署应用程序和applet 本章内容: * JAR文件 * Java Web Start * applet * 应用程序首选项存储 10.1 JAR文件 一个JAR文件既可以包含类文件,也可 ...
- Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记
第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
- java进阶书籍推荐(不包括基础)
个人认为看书有两点好处: 能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “看完书之后再次提升自我的最好途径是看一 ...
- 【Java基础】- Java学习路线图
Java的学习路线图,整理以备自己学习和温习. 1.Java基础 具体内容: 1. 编程基础(开发环境配置.基础语法.基本数据类型.流程控制.常用工具类) 2. 面向对象(继承.封装.多态.抽象类.接 ...
- [Java面试二]Java基础知识精华部分.
一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...
- 20145213 《Java程序设计》实验四 Android开发基础
20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...
- 20145225《Java程序设计》 实验四 Android开发基础
20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...
随机推荐
- 金蝶k3完全卸载,注册表手动清理
HKEY_LOCAL_MACHINE\SOFTWARE\KINGDEE 如果操作系统是64位的,在注册表目录:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node下面还有一个 ...
- gitblit删除版本库
Git客户端不提供删除远程仓库的方法,gitblit服务器网页也不支持删除版本仓库.若要强制删除,Windows下可以: 先在任务管理器中停止gitblit进程,然后将gitblit版本库文件夹中将版 ...
- webpack学习笔记--配置output
Output output 配置如何输出最终想要的代码. output 是一个 object ,里面包含一系列配置项,下面分别介绍它们. filename output.filename 配置 ...
- Elasticsearch snapshot 备份的使用方法 【备忘】
常见的数据库都会提供备份的机制,以解决在数据库无法使用的情况下,可以开启新的实例,然后通过备份来恢复数据减少损失.虽然 Elasticsearch 有良好的容灾性,但由于以下原因,其依然需要备份机制. ...
- javascript扩充基本类型的功能
可以通过给Function.prototype增加方法来使得该方法对所有函数可用. 通过给Function.prototype增加一个method方法,下次给对象增加方法的时候就不必键入prototy ...
- Java基础知识➣网络Socket(六)
概述 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中提供了两种常见的网络协议的支持: TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之 ...
- Android SDK离线安装更新方法
直接使用Android SDK Manager进行下载.更新速度很慢,有时候会出现错误.网上查找了不少网友的方法,做个总结. 1.启动Android SDK Manager,并等待reposity加载 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-10asp.net core session的使用
asp.net core session的使用 Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core ...
- Ubuntu学习
一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大 ...
- 20165235 祁瑛 2018-4 《Java程序设计》第六周学习总结
20165235 祁瑛 2018-4 <Java程序设计>第六周学习总结 教材学习内容总结 常用实用类 (一)1.String类是final类型的,String类型常量也是对象.2.可以使 ...