
Java编程十五讲
文章平均质量分 88
本专栏由Java资深元老级大咖创作而成,以15个讲义的形式阐释了Java的点点滴滴。每个讲义围绕一个Java核心知识点进行深度解读,涉及注释、类加载器、反射、事件、泛型、代理、内部类、正则表达式、IO和NIO、Lambda表达式、脚本、多线程、容器框架(第13讲~第15讲)。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
人邮异步社区
人民邮电出版社创办的IT图书社区
展开
-
《Java编程十五讲》第十五讲:容器框架三
#第十五讲 容器框架三我们到此已经把ArrayList、HashSet和HashMap讲过了。JDK里面还有一些实现,如Queue、Deque、TreeSet、TreeMap等,我就不一一讲了。现在回顾一下。Collection保存单一的元素,而Map把保存键值对。用泛型技术,就可以将制订类型的对象放到容器中,不会出现类型错误的元素,取出来的时候也不需要再进行类型转换。Collection和Map都不定长,向里面添加更多元素的时候,会自动调整容量。跟数组一样,List维持位置索引和对象的关联,因此是原创 2022-05-16 11:47:09 · 308 阅读 · 0 评论 -
【Java编程十五讲】第八讲:正则表达式
#第八讲 正则表达式正则表达式(regular expression)定义了一种文本搜索模式。正则表达式在文本的搜索编辑的场景中很有用处。正则表达式并不是在Java中首次出现的,可以说很久以前就出现了。19世纪50年代,由美国数学家Stephen Cole Kleene提出,后来随着UNIX的普及,它从左往右逐个字符扫描文本,找到匹配的模式,继续往下扫描,模式可以使用一次或者多次。JDK 1.4版本开始支持了。实际上,我们不用编写程序就在使用正则表达式了。一个例子就是在命令窗口执行命令“dir *.t原创 2022-05-16 11:46:02 · 235 阅读 · 0 评论 -
《Java编程十五讲》第十四讲:Java里提供的常用数据容器框架三
#第十五讲 容器框架三我们到此已经把ArrayList、HashSet和HashMap讲过了。JDK里面还有一些实现,如Queue、Deque、TreeSet、TreeMap等,我就不一一讲了。现在回顾一下。Collection保存单一的元素,而Map把保存键值对。用泛型技术,就可以将制订类型的对象放到容器中,不会出现类型错误的元素,取出来的时候也不需要再进行类型转换。Collection和Map都不定长,向里面添加更多元素的时候,会自动调整容量。跟数组一样,List维持位置索引和对象的关联,因此是原创 2020-06-13 10:22:16 · 415 阅读 · 0 评论 -
《Java编程十五讲》第十四讲:Java里提供的常用数据容器框架LinkedList
第十四讲 容器框架二LinkedList,它实现的基础是双向链表,因此在插入和删除方面具有性能优势。它也可以用来实现stack和queue。顺便说一句,Java容器框架中有一个遗留的类Stack,它是基于Vector实现的,不建议使用。LinkedList主要有3个属性:int sizeNode<E> firstNode<E> last也就是通过一个链表把size个Node从头串到尾。而Node就是一个类的节点包装类,有item,有prev和next。图示如下:L原创 2020-06-13 10:20:47 · 357 阅读 · 0 评论 -
《Java编程十五讲》第十三讲:Java里提供的常用数据容器框架
第十三讲 容器框架一计算机程序的主要用途是处理各类数据,而这些数据是有结构的,不是散乱的。几十年以前软件大师N. Wirth写道:程序=算法+数据结构。我们在数据结构里面学到过,数据的组织方式,有数组、链表、树、图、字典等。我们现在着手探究一下Java里面提供的数据容器框架。Java里面从JDK 1.2起引入容器框架,主要分成List、Set、Queue和Map这4类。List是有序、可重复的;Set是无序的、不可重复的;Queue代表一种队列;Map是具有映射关系的集合。这些也叫集合类,但是可能引起原创 2020-06-13 10:18:01 · 361 阅读 · 0 评论 -
《Java编程十五讲》第十二讲:多线程
第十二讲 多线程现代计算机一般是多CPU和多核的,而传统的程序是单线程的,只在一个核上运行,就会浪费掉这些计算资源,于是就发明多线程来充分利用它们。甚至在单CPU单核上也还是能有效果,因为许多时候计算在等IO,空隙时间就可以再运行别的线程。现代操作系统的主要任务就是进行进程和线程的调度。我们深入到操作系统内部,一定会发现一片繁忙的景象。我们先看基本型,实现Runnable接口,写执行代码在run()中,代码如下(NewThread.java):public class NewThread implem原创 2020-06-13 10:16:09 · 420 阅读 · 0 评论 -
《Java编程十五讲》第十一讲:脚本
第十一讲 脚本大家好。我前两年意识到一件事情,就是Java里面有一个很好的功能许多人没有注意到,而要做大型一点的系统或者是做扩展性好一点的系统却都会用到,那就是脚本(script)技术。学技术之前,还是先看场景。我们做的应用系统里面,经常需要设置一些业务规则。比如权限控制,不管是网络层的防火墙还是应用层的数据权限,一般用户是希望设置一个规则,网络权限像IP between 192.168.2.101 and 192.168.2.149,像port=80 or port=8080 or port=21等原创 2020-06-13 10:15:09 · 439 阅读 · 0 评论 -
《Java编程十五讲》第十讲:Lambda 表达式
第十讲 Lambda 表达式我们要从匿名类开始讲起,一点点引出Lambda表达式。我比较喜欢Lambda这个词,显得比较有学问似的。我讲过,技术点不是孤立的,它们之间是有关联的,按照某种层次结构关联在一起就构成一个体系。我们在学习某个技术的时候,要了解它的来龙去脉,把某个技术点放在整体中学习会更有收获。事实上,学术论文一般都要求开头一段讲学术史,这是有道理的。当然,有个别天才能在不引用任何参考文献的情况下提出划时代的理论,横空出世。最著名的就是爱因斯坦在1905年写的《论动体的电动力学》。以前提到过内原创 2020-06-13 10:13:49 · 393 阅读 · 0 评论 -
《Java编程十五讲》第九讲:IO和NIO
第九讲 IO和NIO一个完备的语言可以自成体系,并不需要与外部文件打交道,不过这种说法只是理论上的,实际上任何一个语言都需要与外部文件进行数据交换。一个不能与外部进行任何交换的系统似乎用处不大,一个封闭的单细胞怕是生存不下来,广而言之,“闭关锁国”真是要不得啊。Java一生下来就有了对I/O的支持,后来在Java 1.4版本中增加了一套平行的API,即NIO,这些新的API都是为了提高性能而设计的。在Java 7之后又有了NIO2,改进了File操作,对所有文件系统提供了统一的支持。在具体看程序之前,原创 2020-06-13 10:12:49 · 473 阅读 · 0 评论 -
《Java编程十五讲》第七讲:内步类
第七讲 内部类大家好,这一次讲座,我们讲一下内部类(Inner Class)。我们平时写的程序是由一个个类构成的,这些类之间是相互独立的关系。我说过,这种思路源自对现实世界的模拟,拉近了“问题空间”和“解决空间”。因此,简化了系统的设计。而内部类是指一个类是另一个类的内部成员,定义在某个类的内部的,对外可能可见,也可能不可见。基本形式还是很简单的,我们看一个例子:public class OuterClass {private String outerName;public void disp原创 2020-06-13 10:08:57 · 358 阅读 · 0 评论 -
《Java编程十五讲》第六讲:代理
第六讲 代理代理是Proxy的翻译。在系统搭建的时候,经常会有用到代理的地方,如一个公司访问外网的代理,比如服务器端的反向代理、远程调用代理,还有为了安全或者灵活采取的访问代理,这些都是代理。日常生活中,我们会经常遇到代理的场景。比如说旅行社,我们一般人没有那么多时间和专业能力安排好自己的行程,就只要告诉代理就可以了,它会把最终的服务提供者如航空公司,铁路,酒店什么的都屏蔽掉,我们只跟代理打交道就行。计算机系统借鉴了现实世界的这个场景。从程序上来讲,目的是为了访问A对象的方法,但有的时候,我们又不想原创 2020-06-13 10:07:31 · 382 阅读 · 0 评论 -
《Java编程十五讲》第五讲:什么是泛型?作用是什么?一个案例串讲
第五讲 泛型前几次讲座,我们在程序里面看到了泛型(Generics),今天我们就来专门谈一谈。下面先看泛型的作用:它们被设计出来用于扩展Java的类型系统,允许一个类型或者方法操纵不同类型的对象并同时提供编译时类型安全。这里明白地指明了泛型的两个用处,一是允许一个类或者方法操纵不同类型的对象,二是提供编译时类型安全。这是在Java 5里面引进来的。这是Java设计团队与时俱进的结果,又是跟历史妥协的结果,基本达到目的,但是远不完美,业界毁誉参半。为了了解这个概念,我们从头来,先看没有泛型的时候我们怎么原创 2020-06-13 10:05:36 · 564 阅读 · 0 评论 -
《Java编程十五讲》第四讲:今天我们来谈一谈Java里面的事件机制
第四讲 事件今天我们来谈一谈Java里面的事件机制。程序的结构在不同的时代是在变化的。刚学编程序的时候,老师总会讲,程序是一个流程,线性执行,分支跳转,循环,有时候加上递归。我们总是能一步步跟踪下来,知道程序确切的运行次序。后来就会碰到事件的概念,程序先是准备好了,然后等待你做出某种反应,键输入,网络数据流,鼠标移动,程序获取事件的消息,执行相关的动作。这种程序结构之下,不再有事先确定的运行次序了。刚开头遇到这种程序的时候,还真有点不习惯。印象最深刻的就是将近三十年前刚学到Windows编程的时候,看的原创 2020-06-13 10:03:58 · 502 阅读 · 0 评论 -
《Java编程十五讲》第3讲反射,对于写工具写框架平台的程序员来讲,没有反射,都不知道该怎么编程序了
#第三讲 反射知识点之间是有逻辑关联的,配合在一起构成一个体系。讲了前两次,大家都发觉了会用到一个共同的知识点,叫反射(Reflection)。那么今天我就来给大家讲讲这个反射,也有好几位提出希望进一步了解一下。这个词的中文翻译不是很好,不容易从字面体会到含义。按照英文词典的解释,Reflection的常用的一个意思是the image of something in a mirror(映照出...原创 2020-03-05 14:16:53 · 564 阅读 · 0 评论 -
《Java编程入门十五讲》第2讲,什么是类加载器?
#第二讲 类加载器1928年,狄拉克(Dirac)写下了电子的相对论量子力学方程,即狄拉克方程,算出了有负能量,预言了正电子的存在,进而认为世界有反粒子反物质。大家都觉得荒唐,为什么没有观测到反物质呢?狄拉克说,那是因为反物质无处不在,就像鱼儿在水里面意识不到水的存在,只有跳出水面才会意识到水。这就是后来大家通称的“狄拉克之海”,我们所感知到的宇宙就漂浮在海面。我们习以为常的无处不在的事物,会...原创 2020-02-11 16:18:41 · 475 阅读 · 0 评论 -
《Java编程十五讲》在编Java程序的时候,我们经常会碰到的注解是什么?
第一讲 注解在编Java程序的时候,我们经常会碰到注解。比如:@Override 我们在写子类继承父类的时候,会经常用到这个注解。它告诉编译器这个方法是要覆盖父类的方法的。@WebServlet("/myservlet") 在进行Web程序开发的时候,我们用这个注解表示这个类是一个servlet。Web容器会识别这个注解,在运行的时候调用它。很多人说注解是注释,初看起来有一点像,它对程序的...原创 2020-02-11 16:10:30 · 491 阅读 · 0 评论 -
我为什么要创作《Java编程十五讲》?
每年技术媒体都会评选最受欢迎的编程语言,Java总是高居前位。自然,没有办法说一个语言绝对比另一个语言好,这个话题一如既往地会引起大家无谓的争论不休。对别的行业的人来讲也许会觉得莫名其妙,但是对我们程序员来讲,捍卫某种语言是一件很动感情的事情。就跟捍卫自己的母校一样,只能自己说不好,别人不能说不好的。Java从正式出生以来(1995.05.23),已经过了24年时间了,它现在仍在全世界广泛被使用...原创 2020-02-11 16:08:36 · 523 阅读 · 0 评论 -
Java团队元老亲授,跟着大神学JAVA!
9.9元秒杀!Java团队元老亲自授课,跟着大神学JAVA!原创 异步社区来源 | 异步本期9.9元限时秒杀,异步君给苦于Java瓶颈期的大家推荐《Java编程15讲》!作者:郭屹共15个讲义,限时9.9元秒杀15讲能学好诞生24年的JAVA吗?你当然会感到怀疑,众所周知,在技术向的IT论坛上,“如何在十天之内快速掌握好Java?”这类问题,往往会招来嘲笑。来源于知乎但在当下...原创 2020-02-12 09:30:34 · 469 阅读 · 0 评论