主要是来聊一下我对于情绪自由的看法。
今日唠叨 今天是周六,无聊的我又在家自己待了一天,三餐外卖,说是要学习spring源码的,但是总是看了一小会,就去看视频了,看看b站,看看LPL比赛,看看向往的生活,看看爱奇艺的自制节目《姐妹俱乐部》。 其实我感觉我和其他的男生有点不太一样,因为他们好像是都不太喜欢综艺节目,我还是比较喜欢综艺节目的,比如我最喜欢的一些语言类节目《脱口秀大会》、《奇葩说》、《吐槽大会》等。 这个《姐妹俱乐部》是我最近追的综艺之一,主要就是来讲述一些关于女性在生活中的困境的。从节目的名字来讲,明显是针对于女性用户来开放的,但是也并没有限制男性观众观看,一开始时出于好奇心,看到这个节目,后来发现,挺有意思的,小小小小情景剧一些场景非常的夸张,最后也可以有一个小小的思考,于是我就开始追这个综艺了,几乎每期都看。
主要内容这周是第七期,讲的主题是“她的笑,她的哭”,注意了,朋友们,女字旁的她,强调女性,内容主要还是以三位老板为主,讲解了在生活中一些想要自由的哭和笑的时候,却遭到了他人的阻拦,或者说在这个社会 的压力或者这个场景的压力下,而不得不压抑自己的情绪。
如果想 ...
主要介绍java的构造函数
定义首先我们肯定要知道什么是构造函数?
简单来说,就是与类名相同,无返回类型的方法,参数可以为空,一般称之为无参构造,也可以有参数,一般称之为有参构造。
实例化比如说有个test类,你想要实例化它,一般都是new test();
这种new 一个类的名称,后面加括号的就是调用的是这个类的无参构造,当然里面如果有参数,调用的就是有参构造了。
注意编译报错在一个类中,当没有在子类里加super(),也没有在父类里构造无参函数
编译器看到我们在父类里写了有参构造法方法,它就会认为,我们不想让子类在回溯的时候走默认的无参构造方法这条路【super(); 此路不通】,但是我们又没告诉给子类,它应该走哪条路(你给了有参就是告诉我不要走无参,但也没告诉我走有参,那走哪?),所以会报错。 所以,若父类没有提供无参构造方法,但是提供了有参构造方法,就要在子类的无参构造方法里,显示的加上调用父类的有参构造方法语句。 如:super();(这里就告诉了去走有参了)
总结
无参构造运行是需要往上一级一级找无参,甚至找到object
如果其中一级只有有参,没有无参,会发生错误 ...
了解一下
核心作用保证一个类只有一个实例,并且提供一个访问该实例的全局访问点
常见的五种单例模式的是实现方式
饿汉式(线程安全,调用效率高,不能延时加载)
懒汉式(线程安全,调用效率不高,可以延时加载)
DCL懒汉式(由于JVM底层内部模型原因,偶尔会出现问题,不推荐使用)
饿汉式改进(静态内部类,线程安全,调用效率高,可以延时加载)
枚举单例(线程安全,调用效率高,不能延时加载)
饿汉式12345678910111213141516171819202122//饿汉式单例模式public class demo1 { //1. 私有化构造器 private demo1(){ }// 2. 类初始化的时候,立即加载该对象;由于用了static关键字,在类装载的时候就初始化对象,// 不存在并发问题,因为一加载就出来了 private static demo1 instance=new demo1(); //3. 提供获取该对象的方法;由于不存在并发问题,所以没有加synchronized关键字,效率高;如果考虑 ...
http websocket socket webservice这四种方式的区别和联系
httpHTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接的协议
http是最初的产生的系统间进行通信的协议
websocketwhy为什么会出现这个东西?
是因为在一些特定场景下,需要让服务端主动来发送请求,而不是只能让客户端进行轮询,比如我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。
这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用”轮询”:每隔一段时候,就发出一个询问,了解服务器有没有新的信息。最典型的场景就是聊天室。
socketservice
参考文章:
https://blog.csdn.net/miao_9/article/details/85286025
迪米特法则
定义迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least KnowledgePrinciple,LKP),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心。
要求只和朋友类交流出现在成员变量、方法的输入输出参数中的类称为成员朋友类
要和朋友保持距离一个类公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险扩散也就越大。因此,为了保持朋友类间的距离,在设计时需要反复衡量:是否还可以再减少public方法和属性,是否可以修改为private、package-private(包类型,在类、方法、变量前不加访问权限,则默认为包类型)、protected等访问权限,是否可以加上final关键字等。
注意 迪米特法则要求类“羞涩”一点,尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用 ...
接口隔离原则
接口分类
java中普通的interface是接口的一种
new 一个新类的时候,可以将其成为 实例化接口
定义
客户端不应该依赖它不需要的接口
类间的依赖关系应该建立在最小的接口上
我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少
规则接口尽量小首先不能违反单一职责原则
接口要高内聚要求在接口中尽量少公布public方法,接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也就越少,同时也有利于降低成本
定制服务在进行系统设计的时候,要不同的系统间或者系统内不同的模块一定会产生耦合的部分,在这样的情况下,需要为各个访问者提供专用的接口,以确保一个类或者一个接口中提供多个不同访问者的方法的时候,权限没有控制好,导致一个访问者可以查询本来不属于它的方法
接口设计是有限度的接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个“度”如何来判断呢?根据经验和常识判断,没 ...
了解一下
零钱兑换题目
答案1234567891011public static int change(int amount, int[] coins) { // int[] dp = new int[amount+1]; dp[0] = 1; for (int coin : coins) { for (int i = coin; i <= amount; i++) { dp[i] += dp[i - coin]; } } return dp[amount];}
如何列出正确的状态转移方程
确定基础的例子
确定【状态】,也就是原问题和子问题中会变化的变量
确定【选择】,也就是导致【状态】产生变化的行为
明确dp函数/数组的定义。自定向下
备忘录
详细介绍表空间
在逻辑结构中,Oracle从大到下,分别是如下的结构:数据库实例 -> 表空间 -> 数据段(表) -> 区 -> 块。
也就是说当我们要使用Oracle作为项目的数据库时,我们需要先创建数据库实例,之后创建表空间,再创建相对应的表(也就是逻辑结构中的数据段)。
使用Oracle作为项目的数据库时,我们需要先创建数据库实例,之后创建表空间,再创建相对应的表(也就是逻辑结构中的数据段)。
常营命令12345678910# 给表空间增加大小alter tablespace HGCS1031 add datafile 'C:\APP\YSS\PRODUCT\11.2.0\DBHOME_1\DATABASE\HGCS1031_1.DBF'Size 1000M Autoextend on maxsize unlimited; #查看表空间大小select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;# 查看表空间大 ...
主要是介绍零拷贝的两种技术原理
what零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常是说在IO读写过程中。
实际上,零拷贝是有广义和狭义之分,目前我们通常听到的零拷贝,包括上面这个定义减少不必要的拷贝次数都是广义上的零拷贝。其实了解到这点就足够了。
我们知道,减少不必要的拷贝次数,就是为了提高效率。那零拷贝之前,是怎样的呢?
传统IO
传统IO
将磁盘文件,拷贝到操作系统内核缓冲区
将内核缓冲区的数据,拷贝到应用程序的buffer
将应用程序buffer中的数据,再拷贝到socket网络发送缓冲区(属于内核缓冲区)
将socket buffer数据,拷贝到网卡,由网卡进行网络传输
传统IO方式,读取磁盘文件进行网络发送,经过4次数据拷贝。但是第2、3次的拷贝明显没有什么帮助。
传统IO存在多次无效拷贝,还伴随着大量的上下文切换。
MMAP
这种方式使用mmap()代替了read()
磁盘的数据通过DMA拷贝到内核缓冲区
操作系统把这块内核缓冲区与应用程序共享,避免了用户缓冲区和内核缓冲区的跨界复制
应用程序调用write()直接从内核缓冲区的内容拷贝到socket缓 ...