Hello 算法 1.2.0 繁体中文 Java 版”從這個意義上看,這本 書並非完全“免費”。為了不辜負你為本書所付出的寶貴“注意力”,我會竭盡所能,投入最大的“注意力” 來完成本書的創作。 本人自知學疏才淺,書中內容雖然已經過一段時間的打磨,但一定仍有許多錯誤,懇請各位老師與同學批評 指正。 本書中的程式碼附有可一鍵執行的原始檔,託管於 github.com/krahets/hello‑algo 倉庫。 動畫在 PDF 內的展示效果有限,可訪問 www “如果我當年學資料結構與演算法時有《Hello 演算法》,學起來應該會簡單 10 倍!” ——李沐,亞馬遜資深首席科學家 電腦的出現為世界帶來了巨大的變革,它憑藉高速的運算能力與卓越的可程式化特性,成為執行演算法 與處理資料的理想媒介。無論是電玩遊戲的逼真畫面、自動駕駛的智慧決策,還是 AlphaGo 的精彩棋局、 ChatGPT 的自然互動,這些應用都是演算法在電腦上的精妙演繹。 事實上,在電腦問世之前,演算 的進步,演算法逐漸變得更加精細和複雜。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“0 码力 | 379 页 | 18.79 MB | 10 月前3
JAVA 应用与开发 - 泛型让我们愉快的 Coding 起来吧... ��� �������������� October 5, 2018 ���� 理��型的��,������� ▶ �合���的�型 ▶ �型的����� ������型类��型�法 ▶ 理�类型参数 ▶ 理�����������的�型类��型�法 ▶ 受��的类型参数 ��处理�型类型,����������型�器����作 1 19 �型�法的类型参数����的,���������类型的 ���处理��� 2. 要��类型��的�法为���法时,������为�型� 法,�为���法不������类的类型参数� 13 19 �泛型��� �型类��理�为具������������型的类型� Person� Person �����类,���不 �的类型� ����型类�不�的类型参数�合��的类型��不��� 0 码力 | 35 页 | 587.40 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东Java 的内存分配(基础) 栈内存 存放定义的基本类型的变量和对象的引用变量,超出作用域将自动释放。 堆内存 存放由 new 运算符创建的对象和数组,由 Java 虚拟机的自动垃圾回收器来管 理。 Java 数组的主要特点包括以下方面: • 数组是相同数据类型的元素的集合; • 数组中的各元素有先后顺序,它们在内存中按照这个先后顺序连续存放; • 数组的元素用整个数组的名字和它自己在数组中的顺序位置来表示。 7 个阶段:创建阶段、应用阶段、不可视阶 段、 不可到达阶段、可收集阶段、终结阶段、释放阶段。 Java 需要内存管理,在 JVM 中运行的对象的整个生命周期中,进行人为的内存管 理是必要的,主要原因体现在: • 虽然 JVM 已经代替开发者完成了对内存的管理,但是硬件本身的资源是有限的。 • 如果 Java 的开发人员不注意内存的使用依然会造成较高的内存消耗,导致性能 的降低。 中处理违例的第二种方式如果。一个方法中的代码在运行时 可能生成某种异常,但在本方法中不必、或者不能确定如何处理此类异常时,则可以 声明抛弃该异常;此时方法中将不对此类异常进行处理, 而是由该方法的调用者负责处 理。语法格式如下: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
JAVA 应用与开发 - 控制台应用程序设计����的�����������������组�� �为������ O 系统属性的用途 ����� URL �����数据���� Java Mail �件���� �������一���来���理������数据�的��� ���� ������方法���可������行������的�� ��� 1 >java -Dmmmm=vvvv SystemPropertiesSample 11 41 ����的�����������������组�� �为������ O 系统属性的用途 ����� URL �����数据���� Java Mail �件���� �������一���来���理������数据�的��� ���� ������方法���可������行������的�� ��� 1 >java -Dmmmm=vvvv SystemPropertiesSample 11 410 码力 | 63 页 | 2.84 MB | 1 年前3
Java 应用与开发 - Java EE 体系结构Web 容器(Web Container)运行在符合 Java EE 规范的应 用服务器上,驻留在服务器端,外部应用可以通过HTTP 和 HTTPS协议与 Web 容器通信,进而访问 Web 容器管 理的 Web 组件。 ▶ Web 容器管理 Web 组件的运行和调用。Java EE 定义了两 种 Web 组件:Servlet 和 JSP,可以产生动态 Web 内容, 结合数据�技术,用于动态 Web Web 容器(Web Container)运行在符合 Java EE 规范的应 用服务器上,驻留在服务器端,外部应用可以通过HTTP 和 HTTPS协议与 Web 容器通信,进而访问 Web 容器管 理的 Web 组件。 ▶ Web 容器管理 Web 组件的运行和调用。Java EE 定义了两 种 Web 组件:Servlet 和 JSP,可以产生动态 Web 内容, 结合数据�技术,用于动态 Web0 码力 | 40 页 | 1.89 MB | 1 年前3
跟我学Shiro - 张开涛的 DispatcherServlet 或 者 Struts2 中 的 FilterDispatcher;是 Shiro 的心脏;所有具体的交互都通过 SecurityManager 进行控制;它管 理着所有 Subject、且负责进行认证和授权、及会话、缓存的管理。 Authenticator:认证器,负责主体认证的,这是一个扩展点,如果用户觉得 Shiro 默认的 不好,可以自定义实现;其需要认证策略(Authentication Shiro 的核心组件,顶层组件 SecurityManager 直接继承了 SessionManager,且提供了 SessionsSecurityManager 实 现 直 接 把 会 话 管 理 委 托 给 相 应 的 SessionManager , DefaultSecurityManager 及 DefaultWebSecurityManager 默认 SecurityManager 都继承了 .interval:设置调度时间间隔,单位毫秒,默认就是 1 小时; sessionValidationScheduler.sessionManager:设置会话验证调度器进行会话验证时的会话管 理器; sessionManager.globalSessionTimeout:设置全局会话超时时间,默认 30 分钟,即如果 30 分钟内没有访问会话将过期; sessionManager.ses0 码力 | 219 页 | 4.16 MB | 10 月前3
Nacos架构&原理
配置(Configuration) 在系统开发过程中通常会将⼀些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配 置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物 理运行环境进行适配。配置管理⼀般包含在系统部署的过程中,由系统管理员或者运维人员完成这 个步骤。配置变更是调整系统运行时的行为的有效手段之⼀。 配置管理 (Configuration Management) 感知配置变更消息,需要将配置变更消息通知推送当前监听的客户端;网络不稳定时,客户端 接收失败,需要支持重推,并告警。 ○ 感知客户端连接断开事件,将连接注销,并且清空连接对应的上下文,比如监听信息上下文清 理。 Server 之间通信 ○ 单个 Server 需要获取到集群的所有 Server 间的列表,并且为每⼀个 Server 创建独立的长链 接;连接断开时,需要进行重连,服务端列表发生变更时,需要创建新节点的长链接,销毁下 来实现动态配置管理是很难 实现的,Nacos 通过引入配置管理工具 confd 可以实现系统的配置变更做到无代码侵入性。 confd 是⼀个轻量级的配置管理工具,可以通过查询后端存储系统来实现第三方系统的动态配置管 理,如 nginx、tomcat、haproxy、docker 配置等。confd 目前支持的后端有 etcd、zookeeper 等,Nacos 1.1 版本通过对 confd 定制支持 Nacos0 码力 | 326 页 | 12.83 MB | 9 月前3
MySQL ZIP Archive版本安装说明Archive,mysql-5.7.20-winx64.zip 3 软件安装 使用管理员权限打开命令提示符,步骤:开始菜单选择Windows系统 - 命令提示符 - 在其上点击右键选择 - 更多 - 以管 理员身份运行。 定位到C盘根目录,创建MySQL目录。 将所下载的MySQL软件压缩包mysql-5.7.20-winx64.zip放在MySQL目录下,并使用解压缩工具(WinRAR等)解压 缩;cd到解压目录内,新建my0 码力 | 4 页 | 756.23 KB | 1 年前3
Linux Docker Messcker会先加载这个Image和依 赖的父Images以及Base Image,用户的进程运行在writeable的 Layer中。所有Parent Image中的数据信息以及ID、网络和LXC管 理的资源限制等具体Container的配置,构成一个Docker概念上 的Container。 Install Docker on Ubuntu 14.04 (LTS) sudo apt-get update0 码力 | 77 页 | 7.40 MB | 1 年前3
Java 应用与开发 - Java GUI 编程GUI 事件处理 Applet Swing Swing 典型组件(课后自学) BorderLayout O 边界布局 是 Window 及其子类(包括 Frame、Dialog)容器的默认布局管 理器。 O 布局效果 ▶ BorderLayout 将整个容器的布局划分成东、西、南、北、中 五个区域,组件只能被添加到指定的区域。如不指定组件的 加入部位,则默认加入到 Center 区域。 ▶0 码力 | 73 页 | 876.31 KB | 1 年前3
共 17 条
- 1
- 2













