讲义专题

疯狂java讲义之类加载与反射

 1. 类的加载, 连接和初始化     1.1 JVM和类      当我们调用java命令运行某个java程序时,该命令将会启动一条Java虚拟机进程,不管该Java程序多复杂、启动了多少个线程,它们都处于该虚拟机进程里、使用同一个进程里的内存区。这几种情况的JVM进程被终止:      1) 程序运行完正常结束.       2) 运行到System.exit()或

疯狂java讲义之泛型

 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumi

【考研数学】武忠祥《基础篇》《辅导讲义》怎么用?

多年以后,武老师面对经典的错误,标准的零分,准会想起与有道签合同的那个遥远的下午。🧐   2021年之前,武老师的基础课对应之前《复习全书基础篇》,强化课对应《高等数学辅导讲义》。   2021年,武老师出走李永乐团队,加入有道。   2022年,《高等数学基础篇》出版,配合武老师的基础课,替代《复习全书基础篇》。 所以如果题主看的是22年之后武老师的视频课,对应的教材是 《高等数

北航学长的《数据竞赛入门讲义》分享:我是靠这些拿到冠军的

数据竞赛近几年在国内发展迅速,参加数据竞赛对于参赛者来说可以锻炼数据分析,算法建模的能力,运气好的话还可以获得不菲的奖金;对于公司来说,也可以从众多优秀的方案中选取有价值的部分用于自己的生产,是一件互利共赢的事情。 但数据竞赛领域是一个相对较新的领域,没有太多系统的学习资料,很多刚接触的朋友都会感到迷茫无从下手。所以根据这两年的比赛经验我整理了这份数据竞赛入门讲义,供大家学习参考。 《竞赛入门

疯狂java讲义---多态,强制类型转换,向上转型

