java编程思想 学习笔记_java编程思想 第一章学习笔记

本书面向初学者介绍Java编程的基本概念和技术,涵盖对象、控制流程、异常处理等内容。通过实例讲解面向对象编程的优势及挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 笔记

引言

《java编程思想》的初衷是面向自学人员的,如果你不会c/c++语言也不用的担心。

书本的章节由作者精心安排,每章节都有重点,而且有练习的间隔时间,能给读者提供扎实的基础。

章节设计

对象对门 对象的概念

一切皆对象 java是怎么去表达对象的,说人话就是用代码怎么去写对象

控制程序流程 主要是三大结构,每种语言都有,不同的是java有标签式break和contiune,其实 go也有这个

初始化和清除 主要是java中的构造函数和垃圾回收器,说理论点就是 对内存的分配和释放,特别是垃圾回收算法可以去深入了解

隐藏实现过程 自我理解--封装性

类再生 类的继承性 可以很好的服用代码等优点

多形性 多态性,,类似go中有种duck-typing的编程思想

对象的容纳 java的集合框架,说人话就是java自带的封装好的数据结构 一般都是 stack queue hashtable hashmap 之类的

违例差错控制 java的异常处理机制。

java IO系统 io是计算机内存和外设的数据流动 网络IO这是一种特殊的IO java里面的IO则是以流的方式来处理,关于流理解的不是很深刻,则需要后续多理解理解。

运行期类型鉴定 也就是java的反射机制,还需要后续的深入理解

传递和返回对象 主要涉及句柄的知识

javaGUI 不重要

多线程 深入理解多线程,学会java对多线程的表达,清楚IO密集型 计算密集型 合理运用多线程

网络编程 也就是socket编程, java从BIO-》NIO-》AIO-》netty

涉及范式 书上说的是举一个例子然后对方案不对的改革,体会到使设计思路变得清晰起来的一种途径, 我可能会理解成设计模式

项目 对前面知识的应用和扩展

第一章 阅读总结 -- 对象入门

1.1 抽象的进步

优点:对管理人员,更快和更廉价的开发和维护过程,对建模处理变得更加简单,能生成更加简单、易于维护的的设计方案。 缺点:学习成本高,设计出优秀的重复性使用的类是具有挑战性的,对初入门面对对象编程的人员是一个痛苦的选择。

第一章作者会来后面来证明面对对象是多么的简单。从思想上解释面对对象程序设计。

汇编是对计算机本体,计算机组织结构的抽象。 BASIC和C等是对汇编的更加抽象,但是并没有屏蔽掉开发人员对计算机组成原理的认识, java在这基础上(c等低级语言)的抽象,我觉得也可以理解成封装,把复杂的东西封装起来,给开发人员调用就行了,不需要他们k 4. 每个对象都拥有其类型 5. 某一特定类型的所有对象都可以接受同样的消息。

1.2 每个对象都有一个接口

面向对象语言,实际上是创建新的数据类型,-- 可以对应到C的结构体。 类描述了相同特性和行为的对象集合,所以类实际上就是一个数据类型,我以前最开始再理解C的结构体的时候就是把结构体理解成一种开发者自定义的数据类型。

向某个对象发送消息就是调用某个对象的方法,

UML的设计

1.3 每个对象都提供服务

试图开发或者理解程序设计师,最好的方法之一就是将对象想象为“服务提供者”。

代码是的设计可以先从程序提供了什么服务开始思考,设计程序应该有什么类,不同的类分别提供了什么服务等。。。这样还能简化别人使用你的代码的学习成本

1.4 被隐藏的具体实现

用一些权限修饰符,限制某些成员的权限,权限不能给的太大,也不能给的太小。public private protected (还有一种默认的权限) public 》 protected》(default)》private

1.5 复用具体实现

一个被设计完并测试完的类是可以复用的,代码复用是java中提供的一个了不起的优点之一。 最简单的使用就是:实例化某个提供的类,也可以说成是创建一个对象(组合),其次是可以 继承类和实现接口

1.6 继承

继承应该是复用代码最常用的方式了,我们不但可以继承父类已有的数据和方法,还可以增加和修改父类的方法,但是同时也有弊端,如果你修改了基类(也可以称作父类,超类),就可以影响被继承的类。

垃圾回收的例子 -- 以垃圾为基类 几何图形的例子 --

5481c8eca4696da2217076f51b57fbbd.png

