文档章节

《Java编程思想》第四版读书笔记 第六章

一万
 一万
发布于 2016/05/07 14:41
字数 1068
阅读 135
收藏 1

6.1

文中提到“Java可运行程序是一组可以打包并压缩为一个JAR的.class文件。Java解释器负责这些文件的查找、装载和解释”。注释中又提到“Java中并不强求必须要使用解释器。因为存在用来生成一个单一的可执行文件的本地代码Java编译器”。这里实际上是提到了JVM的两种执行方式,编译器将java文件编译成class文件后,具体的执行方式有两种:

(1)解释执行,将字节码视为脚本,Java解释器解释成本地方法;

(2)由JIT编译成本地机器码执行。(JIT可见第五章的读书笔记)

 

如果使用package语句,它必须是文件中除注释外的第一句程序代码。

文中提到Java包的命名全部使用小写字母,应该是官方的一种规范,编码测试时使用大写字母也可,不过eclipse似乎在看待包时不区分大小写。

CLASSPATH环境变量包含一个或多个目录,用作查找class文件的根目录。在使用JAR文件时,必须在CLASSPATH路径中将JAR文件的实际名称写清楚,而不仅是指明它所在的位置目录。

作者提到,Java去掉了C的条件编译功能,因为它大多数时候是用于解决跨平台问题的。而Java本身可以自动跨平台。条件编译的另一个用途是,调试环境和生成环境的切换。在Java中可以通过改变包来实现。比如练习3中提到的在debug包和debugoff包中包含一个名字相同的类,由测试环境切换到生产环境时把包由debug切换到debugoff。

练习3中的翻译有一些问题,大概意思应是:第一个版本将String参数显示在控制台上,第二个版本什么都不做。

6.2

作者再次强调:不要误认为Java总是将当前目录视作是查找行为的起点之一。如果你的CLASSPATH之中缺少“.”作为路径之一的话,Java就不会查找那里。

 

将构造函数设置为private有两个效果:

第一,控制如何创建对象,阻止别人直接访问某个构造函数;

第二,阻碍对此类的继承(如果所有构造函数都是private)。

 

protected也提供包访问权限

练习6读起来让我有些费解,查了一下英文原版,我的翻译是这样的:

创建一个带有protected数据的类;并创建在同一文件中的另一个类,这个类带有一个方法操作第一个类的protected数据。

 

6.3

有两个重要的原因,将权限的边界划在了数据类型的内部:

第一个原因是要设定客户端程序员可以使用和不可以使用的界限。可以在结构中建立自己的内部机制,不必担心客户端程序员会偶然的将内部机制当作是他们可以使用的接口的一部分;

第二个原因是接口和具体实现进行分离。如果结构是用于一组程序之中,而客户端程序员除了可以调用public方法之外什么也不可以做,那么代码编写者就可以随意更改不是publicde 代码,而不会破坏客户端代码。

 

6.4

编译单元内(一个java文件内)可以完全不带public的类。在这种情况下可以随意对文件进行命名。

除内部类以外,类既不可以是private的也不可以是protected。所以对于类的访问权限仅有两个选择包访问权限或public。

P123第一段最后一句话根据上下文有些难以理解。我的理解是作者从本段开始处的讨论类的访问修饰符,跳跃到讨论将类的构造函数设置成private,这样虽然无法创建该类的对象依旧可以访问该类的public static函数。

© 著作权归作者所有

共有 人打赏支持
一万
粉丝 28
博文 102
码字总数 173386
作品 0
朝阳
程序员
读书笔记之《Java并发编程的艺术》-线程池和Executor的子孙们

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
1
读书笔记之《Java并发编程的艺术》-并发编程基础

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
8
读书笔记之《Java并发编程的艺术》-并发编程容器和框架(重要)

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
1
读书笔记之《Java并发编程的艺术》-java中的锁

读书笔记部分内容来源书出版书,版权归本书作者,如有错误,请指正。 欢迎star、fork,读书笔记系列会同步更新 git https://github.com/xuminwlt/j360-jdk module j360-jdk-thread/me.j360....

Hi徐敏
2015/11/11
0
0
BAT等大厂Android面试书单和知识点清单

java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比...

android自学
07/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

arts-week5

Algorithm 824. Goat Latin - LeetCode 152. Maximum Product Subarray - LeetCode 110. Balanced Binary Tree - LeetCode 67. Two Sum II - Input array is sorted - LeetCode 665. Non-dec......

yysue
14分钟前
0
0
iOS开发之AddressBook框架详解

iOS开发之AddressBook框架详解 一、写在前面 首先,AddressBook框架是一个已经过时的框架,iOS9之后官方提供了Contacts框架来进行用户通讯录相关操作。尽管如此,AddressBook框架依然是一个非...

珲少
43分钟前
1
0
两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践

Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot...

Java填坑之路
今天
3
0
《Spring5学习》04 - 面向切面编程

一、Spring面向切面编程的基本概念 面向切面编程(即AOP):把项目中需要再多处使用的功能比如日志、安全和事务等集中到一个类中处理,而不用在每个需要用到该功能的地方显式调用。 横切关注...

老韭菜
今天
2
0
day61-20180819-流利阅读笔记

跑道没了,它们还在跑:澳门赛狗业的遗孤 Daniel 2018-08-19 1.今日导读 相信你早就知道香港有个赛马会,可是你听说过香港的邻居澳门原本有个赛狗会吗?其实,对于澳门人来说,赛狗这项活动历...

aibinxiao
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部