《Java 应用与开发》课程讲义 - 王晓东
Green项目 1996.1 1997.2 1998.12 Green所设计的语言命名为Oak(后改名为Java),并推出第一种家庭娱乐设备。 但家电厂商此时对这种跨平台编程技术并不感兴趣 需求不足 互联网的蓬勃发展,由于异构性的大量存在, 跨平台编程技术受到追捧 Sun在SunWorld'95宣布Java技术诞生,发布HotJava浏览器。 一次编写、随处运行 Sun发布Java的 . . . . . . . . . . . . . . . . . . 中国海洋大学信息学院计算机系 第 80 页 / 共 306 页 7.6. 课后习题 � 7 � 无枚举类型前如何解决上述需求? 一般采用声明多个整型常量的做法实现枚举类的功能。 1 public class Week { 2 public static final int MON = 1; 3 public static 始化时指定了这个数组长度,这个数组长度就是不可变的。如果我们需要保存一个可 以动态增长的数据(在编译时无法确定具体的数量),java 的集合类就是一个很好的设 计方案了。 面向存放多个数据的需求,数组和集合类型具有以下用法差异: • 数组用于存放指定长度的数据。 • 需要保存可以动态增长的数据(在编译时无法确定具体的数量),则需要用到 Java 的集合类。 10.1.2 集合类型0 码力 | 330 页 | 6.54 MB | 1 年前3Java 应用与开发 - Java EE 体系结构
J2EE, MS.NET 全面采用框架技术 Struts、Spring、Hibernate、AJAX、 WebWork 软件系统采用分层结构和设计模式 MVC 工厂化流水线开发模式 CVS 可视化软件建模 UML、RUP、ROSE 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 软件开发现状 面向 Internet 开发企业级 Web J2EE, MS.NET 全面采用框架技术 Struts、Spring、Hibernate、AJAX、 WebWork 软件系统采用分层结构和设计模式 MVC 工厂化流水线开发模式 CVS 可视化软件建模 UML、RUP、ROSE 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 软件开发现状 面向 Internet 开发企业级 Web J2EE, MS.NET 全面采用框架技术 Struts、Spring、Hibernate、AJAX、 WebWork 软件系统采用分层结构和设计模式 MVC 工厂化流水线开发模式 CVS 可视化软件建模 UML、RUP、ROSE 大纲 软件开发现状 Java EE 概述 Java EE 容器 Java EE 组件 组件间通信协议 软件开发现状 面向 Internet 开发企业级 Web0 码力 | 40 页 | 1.89 MB | 1 年前3Java 应用与开发 - Java GUI 编程
Applet Swing Swing 典型组件(课后自学) Swing 概述 可视化组件(Visual Component) ▶ 和 AWT 组件类似,Swing 组件也分为可视化和非可视化组 件。 ▶ 可视化组件为能够显示特定形状、颜色和尺寸的组件;非可 视化组件也称支持类,如布局管理器等。 ▶ Swing 可视化组件类名均以 J 开头。 大纲 GUI 组件及布局 GUI 事件处理 Applet 绘制模型的视觉表现,即显示数据。视图就 是用户能够看到并与之进行交互的用户界面。 3. 控制器(Controllor) 负责处理事件或者说程序的流程控制, 接受用户输入,并调用/操控模型和视图以实现用户需求。 大纲 GUI 组件及布局 GUI 事件处理 Applet Swing Swing 典型组件(课后自学) MVC 作用原理 Model Controllor Event View 010 码力 | 73 页 | 876.31 KB | 1 年前3Hello 算法 1.1.0 Java版
代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长 更新条件变量 i++; i *= 2; } return res; } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.java === /* 双层 for 循环 */ 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了 GB23120 码力 | 378 页 | 18.47 MB | 1 年前3Hello 算法 1.0.0 Java版
代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 hello‑algo.com 8 0.2.4 在提问讨论中共同成长 更新条件变量 i++; i *= 2; } return res; } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.java === /* 双层 for 循环 */ 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了「GB2312」字符集,其收录了0 码力 | 376 页 | 17.59 MB | 1 年前3Hello 算法 1.2.0 简体中文 Java 版
代码块与对应的源代码文件 除了本地运行代码,网页版还支持 Python 代码的可视化运行(基于 pythontutor 实现)。如图 0‑6 所示,你 可以点击代码块下方的“可视化运行”来展开视图,观察算法代码的执行过程;也可以点击“全屏观看”,以 获得更好的阅览体验。 图 0‑6 Python 代码的可视化运行 第 0 章 前言 www.hello‑algo.com 8 0.2.4 在提问讨论中共同成长 更新条件变量 i++; i *= 2; } return res; } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.java === /* 双层 for 循环 */ 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了 GB23120 码力 | 379 页 | 18.48 MB | 10 月前3Nacos架构&原理
挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点,这是当时提出的⼀个要求,围绕这个要求,系统要做大量的研发和改造,类似的这种 在适当的时机更新,但是并没有缓存过期(expiration)的概念。 Nacos 配置模型 基础模型 上图是 Nacos 配置管理的基础模型: 25 > Nacos 架构 1. Nacos 提供可视化的控制台,可以对配置进行发布、更新、删除、灰度、版本管理等功能。 2. SDK 可以提供发布配置、更新配置、监听配置等功能。 3. SDK 通过 GRPC 长连接监听配置变更,Server 端对比 成员节点的个数是单个还是多个,并且, 要能够感知到节点的变更情况:节点是增加了还是减少了;当前最新的成员列表信息是什么;以何 种方式去管理成员列表信息;如何快速的支持新的、更优秀的成员列表管理模式等等。 针对上述需求点,我们抽象出了⼀个 MemberLookup 接口,具体设计如下: public interface MemberLookup { /** * start. * * @throws NacosException0 码力 | 326 页 | 12.83 MB | 9 月前3Apache Shiro 1.2.x Reference Manual 中文翻译
你可能会说,“如果我的应用程序的用户交互是登录,我将展示他们 可以单击一个按钮来查看他们的帐户信息。 如果不登录,我将展示一个注册按钮。” 这个陈述例子指出我们开发程序很大程度上是为了满足用户的需求,即使“用户(User)”是另 外一个软件系统而并非一个人,你仍然要写代码对当前与你软件交互的谁(或者什么)的动 作进行回应。 Shiro 从它的设计中表现了这种理念,为了与软件开发者的直觉相配合,Apache Realm,但是至少有一个是需 要的。 Shiro 提供开箱即用的 Realms 来连接安全数据源(或叫地址)如 LDAP、 JDBC、文件配置如INI和属性文件等,如果已有的Realm不能满足你的需求你也可以开发 自己的Realm实现。 和其它内部组件一样,Shiro SecurityManager 管理如何使用 Realms获取 Subject 实例所代表的安全和身份信息。 Detailed = com.company.security.shiro.MyCustomSecurityManager ... 当然,很少需要这样--Shiro 的 SecurityManager 实现可以按需求进行定制,你可能要问一下 自己(或者用户群)你是否真的需要这样做。 Apache Shiro 1.2.x Reference Manual 中文翻译 31 4. Configuration 配置0 码力 | 196 页 | 2.34 MB | 1 年前3Java 应用与开发 - MVC 和框架初步
文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 文件有时候会变成几十 K,甚至 上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web0 码力 | 51 页 | 837.26 KB | 1 年前3基于 Java EE 的企业应用系统设计 - Spring MVC 01
文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 文件有时候会变成几十 K,甚至上百 K,经常难以定位逻辑代码的所在。 2. 编写代码时非常困惑,不知道代码到底应该写在哪里,也不 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web0 码力 | 67 页 | 792.43 KB | 1 年前3
共 21 条
- 1
- 2
- 3