导出类继承了基类后,不但复制了基类的数据和方法,更重要的是复制了基类的接口(这里的接口指的是对象的方法),同时可以发送给基类对象的消息也可以发送给导出类 一个圆同时也是一个几何图形,同时体现了 多态性

1.6.1 “是一个” 与 “像是一个” 关系

举例 圆是继承于几何图形的,我们就可以说:一个圆就是一个几何图形。判断继承就要用:is-a来描述类之间的关系。 一般我们在新的导出类中添加了新的接口,也就是拓展了接口,我们就可以这样来描述基类和导出类的关系:is-like-a,举例,如果你家的空调(为了制冷)坏了,你去买一个热力泵替换他(热力泵既可以制冷也可以制热),这时候我们就可以说:空调 is-like-a 热力泵

a4353591f009f763e5a8e72c152df841.png

1.7 伴随多态的可互换对象

阐述我对前期绑定(编译阶段决定),和后期绑定(运行阶段决定)的理解 (重点阐述) 因为java本身自动支持了后期绑定(在运行阶段确定),所以天然支持多态

上转型和下转型

1.8 单继承结构

所有的类都是继承于 Object 类,单继承结构是有一定的好处的(代码兼容性) 单继承也使得垃圾回收变得更加容易,-- 可以拓展出去,理解下堆内存和栈内存,和栈数据结构。(堆,栈,堆栈)

1.9 容器

说得比较抽象一点可以称作“容器”,再具体一点可以叫做数组或者链表,再具体一点就是 一片内存空间 比如在CPP中就是 STL,java中也有很多满足不同需求的容器,比如:List,Map,Set,其实本质上就是对数据结构中常用结构的封装,或者叫实现。

java中有各种各样的容器,需要我们针对不同的需求和场景选择不同的容器

1.9.1 参数化类型

泛型--在容器中如果不适用泛型,就会有向上转型和向下转型, 在java中所有的类都继承于 Object 类,golang中,所有的结构体都实现了 interface{} 空结构体,这是比较相似的。 但是为什么go不提供泛型呢?可以思考

1.10 对象的创建和生命周期

对于自带垃圾回收的语言,一个好的垃圾回收机制对程序的执行效率来说是非常重要的, 栈上的内存效率远高于堆上的内存,

1.11 异常处理,处理错误

大多数错误处理的机制的主要问题在于,他们都依赖于程序员的自我警惕性,可以对比go和java的异常处理 异常处理不是面向对象的特征,在面向对象出来之前就已经存在了。

java中本身就内置了异常处理,并强制要求使用,不然编译器就会报错。

1.12 并发编程

在java中的并发编程往往都是通过多线程来解决,在go中往往都是通过多协程来解决。 随之而来的就是对临界资源的竞争问题,然后就会谈到锁。

1.13 Java与Internet

java Web的发展历史,看看就行了

1.14 总结

虽然初学OOP可能比较恼火,但是对于一个设计良好的程序中,面对对象的代码量会更少,理解起来也更容易。

有疑问加站长微信联系(非本文作者)

