Thingking in Java阅读笔记(一) 第一章到第四章

第一章
一 疑难问题总结:
1 public,private,friendly,protected
public:

具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。

protected:

主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西

default:

有时候也称为friendly,它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

private:

访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

在这里插入图片描述
注意:java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

2 包访问权限(默认访问权限):p5
同上。书中第五页这里指的就是默认的friendly。

3 继承,多态,封装
这是面向对象编程的三大特性。
https://www.cnblogs.com/hysum/p/7100874.html

4 组合和聚合,“动态发生”,p5
组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上,

比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象也同时消亡(没有任何一个引用指向它,成了垃圾对象),这种情况叫组合(composite)。//人和大脑

反之b所指向的对象还会有另外的引用指向它,这种情况叫聚合(aggregation)。//人和电脑

public class Person {
Brain brain;
public Person(){//组合
brain=new Brain();
}

public static void main(String[] args) {
    Person person=new Person();
}

}
class Brain{

}

public class Human {
Computer computer;
Human(Computer computer1){
computer=computer1;
}

public static void main(String[] args) {
    Computer c=new Computer();//聚合
    Human h=new Human(c);
}

}
class Computer{

}

5 前期绑定 后期绑定 p9
书中说,为了解决编译时不知道该执行泛化的哪个代码的问题,使用后期绑定。
https://blog.csdn.net/youngyouth/article/details/79747043

6 单根继承结构 P11
书上提到了单根继承结构保证所有对象具备某些功能,并且使垃圾回收器的实现变得容易很多。
单个继承结构还有很多好处,下面的文章说得很详细:
https://blog.csdn.net/lv_victor/article/details/51987143

7 java垃圾回收机制

8 参数化类型(泛型) P12
https://blog.csdn.net/romantic112/article/details/80513372

9 automatic variable,scoped variable;
堆heap;堆栈;动态内存分配;内存泄漏。
(1) heap和stack的区别
https://blog.csdn.net/program_guys/article/details/78568031
(2) 动态内存分配:
所谓动态内存分配(Dynamic Memory Allocation)就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。

10 线程,并发

11 服务端(编程),客户端(编程)

12 中间件
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。
中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

13 CGI 通用网关接口: p16
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如评论之类的东西。接着用户按一下“发布或提交”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的CGI程序中,于是CGI程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后CGI程序将执行结果返回给服务器(webServer),然后服务器将结果返回给客户端,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。

14 intranet 企业内部网:p19
Intranet称为企业内部网,或称内部网、内联网、内网,是一个使用与因特网同样技术的计算机网络,它通常建立在一个企业或组织的内部并为其成员提供信息的共享和交流等服务,例如万维网,文件传输,电子邮件等。
可以说Intranet是Internet技术在企业内部的应用。它的核心技术是基于Web的计算。Intranet的基本思想是:在内部网络上采用TCP/IP作为通信协议,利用Internet的Web模型作为标准信息平台,同时建立防火墙把内部网和Internet分开。当然Intranet并非一定要和Internet连接在一起,它完全可以自成一体作为一个独立的网络。

二 知识点整理:

第二章
一 疑难问题
1 句柄handler
句柄(handle),有多种意义,其中第一种是指程序设计,第二种是指Windows编程。现在大部分都是指程序设计/程序开发这类。
第一种解释:句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
第二种解释:整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。
注:书中的句柄可能指的并不是这两个意思。

2 流对象、持久化对象(不在RAM上) p22
(1)流对象:
对象的输入输出流的作用: 用于写入对象 的信息和读取对象的信息。 使得对象持久化。
ObjectInputStream : 对象输入流
ObjectOutPutStream :对象输出流
(2)持久化对象:
对象持久化是指将内存中的对象保存到可永久保存的存储设备中(如磁盘)的一种技术。
hibernate的持久化状态:
持久化状态对象存在与数据库中的数据关联,它总是与会话状态(Session)和事务(Transaction)关联在一起。当持久化状态对象发生变动时并不会立即执行数据库操作,只有当事务结束时,才会更新数据库,以便保证Hibernate的持久化对象和数据库操作的同步性。
当持久化状态对象变为托管状态对象时,它将不在Hibernate持久层的管理范围之内。
OID不为null;

位于Session缓存中;

若在数据库中已经有和其对应的记录,持久化对象和数据库中的相关记录对应

Session在flush缓存时,会根据持久化对象的属性变化,来同步更新数据库

在同一个Session实例的缓存中,数据库表中的每条记录只对应唯一的持久化对象。

3 自动包装功能、包装器类
(1)包装器类和基本数据类型的区别:
https://www.cnblogs.com/huajiezh/p/5225637.html
(2)自动装箱和拆箱:
https://www.cnblogs.com/wang-yaz/p/8516151.html

4 java真的不存在内存泄漏的问题吗?
http://www.importnew.com/12961.html
https://www.cnblogs.com/yl-saber/p/6907517.html
https://www.cnblogs.com/Berryxiong/p/6220890.html

5 java中的引用和对象

6 static:
可以直接调用它的类来调用对象和方法,无需创建对象。

7 ant
https://www.cnblogs.com/jsfx/p/6233645.html

8 javadoc

9 嵌入式html

二 知识点整理:

第三章
一 疑难问题:
1 别名现象 P40
赋值操作的本质,是操作在一个对象的引用上的。
https://blog.csdn.net/fengkai2016/article/details/51016127

2 equal方法 p45
其实,equal()的默认行为是比较引用,而不是比较内容。但是,jdk提供的常用类都对equal()进行了重写。因此,如果是比较自己创建的类的对象,而且非要用equal(),则需要重写equal()。

3 java中的类型转换

二 知识点整理:

第四章
一 疑难问题:
二 知识点整理:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值