多态概念:  Java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现所谓的多态。 代码示例:class BaseClass{public int book = 6;public void base(){System.out.println("父类的普通方法")

java疯狂讲义总结-自动装箱和拆箱(2)

众所周知,Java是面向对象的编程语言,但它也包含了8种基本数据类型,这8中基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有成员变量、方法可以被调用。Java之所以提供这8种基本数据类型,主要是为了照顾程序员的传统习惯。确实,像我这种刚开始主要学习和使用C语言的程序员来说,偶尔还是习惯的在java代码里面使用int而不是Integer。     这8种

java疯狂讲义总结-成员变量和局部变量(1)

首先解释概念: 成员变量:指的是在类里面定义的变量。成员变量又可细分为实例变量和类变量。         实例变量:不以static修饰的变量,也可以理解为对象变量。         类变量:以static修饰的变量,访问时可以直接使用类名.的方式去访问。 局部变量:方法内部定义的变量。局部变量根据定义形式的不同,又可以分为如下3种,形参,方法局部变量,代码块局部变量。

并行计算课程和讲义-华东师范大学-数学科学学院

并行计算 高等数值分析(高性能计算,并行计算) (Parallel and High Performance Computing) 基本信息: 教材:本课程主要讲授数值并行计算,内容以课堂讲义为主主要参考资料: 并行计算与实现技术,迟学斌等,科学出版社,2015 并行计算导论,张林波等, 清华大学出版社,2006 Parallel Programming: Concepts and Prac

队内第一次集训——基础DP(讲义篇)

之前比赛吃太多DP的亏了....好多题都看不出DP,还有的是看出来了但是动态转移方程推不出来,所以在此准备先恶补DP... 废话不多说,开始正题 DP其实就是,把一个大问题分解成若干子问题,通过解决若干子问题来获得最终结果,这样说起来有点像分治,但实际上并不是,因为DP需要每一步都保留目前的最优解,同时满足无后效性。无后效性就是过去已经考虑过的情况就不会对后面产生影响了,直接就不用理他

《疯狂java讲义》学习(7):封装

封装 在前面程序中经常出现通过某个对象的直接访问其Field的情形,这可能引起一些潜在的问题,比如将某个Person的age Field直接设为1000,这在语法上没有任何问题,但显然违背了现实。因此,Java程序推荐将类和对象的Field进行封装。 封装的意义 封装作为面向对象三大特征之一,作用是将对象的状态隐藏在对象内部,通过该类的方法对内部信息的操作和访问,对一个类或者对象实现良好的封

《疯狂java讲义》学习(6):成员变量和局部变量

成员变量和局部变量 在Java语言中,根据定义变量位置的不同,可以将变量分成两大类: 成员变量局部变量 成员变量和局部变量的运行机制存在较大差异 成员变量和局部变量差异 成员变量 成员变量指的是在类范围里定义的变量,也就是前面所介绍的Field;局部变量指的是在方法里定义的变量。变量划分如下图: 类Field的作用域与这个类的生存范围相同;而实例Field则从该类的实例被创建起开始

《疯狂java讲义》学习(5):方法

方法详解 方法是类或对象的行为特征的抽象,方法是类或对象最重要的组成部分。但从功能上来看,方法完全类似于传统结构化程序设计里的函数。值得指出的是,Java里的方法不能独立存在,所有的方法都必须定义在类里。方法在逻辑上要么属于类,要么属于对象。 方法的属性 不论是从定义方法的语法来看,还是从方法的功能来看,都不难发现方法和函数之间的相似性。实际上,方法确实是由传统的函数发展而来的,方法与传统的

《疯狂java讲义》学习(4):类(class)

类 Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用变量。也就是说,所有类是引用数据类型。 定义类 面向对象的程式设计过程有两个概念:类(class)和对象(object,也被称为实例,instance),类是对象的抽象。 Java语言里定义类的简单语法如下: public class Person

《疯狂java讲义》学习(2):流程控制

流程控制 不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。 顺序结构 任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转 分支结构 Java提供了两种常见的分支控制结构: if条件语句 if语句使用布尔表达式或

《疯狂java讲义》学习(48):TCP协议的网络编程

1.基于TCP协议的网络编程 TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。Java对基于TCP协议的网络通信提供了良好的封装,Java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。 1.1 TCP协议基础 IP协议是

《疯狂java讲义》学习(47):Java网络基础

1.网络编程的基础知识 1.1 网络基础知识 所谓计算机网络,就是把分布在不同地里区域的计算机与专门的外部设备用通信线路连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。 计算机网络是现代通信技术与计算机技术相结合的产物,计算机网络可以提供一下一些主要功能: 资源共享。信息传输与集中处理。均衡负荷与分布处理。综合信息服务。 计算机网

《疯狂java讲义》学习(46):线程池

1.线程池 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互。在这种情形下,使用线程池可以很好地提高短暂的线程时,更应该考虑使用线程池。 与数据库连接池类似的是,线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象或Callable对象传给线程池,线程池就会启动一个线程来执行他们的run()或call()方法,当run()或call()方法执行结束后,该线程并不会死

《疯狂java讲义》学习(45):线程通信线程组

1.线程通信 当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但我们可以通过一些机制来保证线程协调运行。 1.1 传统的线程通信 假设现在系统中有两个线程,这两个线程分别代表存款者和取钱者——现在假设系统有一种特殊的要求,系统要求存款者和取钱者不断地重复存款、取钱的动作,而且要求每当存款者将钱存入指定账户后,取钱者就立即取出该笔钱。不允许存款者连续两次存

《疯狂java讲义》学习(44):线程同步

1线程同步 多线程编程是有趣的事情,它很容易突然出现“错误情况”,这是有系统的线程调度具有一定的随机性造成的,不过即使程序偶然出现问题,那也是由于编程不当引起的。当使用多个线程来访问同一个数据时,很容易“偶然”出现线程安全问题。 1.1线程安全问题 关于线程安全问题,有一个经典的问题——银行取钱的问题。银行取钱的基本流程基本上可以分为如下几个步骤。 用户数据账户、密码,系统判断用户的账户、

《疯狂java讲义》学习(43):线程生命周期和控制

1线程的生命周期 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的声明周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead) 5种状态。尤其是当线程启动以后,它不可能一直“霸占”着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运行、阻塞之间切换。 1.1新建和就

《疯狂java讲义》学习(42):多线程

多线程 大部分时候我们都是做着单线程编程,只有一条顺序执行,如果遇到阻塞就会停滞,但是单线程的程序往往功能非常有限,例如,我们开发一个简单的服务器程序,这个服务器程序需要向不同的客户端提供服务时,不同的客户端之间应该互不干扰,否则会让客户端感觉非常沮丧。多线程听上去是非常专业的概念,其实非常简单——单线程的程序(前面介绍的绝大部分程序)只有一个顺序执行流,多线程的程序则可以包括多个顺序执行流,多

《疯狂java讲义》学习(41):标准序列化机制

标准序列化机制 简单来说,序列化就是将对象转化为字节流,反序列化就是将字节流转化为对象。 基本用法 要让一个类支持序列化,只需要让这个类实现接口java.io.Serializable。Serializable没有定义任何方法,只是一个标记接口。比如,对于前面章节提到的Student类,为支持序列化,可改为: public class Student implements Serializ

《疯狂java讲义》学习(40):内存映射文件

内存映射文件 内存映射文件不是Java引入的概念,而是操作系统提供的一种功能,大部分操作系统都支持。这里我们介绍内存映射文件的基本用法 基本概念 所谓内存映射文件,就是讲文件映射到内存,文件对应于内存中的一个字节数组,对文件的操作变为对这个字节数组的操作,而字节数组的操作直接映射到文件上。这种映射可以是映射文件全部区域,也可以是映射一部分区域。 不过,这种映射是操作系统提供的一种假象,文件一

《疯狂java讲义》学习(39):常见文件类型随机文件读写

常见文件类型处理 本节简要介绍如何利用Java API和一些第三方类库,来处理如下5中类型的文件: 属性文件:属性文件是常见的配置文件,用于在不改变代码的情况下改变程序的行为。CSV:CSV是Comma Separated Values 的缩写,表示逗号分隔值,是一种非常常见的文件类型。大部分日志文件都是CSV,CSV也经常用于交换表格类型的数据,待会我们会看到,CSV看上去很简单,但处理的复

LangChain简明讲义:从0到1构建LLM应用程序

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用;手写框架等Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、VueJava微服务实战Java 微服务实战,Spring

华盛顿大学《生成模型》2020秋季课程完结,课件、讲义全部放出

来源:机器之心 本文约1000字,建议阅读5分钟。 这门课聚焦生成建模技术的理论和数学基础,探讨多种生成模型技术。 在概率统计理论中,生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它能够给观测值和标注数据序列指定一个联合概率分布。在机器学习中,生成模型可用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。 生成模型是