在当今数字化教育蓬勃发展的背景下,校园网络作为教学与科研的关键基础设施,其重要性日益凸显。本文旨在探讨小型校园网络的规划与设计,以满足网络实验教学的需求,为相关专业师生提供一个高效、稳定且功能完备的网络实验环境,助力教学活动顺利开展,提升学生的实践能力和创新思维。 网络实验教学要求校园网络具备高度的灵活性与可扩展性。学生需在实验过程中模拟各种网络拓扑结构、配置不同网络设备参数,这就要求网络能够快速调整资源分配,适应多样化的实验场景。同时,为保证实验数据的准确性和实验过程的稳定性,网络的高可靠性与低延迟特性不可或缺。此外,考虑到校园内多用户同时接入的场景,网络还需具备良好的并发处理能力,确保每位用户都能流畅地进行实验操作。 采用层次化结构构建小型校园网络,分为核心层、汇聚层与接入层。核心层选用高性能交换机,负责高速数据转发与关键路由决策,保障网络主干的稳定运行;汇聚层连接不同教学区域,实现数据的汇聚与初步处理,通过划分虚拟局域网(VLAN)对不同专业或班级的实验流量进行隔离,避免相互干扰;接入层则直接连接学生终端设备,提供充足的接入端口,满足大量用户同时接入的需求,并通过端口安全策略限制非法设备接入,保障网络安全。 在设备选型上,核心层交换机需具备高吞吐量、低延迟以及丰富的路由协议支持能力,以满足复杂网络流量的转发需求;汇聚层交换机则注重VLAN划分与管理功能,以及对链路聚合的支持,提升网络的可靠性和带宽利用率;接入层交换机则需具备高密度端口、灵活的端口配置以及完善的用户认证功能。配置方面,通过静态路由与动态路由协议相结合的方式,确保网络路径的最优选择;在汇聚层与接入层设备上启用VLAN Trunk技术,实现不同VLAN间的数据交换;同时,利用网络管理软件对设备进行集中监控与管理,实时掌握网络运行状态,及时发现并解决潜在问题。 网络安全是校园网络规划的关键环节。在接入层设置严
管理后台HTML页面是Web开发中一种常见的实践,主要用于构建企业或组织内部的管理界面,具备数据监控、用户管理、内容编辑等功能。本文将探讨一套美观易用的二级菜单目设计,帮助开发者创建高效且直观的后台管理系统。 HTML5:作为超文本标记语言的最新版本,HTML5增强了网页的互动性和可访问性,提供了更多语义元素,如<header>、<nav>、<section>、<article>等,有助于清晰地定义网页结构。在管理后台中,HTML5可用于构建页面布局,划分功能区域,并集成多媒体内容,如图像、音频和视频。 界面设计:良好的管理后台界面应具备清晰的导航、一致的布局和易于理解的图标。二级菜单目设计能够有效组织信息,主菜单涵盖大类功能,次级菜单则提供更具体的操作选项,通过展开和折叠实现层次感,降低用户认知负担。 CSS:CSS是用于控制网页外观和布局的语言,可对HTML元素进行样式设置,包括颜色、字体、布局等。在管理后台中,CSS能够实现响应式设计,使页面在不同设备上具有良好的显示效果。借助CSS预处理器(如Sass或Less),可以编写更高效、模块化的样式代码,便于维护。 文件结构: guanli.html:可能是管理页面的主入口,包含后台的主要功能和布局。 xitong.html:可能是系统设置或配置页面,用于管理员调整系统参数。 denglu.html:登页面,通常包含用户名和密码输入框、登按钮,以及注册或忘记密码的链接。 image文件夹:存放页面使用的图片资源,如图标、背景图等。 css文件夹:包含后台系统的样式文件,如全局样式表style.css或按模块划分的样式文件。 响应式设计:在移动设备普及的背景下,管理后台需要支持多种屏幕尺寸。通过媒体查询(Media Queries)和流式布局(Fluid Grids),可以确保后台在桌面、平板和手机上都能良好展示。
标题Python基于Hadoop的租房数据分析系统的设计与实现AI更换标题第1章引言介绍租房数据分析的重要性,以及Hadoop和Python在数据分析领域的应用优势。1.1研究背景与意义分析租房市场的现状,说明数据分析在租房市场中的重要作用。1.2国内外研究现状概述Hadoop和Python在数据分析领域的应用现状及发展趋势。1.3论文研究内容与方法阐述论文的研究目标、主要研究内容和所采用的技术方法。第2章相关技术理论详细介绍Hadoop和Python的相关技术理论。2.1Hadoop技术概述解释Hadoop的基本概念、核心组件及其工作原理。2.2Python技术概述阐述Python在数据处理和分析方面的优势及相关库函数。2.3Hadoop与Python的结合应用讨论Hadoop与Python在数据处理和分析中的结合方式及优势。第3章租房数据分析系统设计详细描述基于Hadoop的租房数据分析系统的设计思路和实现方案。3.1系统架构设计给出系统的整体架构设计,包括数据采集、存储、处理和分析等模块。3.2数据采集与预处理介绍数据的来源、采集方式和预处理流程。3.3数据存储与管理阐述数据在Hadoop平台上的存储和管理方式。第4章租房数据分析系统实现详细介绍租房数据分析系统的实现过程,包括关键代码和算法。4.1数据分析算法实现给出数据分析算法的具体实现步骤和关键代码。4.2系统界面设计与实现介绍系统界面的设计思路和实现方法,包括前端和后端的交互方式。4.3系统测试与优化对系统进行测试,发现并解决问题,同时对系统进行优化以提高性能。第5章实验结果与分析对租房数据分析系统进行实验验证,并对实验结果进行详细分析。5.1实验环境与数据集介绍实验所采用的环境和数据集,包括数据来源和规模等。5.2实验方法与步骤给出实验的具体方法和步骤,包括数据预处理、模型训练和测试等。5.3实验结果分析从多
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值