自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 问答 (1)
  • 收藏
  • 关注

原创 对socket的理解--关于Select,poll,epoll的学习笔记

Socket是什么socket为内核对象,由操作系统内核来维护其缓冲区,引用计数,并且可以在多个进程中使用。socket在计算机通信领域被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过socket这种“约定”,一台计算机可以接受其他计算机的数据,也可以向其他计算机发送数据。sokcet在Unix中的实现可以理解为一种特殊的文件,一些socket函数即对其进行的操作(读/写IO、打开、关闭)Socket()函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过

2021-05-15 16:24:13 511

原创 关于java中的常量池

字符串常量池在Java体系中,有三种常量池:class字节码中的常量池:存在于硬盘上。主要存放字面量和符号引用。运行时常量池:方法区的一部分。我们常说的常量池,就是指这一块区域。字符串常量池:存在于堆区。这个常量池在JVM层面就是一个StringTable,只存储对java.lang.String实例的引用,而不存储String对象的内容。一般我们说一个字符串进入了字符串常量池其实是说在这个StringTable中保存了对它的引用,反之,如果说没有在其中就是说StringTable中没有

2021-04-26 16:08:17 588

原创 关于ConcurrentHashMap从java7到java8

为什么要使用ConcurrentHashMap(HashMap的缺点)HashMap 是Java中最常用的Map类,性能好、速度快,但不能保证线程安全,他可以用null值作为Key/valueHashMap的线程不安全主要体现在resize时的死循环及使用 iterator时的fast-fail在多线程环境下,使用HashMap进行put会引起死循环,所以在并发情况下不能使用HashMap例如执行以下代码时:final HashMap<String, String> map =

2021-04-22 17:01:32 220

原创 java面试八股文复习3

集合框架List(线性结构)public interface List<E> extends Collection<E> {}即有序的集合(也可以称作序列)。该接口的使用者可以精确地将控制每个元素在list中的插入位置。用户可以通过integer索引(即list中的位置)访问元素,并在list中搜索元素。和集合(set)不同,list通常允许重复元素。即若list中存在a1,a2且a1.equals(a2)这在list中是被允许的。除了在set接口中有指定的规则,list接

2021-04-22 13:01:41 273

原创 java面试八股文复习2

Overload – Overwriteoverload(重载)发生在同一个类中,方法名相同,数的类型、个数、顺序不同,方法的返回值和修饰符可以不同。在java中,overload就是在一个类中定义多个同名方法的能力。编译器能够区分这些方法,因为它们的方法标识。这个属于也被称为方法重载,主要用于增加程序的可读性;让他看起来更容易理解重载要记住的一点是,不能有多个具有相同名称、编号、和参数类型的方法,因为这种声明不能让编译器理解它们的不同之处。另外,不能声明两个方法具有相同的签名,即使它们具有唯一的返..

2021-04-16 22:01:38 655 1

原创 java面试八股文复习1

关于java的object类从getClass方法开始没什么花头,该方法直接获取当前运行时对象的class对象返回此对象的运行时类。返回的类对象是被表示的类的静态同步方法锁定的对象。实际的结果类型是 Class<? extends |x|>返回值是此对象的运行时类的类对象hashcode返回对象的哈希码值,这个方法主要是为了支持hashmap提供哈希表在Java应用程序的执行过程中,每当在同一个对象上多次调用hashCode方法时,只要在对象的相等比较中使用的信息没有被修

2021-04-14 21:57:49 811 2

原创 学习springboot集成redis时遇到的问题杂谈-关于序列化-缓存穿透现象

什么是序列化?在学习redis for springboot时碰到这样的一个问题。查看别人的源po类中的serialVersionUID将其复制入自己的po类后,无法正常实现功能。在搜索学习继承serializable接口后,发现需要勾选根据对象生成所谓的“uid”后才能正常实现从redis的缓存中查询的功能。在重写方法中设置redis的key序列化方式,发现自己连序列化这个概念还一知半解,搜索学习后,作以下总结。为什么要序列化?在初学java时,并没有接触过序列化,没有和网络进行交互或者有消息的

2021-04-12 22:06:24 469 4

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[ [3], [9,20], [15,7] ]提示:节点总数 <= 1000来源:力扣(LeetCode)第一个映入眼帘的就是返回值,返回的是list,那么就不用像数组那样返回那么繁琐首先先将最极端情况做出判断:当根节点root为null时返回一个

2021-03-11 20:07:40 104

原创 Leetcode-剑指 Offer 35. 复杂链表的复制

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:示例 2:输入:head = [[1,1],[2,1]] 输出:[[1,1],[2,1]]示例 3:输入:head = [[3,null],[3,0],[3,null]] 输出:[[3,null],[3,0],[3,null]]示例 4:输入:head = [] 输出:[]

2021-03-09 22:53:11 107

原创 Leetcode-[剑指 Offer 68 - II. 二叉树的最近公共祖先]

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出: 3 解释: 节点 5和节

2021-03-09 21:19:16 110

原创 剑指 Offer 15. 二进制中1的个数 (与运算解决)

请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串00000000000000000000000000001011 中,共有三位为 ‘1’。 示例 2:输入:00000000000000000000000010000000 输出:1 解释:输入的二进制串000

2021-03-09 19:43:22 140

原创 spring--IOC容器--review

