后端日常学习
记录日常学习的点滴
华生cn
未曾起舞的每一天都是对生命的辜负
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty框架
这篇文章总结了我这几天对于netty的学习,文章中有我看视频的总结,也有我看到的好文章里的总结。简历上我有写到这个框架,等着被面试问还不如自己先过一遍。Netty是什么?Netty是一个基于NIO开发的网络通信框架,用于快速开发可维护的高性能服务器和客户端。它封装了jdk的Nio,使用起来更加方便。Netty的特点是什么?高并发:Netty是一个基于NIO开发的网络通信框架,对比于BIO,它的并发性能得到很大提高。传输快:Netty的传输依赖于零拷贝特性,尽量减少不必要的内存拷贝,实现了更高效率原创 2020-06-27 17:22:28 · 282 阅读 · 0 评论 -
从底层看看hashmap(面试中hashmap的经典问题解答)
今天心情异常的差,正好总结一下前期学习的hashmap知识,学习能使人快乐.什么是hashmap(说说你理解的hashmap)hashmap的底层数据结构是数组加链表,它继承了数组的线性查找和链表的寻址修改提高效率,在java1.8中加入了红黑树。hashmap不是线程安全的,在不保证线程安全的环境下速度较快。在jdk 1.8中的注释有写到: - <p><strong>Note that this implementation is not synchronized.&l原创 2020-06-20 23:12:00 · 509 阅读 · 0 评论 -
初学Synchronized
在了解synchronize之前,我们需要了解用户态和内核态:用户态:用户应用程序的操作内核态:操作系统执行的操作CAS:CAS是compare and swap的简称,中文翻译是比较并交换。使用CAS可以实现不加锁进行单线程读写操作。比如:现在需要对一个数字进行操作,但是程序不想加synchronize关键字,也就是说不想加锁,这时候可以使用CAS进行操作。CAS将需要操作的数字读到自己的线程中进行操作,进行操作完(比如+1)之后,再把数据返回,而在返回的过程中读取原数据是否还是之前的原创 2020-06-04 22:48:44 · 270 阅读 · 0 评论 -
时间复杂度与空间复杂度
最近开始写算法题,涉及到最基础的时间复杂度和空间复杂度,今天总结复习一下这里统一用O(n) big o表示法表示,也就是最坏情况表示,也有其他的表示法,比如最好情况表示,但是平常用的比较有意义的还是O()时间复杂度时间复杂度表示算法的渐进时间复杂度,表示运行时间的增长趋势。for(int i=0;i<n;i++){ .....}这段代码的时间复杂度为o(n)for(int i=0;i<n;i++){ .....}for(int i=0;i<n;i++){原创 2020-05-23 14:42:46 · 265 阅读 · 0 评论 -
Java-面向对象基础
昨天看了一晚上的封装、继承、多态,今晚总结一下写出来。封装:封装是指隐藏内部的实现细节,对外提供公共的访问方式。优点:1:提高代码的安全性2:提高代码的复用性特别关注static关键词:1:static修饰的成员变量为静态变量,可以通过类名访问2:static修饰的成员方法为静态方法,可以通过类名访问3:static修饰的代码块为静态代码块,jvm虚拟机在加载类时,就会执行该代码块。从第三点就联想到我的java面试题的博客中提到的单例模式的安全问题,问:哪种单例模式比较安全,回答是饿汉模原创 2020-05-15 22:19:53 · 316 阅读 · 0 评论
分享