java基础刷题笔记3
Java刷题笔记3T1 子类与父类实例化时的执行顺序执行顺序:父类静态代码块 ->子类静态代码块 ->父类非静态代码块 -> 父类构造函数 -> 子类非静态代码块 -> 子类构造函数。
案例代码如下:12345678910111213141516171819202122232425public class Father { static{ System.out.println("父类静态代码块"); } { System.out.println("父类非静态代码块"); } public Father(){ System.out.println("父类构造函数"); }}public class Son extends Father{ static{ System.out.println ...
MIT 6046 L2 学习笔记
MIT6.046算法设计 L2 学习笔记导入给一堆非三点共线的点,如何选一个最少点围成的圈,将所有点包围?
点比较少,我们可以直接看出来,并将形成的圈用双向链表表示,记为CH(S)
问题来了,如何找到围成CH(S)的线段呢选择两点,并用直线将其连接,若剩余的所有点都在同一侧,就表示他是CH(S)中的一条线段
时间复杂度?O(n^2)找边,O(n)测试是否在同一侧
合并,时间复杂度为O(n^3)
大事化小 -> Merge如何合并?
现在有左侧的CH(s1)和右侧的CH(s2),如何合并?
将左侧的点,从x最大的点开始顺时针编号,记为a1,a2,a3,a4,a5
右侧的点反之,记为b1,b2,b3
将ai,bj连线与中间直线L的交点y大小记为y(i,j)
下面开始查找最佳线段(上檐部分)
连接a1,b1,交点记为y(1,1)
对右侧点进行顺时针替换,即连接a1b2,发现y(1,2)>y(1,1)
重复2,发现y(1,3)<y(1,2),回退右侧点到b2
对左侧点进行逆时针替换,发现y(5,2)>y(1,2)
重复4,y(4,2)>y(5,2)
继续替换, ...
java基础刷题笔记2
Java刷题笔记2T1 catch异常在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。
-> 错误
所有异常都是Exception的子类,若把Exception放在前面catch,则放在后面子类错误的就永远都抓不到了
T2 Integer自动装箱
选项A,a1、a2赋值给Integer类型,自动装箱。对于–128到127(默认是127)之间的值,Integer.valueOf(int i) 返回的是缓存的Integer对象(并不是新建对象),变量所指向的是同一个对象,所以a1==a2返回true。选项B,Integer和int比较会进行自动拆箱,比较的是数值大小,所以d1==d2返回true。选项C,由于超出自动装箱的范围,return返回的是新建的对象,所以对象内存地址不同,b1==b2返回false。 选项D,普通new创建对象,两个new创建两个地址不同的对像,所以c1==c2返回false。
T2 补充Java的内存管理机制1. 内存分配策略 按照编 ...
java基础刷题笔记1
**最近学了些分布式的知识,想要找个项目做做,暂时没找到合适的,先每天练练基础,再学些新知识吧; 正好也要应付学校的Java考试
java刷题笔记1T1 类中各种块的优先级问题
静态块:用static声明,JVM加载类时执行,仅执行一次
构造块:类中直接用{}定义,每一次创建对象时执行
执行顺序优先级:静态块>main()>构造块>构造方法
12345678910111213141516171819202122232425public class CodeBlock { static{ System.out.println("静态代码块"); } { System.out.println("构造代码块"); } public CodeBlock(){ System.out.println("无参构造函数"); } public voi ...
RocketMQ笔记整合
RocketMQ笔记整合第一章 RocketMQ概述一 、MQ概述MQ简介Message Queue消息队列,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了信息生产,储存,消费全过程的API软甲系统
MQ用途1.流量削峰MQ可以将系统的超量请求暂存其中,以便后期系统可以慢慢处理,从而避免了请求的丢失或者系统宕机
2.异步解耦上游系统对下游系统的调用若为同步调用,则会大大降低系统的吞吐量与并发度,且系统耦合度太高;异步调用可以通过在上下游间添加一个MQ层来解决这些问题
3.数据收集分布式系统会产生海量数据流,如:业务日志,监控数据,用户行为等;针对这些数据流进行实时或批量采集汇总,然后对这些数据流进行大数据分析,是当前互联网平台的必备技术,通过MQ完成此类数据收集是最好的选择
第二章 RocketMQ的安装与启动一、基本概念1.消息 Message消息是消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题
2.主题 TopicTopic表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位 ...
RocketMQ 四、rocketMQ应用笔记
第4章 rocketMQ应用一、普通消息1.消息发送分类同步发送消息Producer在发出一条消息后,在收到MQ返回的ACK后才会发送下一条消息
该方法可靠性最高,但是效率低
异步发送消息Producer在发出一条消息后,不需要收到MQ返回的ACK后,直接发送下一条消息
该方法可靠性上课,效率也不错
单向发送消息Producer仅负责发送消息,不等待,不处理MQ的ACK; MQ不返回ACK
该方法效率最高,但是可靠性差
2.代码举例省去具体代码…
二、顺序消息1.什么是顺序消息严格按照消息的发送顺序进行消费的消息
默认方式下生产者会以轮询的方式把消息发送到不同的Queue队列,这样会导致消息消费顺序和发送顺序不一致; 若仅将消息发送到同一个Queue中,同时在消费时也仅从这个Queue上拉取消息,就能保证消息的顺序性
2.有序性分类全局有序
当发送和消费参与的Queue只有一个时所保证的有序是整个Topic中消息的顺序,称为全局有序
在创建Topic时指定Queue的数量,有三种指定方式
1)在代码中创建Producer时,可以指定其自动创建的Topic的Queue数量2)在Rock ...