IOC解析:考虑内聚性和耦合度,内聚和耦合是密切相关的,同其他模块存在高耦合的模块意味着低内聚,而高内聚的模块意味着该模块同其他模块之间是低耦合。在进行软件设计时,应力争做到高内聚,低耦合。- IOC底层原理分析:xml解析工厂模式反射1.工厂模式ioc过程:eg:第一步 xml配置文件,配置创建的对象 <bean id = "dao" class = "com.xxx.UserDao"> </bean>class UserService{ execute

2021-03-07 17:11:46 121 1

原创 Review:设计模式之Singleton

设计模式 Singleton 单例应用场景: 只需要一个实例eg:比如各种Manager比如各种Factory第一种方法使用静态语句块初始化单例private static final Mgr1 INSTANCE = new Mgr1(); private Mgr1(){ }; public static Mgr1 getInstance() {return INSTANCE;}使用.getInstance()方法调用证明两个实例指向的是一个对象则就是同一个实例

2020-11-15 21:19:42 90

原创 Leetcode:滑动窗口 --对于连续的正整数序列题解

Sliding window滑动窗口滑动窗口作为对数组类算法题中惯用的方法,通常能通过对设置好的"窗口"移动可观察得到候选结果,当窗口从左临界点移动到右临界点时,即可得出最优结果.举例:剑指Offer 57题-II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:ta

2020-11-11 22:46:54 297

转载 反射与工厂模式实现Spring IOC

反射机制概念我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?再考虑另一个场景,如果我们想要在运行期获得某个类的Class信息如它的属性、构造方法、一般方法后再考虑是否创建它的对象,这种情况该怎么办呢?这就需要用到反射!我们.java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他们其实是一样的;那么同理,我们看到镜子的反射是.class,就能通过反编译,了解到.java文件的本来面目。对于反射,官方给出的概念:反射

2020-11-05 20:30:38 460

转载 JS -操作DOM

DOM是一个树形结构.操作一个DOM节点实际上操作就是: 更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容; 遍历:遍历该DOM节点下的子节点,以便进行进一步操作; 添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点; 删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。操作一个DOM节点前,我们需要通过各种方式拿到DOM节点,最常用的方法是document.getElementById()和document.ge

2020-10-20 20:19:33 161

原创 mysql 约束 + 表关系

1. DQL:查询语句 1. 排序查询 2. 聚合函数 3. 分组查询 4. 分页查询2. 约束3. 多表之间的关系4. 范式5. 数据库的备份和还原DQL:查询语句1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的。 * DESC:降序。 * 注意: * 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。2. 聚合函数

2020-09-24 19:59:57 104

原创 力扣--设计循环队列

设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircu...

2019-12-24 19:05:45 291

原创 cpp_go_hdc review2

class String{public: String(const char* cstr = 0); String(const String& str); String& operator=(const String& str); ~String(); char* get_c_str() const {return m_data;}private: cha...

2019-12-21 17:21:05 92

转载 cpp containers

容器(containers)容器用来管理某类对象。为了应付程序中的不同需求,STL 准备了两类共七种基本容器类型:序列式容器(Sequencecontainers),此为可序群集,其中每个元素均有固定位置—取决于插入时机和地点,和元素值无关。如果你以追加方式对一个群集插入六个元素,它们的排列次序将和插入次序一致。STL提供了三个序列式容器:向量(vector)、双端队列(deque)、列表...

2019-12-20 21:47:07 207 1

原创 cpp_go_hdc4

heap objects 的生命期class Complex { ... };...{ Complex* p = new Complex; ... delete p;}p 所指的便是heap object, 其生命在它被deleted之际结束class Complex { ... };...{ Complex* p = new Complex;}以上出现内存疏漏(m...

2019-12-09 21:35:29 98

原创 cpp_go_hdc3

Big Three ,三个特殊函数class String{public: String(const char* cstr = 0); //构造函数 String(const String& str); // 拷贝构造函数 String& operator=(const String& str) //拷贝赋值 ~String(); //析构函数 char*...

2019-12-08 21:47:43 111

原创 点和圆的关系

点和圆的关系设计一个圆形类(AdvCircle) , 和一个点类(Point) , 计算点和圆的关系,假如圆心坐标为x0,y0, 半径为r , 点的坐标为x1, y1#include <iostream>using namespace std;class Point{public: void setX(int x) { m_X = x; } void ...

2019-12-02 22:11:56 968

原创 立方体类

设计立方体类设计立方体类(Cube), 求出立方体的面积(2*a*b + 2*a*c + 2*b*c) 和体积( a* b *c), 分别用全局函数和成员函数判断两个立方体是否相等。#include <iostream>using namespace std;class Cube{public: //设置长 void setL(int l) { m_L = ...

2019-12-02 21:13:11 1022

原创 cpp_go_hdc_review1

#ifndef __COMPLEX__#define __COMPLEX__class complex{public: complex(double r = 0, double i = 0) //pass by value : re(r), im(i) //initialization list { } complex& operator += (const co...

2019-11-22 22:26:18 167

原创 cpp_go_hdc2

//operator overloading(操作符重载-1,成员函数) this/*//标准库内复数的设计inline complex&__doapl(complex* ths, const complex& r) //doapl = do assignment plus{ ths->re += r.re; ths->im += r.im; ...

2019-11-22 21:24:26 142 1

原创 cpp_go_hdc

```cpp//头文件的写法/*#ifndef __COMPLEX__#define __COMPLEX__----------------------------------------#include <cmath>class ostream;class complex;complex& __doapl (complex* ths,const c...

2019-11-21 21:57:26 145 1

转载 Java-routine

基础知识编程语言:java python c++基本算法思想基本网络知识:tcp/ip http/https工具方面操作系统:linux (CentOS\Ubuntu\Fe…)代码管理:svn/git持续集成(CI/CD):jenkinsjava的项目管理工具:maven/gradle框架方面ssh (spring+structs+hibernate)(已过时)ssm:spr...

2019-11-14 20:41:24 3262 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除